summaryrefslogtreecommitdiff
path: root/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock.c
blob: ba2e77f373860c02ac494d84f6484f92290d10dc (plain)
ofshex dumpascii
0000 56 69 6d 9f 55 6e 44 6f e5 00 03 14 7c b4 04 3d af d9 25 d7 e7 f5 1c e7 bd ce 73 7d 3f 33 eb 95 Vim.UnDo....|..=..%.......s}?3..
0020 d8 a2 23 4e 4d e8 fc f2 2b ef 7c 00 00 01 3f 00 00 00 01 7d 00 00 00 f5 00 00 00 01 00 00 00 01 ..#NM...+.|...?....}............
0040 00 00 00 bf 00 00 00 00 00 00 00 bf 00 00 00 bf 00 00 00 bf 00 00 00 00 69 9d ac dc 04 01 00 00 ........................i.......
0060 00 42 00 5f d0 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 .B._............................
0080 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 69 9d 8a 96 04 01 00 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 .......i........................
0200 00 00 00 01 00 00 00 46 20 20 20 20 24 28 70 6b 67 2d 63 6f 6e 66 69 67 20 2d 2d 63 66 6c 61 67 .......F....$(pkg-config.--cflag
0220 73 20 2d 2d 6c 69 62 73 20 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 20 77 61 79 6c 61 6e 64 2d s.--libs.wayland-client.wayland-
0240 70 72 6f 74 6f 63 6f 6c 73 29 20 2d 6c 6d f5 18 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 protocols).-lm..................
0260 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 ................................
0280 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........5.......................
02a0 01 00 00 00 46 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7d 00 00 00 00 00 00 00 ....F...................}.......
02c0 35 81 5f d0 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 02 00 00 00 00 5._.............................
02e0 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0420 00 00 00 00 00 02 00 00 00 45 00 00 00 00 00 00 00 02 00 00 00 45 00 00 00 00 00 00 00 56 00 00 .........E...........E.......V..
0440 00 45 00 00 00 00 69 9d 8a 98 04 01 00 00 00 00 00 f5 18 00 00 00 01 00 00 00 02 00 00 00 00 00 .E....i.........................
0460 00 00 01 00 00 00 46 20 20 20 20 24 28 70 6b 67 2d 63 6f 6e 66 69 67 20 2d 2d 63 66 6c 61 67 73 ......F....$(pkg-config.--cflags
0480 20 2d 2d 6c 69 62 73 20 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 20 77 61 79 6c 61 6e 64 2d 70 .--libs.wayland-client.wayland-p
04a0 72 6f 74 6f 63 6f 6c 73 29 20 2d 6c 6d 35 81 f5 18 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 rotocols).-lm5..................
04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 37 00 00 00 00 00 00 00 47 00 00 00 00 00 00 00 00 00 00 .............7.......G..........
04e0 00 00 00 00 00 35 81 5f d0 00 00 00 02 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 .....5._........................
0500 01 00 00 00 35 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....5...........................
0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0640 00 00 00 00 00 00 00 00 00 00 02 00 00 00 45 00 00 00 00 00 00 00 02 00 00 00 45 00 00 00 00 00 ..............E...........E.....
0660 00 00 56 00 00 00 45 00 00 00 00 69 9d 8a 99 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 ..V...E....i....................
0680 00 00 00 00 00 00 00 01 00 00 00 36 67 63 63 20 77 6c 63 6c 6f 63 6b 2e 63 20 78 64 67 2d 73 68 ...........6gcc.wlclock.c.xdg-sh
06a0 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 63 20 2d 6f 20 77 6c 63 6c 6f 63 6b ell-client-protocol.c.-o.wlclock
06c0 20 5c 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 .\5.............................
06e0 00 00 00 00 00 00 00 00 00 00 37 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 ..........7...............5._...
0700 00 03 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ................................
0720 ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ................................
0860 00 00 00 45 00 00 00 00 00 00 00 01 00 00 00 45 00 00 00 00 00 00 00 56 00 00 00 45 00 00 00 00 ...E...........E.......V...E....
0880 69 9d 8a 9b 04 01 00 00 00 00 00 f5 18 00 00 00 a9 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 i...............................
08a0 01 7d f5 18 00 00 00 aa 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 9c 00 00 00 00 00 00 .}..............................
08c0 00 00 00 00 00 01 00 00 00 25 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 20 3d 20 78 64 67 5f .........%....xdg_surface.=.xdg_
08e0 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 f5 18 00 00 00 9d 00 00 00 00 00 00 00 00 00 00 00 wm_base_get_xdg.................
0900 00 f5 18 00 00 00 92 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 35 73 74 61 74 69 63 20 63 6f ......................5static.co
0920 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 nst.struct.wl_registry_listener.
0940 72 65 67 69 73 74 72 79 5f 6c 69 73 f5 18 00 00 00 93 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 registry_lis....................
0960 00 00 00 89 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 48 73 74 61 74 69 63 20 76 6f 69 64 20 ...................Hstatic.void.
0980 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 registry_handler(void.*data,.str
09a0 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 2c 75 69 f5 18 00 00 uct.wl_registry.*registry,ui....
09c0 00 8a 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 85 00 00 00 00 00 00 00 00 00 00 00 01 ................................
09e0 00 00 00 14 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c f5 18 00 00 00 86 00 00 ....static.void.toplevel........
0a00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 7a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 19 ...............z................
0a20 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 77 2c 68 2c 63 78 2c 63 f5 18 00 00 00 7b 00 ....draw_line(px,w,h,cx,c.....{.
0a40 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 5a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................Z...............
0a60 2d 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 78 2c 20 63 79 20 2d -........draw_pixel(cx.-.x,.cy.-
0a80 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f f5 18 00 00 00 5b 00 00 00 00 00 00 00 00 00 00 00 00 .y,.w,.h,.colo.....[............
0aa0 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 ................................
0ac0 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........5.......................
0ae0 5a 00 00 00 2d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 Z...-...........................
0b00 f5 18 00 00 00 00 5a 00 00 00 2d 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 19 00 00 00 00 0c ......Z...-.....................
0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 f5 18 00 00 00 00 7a 00 00 00 ............................z...
0b40 19 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 14 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 ................................
0b60 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 85 00 00 00 14 00 00 00 00 00 00 00 00 00 ................................
0b80 00 00 04 00 00 00 48 00 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ......H.........................
0ba0 00 00 f5 18 00 00 00 00 89 00 00 00 48 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 35 00 00 00 ............H...............5...
0bc0 00 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 92 00 ................................
0be0 00 00 35 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 25 00 00 00 00 16 00 00 00 00 00 00 00 00 ..5...............%.............
0c00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 9c 00 00 00 25 00 00 00 00 00 00 00 ........................%.......
0c20 00 00 00 00 0d 00 00 00 01 00 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d3 01 00 00 ................................
0c40 00 00 00 00 35 81 5f d0 00 00 00 04 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 aa ....5._.........................
0c60 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0da0 00 00 00 00 00 00 00 00 00 01 00 00 00 45 00 00 00 00 00 00 00 01 00 00 00 45 00 00 00 00 00 00 .............E...........E......
0dc0 00 56 00 00 00 45 00 00 00 00 69 9d 8a 9d 04 01 00 00 00 02 00 f5 18 00 00 00 1a 00 00 00 dd 00 .V...E....i.....................
0de0 00 00 aa 00 00 00 8f 00 00 00 30 20 20 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d ..........0....char.template[].=
0e00 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1f 20 ."/tmp/wayland-shm-XXXXXX";.....
0e20 20 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 ...int.fd.=.mkstemp(template);..
0e40 00 2f 20 20 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 6d 6b 73 74 ./....if.(fd.<.0).{.perror("mkst
0e60 65 6d 70 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 15 20 20 20 20 75 6e 6c 69 6e 6b 28 emp");.exit(1);.}........unlink(
0e80 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 42 20 20 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 template);...B....if.(ftruncate(
0ea0 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 fd,.size).<.0).{.perror("ftrunca
0ec0 74 65 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 0e 20 20 20 20 72 65 74 75 72 6e 20 66 te");.exit(1);.}........return.f
0ee0 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 54 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 d;....}.......Tstatic.void.wm_ba
0f00 73 65 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 se_ping(void.*data,.struct.xdg_w
0f20 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c m_base.*wm_base,.uint32_t.serial
0f40 29 20 7b 00 00 00 26 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 ).{...&....xdg_wm_base_pong(wm_b
0f60 61 73 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 ase,.serial);....}.......Kstatic
0f80 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e .const.struct.xdg_wm_base_listen
0fa0 65 72 20 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 77 6d 5f 62 61 73 65 5f 70 er.wm_base_listener.=.{wm_base_p
0fc0 69 6e 67 7d 3b 00 00 00 00 00 00 00 61 73 74 61 74 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 ing};.......astatic.void.xdg_sur
0fe0 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 face_configure(void.*data,.struc
1000 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 2c 20 75 69 6e 74 t.xdg_surface.*xdg_surface,.uint
1020 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 33 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 32_t.serial).{...3....xdg_surfac
1040 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 e_ack_configure(xdg_surface,.ser
1060 69 61 6c 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 ial);........wl_surface_commit(s
1080 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 58 73 74 61 74 69 63 20 63 6f 6e 73 urface);....}.......Xstatic.cons
10a0 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 t.struct.xdg_surface_listener.xd
10c0 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 78 64 67 5f 73 75 72 66 61 63 g_surface_listener.=.{xdg_surfac
10e0 65 5f 63 6f 6e 66 69 67 75 72 65 7d 3b 00 00 00 00 00 00 00 34 73 74 61 74 69 63 20 76 6f 69 64 e_configure};.......4static.void
1100 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 69 6e 74 20 77 69 64 74 68 2c 20 69 6e 74 20 .allocate_buffer(int.width,.int.
1120 68 65 69 67 68 74 29 20 7b 00 00 00 11 20 20 20 20 69 66 20 28 62 75 66 66 65 72 29 20 7b 00 00 height).{........if.(buffer).{..
1140 00 22 20 20 20 20 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 62 75 66 66 ."........wl_buffer_destroy(buff
1160 65 72 29 3b 00 00 00 33 20 20 20 20 20 20 20 20 6d 75 6e 6d 61 70 28 70 69 78 65 6c 73 2c 20 62 er);...3........munmap(pixels,.b
1180 75 66 5f 77 69 64 74 68 20 2a 20 62 75 66 5f 68 65 69 67 68 74 20 2a 20 34 29 3b 00 00 00 05 20 uf_width.*.buf_height.*.4);.....
11a0 20 20 20 7d 00 00 00 16 20 20 20 20 62 75 66 5f 77 69 64 74 68 20 3d 20 77 69 64 74 68 3b 00 00 ...}........buf_width.=.width;..
11c0 00 18 20 20 20 20 62 75 66 5f 68 65 69 67 68 74 20 3d 20 68 65 69 67 68 74 3b 00 00 00 1b 20 20 ......buf_height.=.height;......
11e0 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 77 69 64 74 68 20 2a 20 34 3b 00 00 00 1f 20 20 20 ..int.stride.=.width.*.4;.......
1200 20 69 6e 74 20 73 69 7a 65 20 3d 20 73 74 72 69 64 65 20 2a 20 68 65 69 67 68 74 3b 00 00 00 23 .int.size.=.stride.*.height;...#
1220 20 20 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a ....int.fd.=.create_shm_file(siz
1240 65 29 3b 00 00 00 49 20 20 20 20 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 e);...I....pixels.=.mmap(NULL,.s
1260 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 ize,.PROT_READ.|.PROT_WRITE,.MAP
1280 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 3a 20 20 20 20 69 66 20 28 70 69 78 65 _SHARED,.fd,.0);...:....if.(pixe
12a0 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 ls.==.MAP_FAILED).{.perror("mmap
12c0 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 41 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f ");.exit(1);.}...A....struct.wl_
12e0 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 shm_pool.*pool.=.wl_shm_create_p
1300 6f 6f 6c 28 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 5f 20 20 20 20 62 75 66 66 65 ool(shm,.fd,.size);..._....buffe
1320 72 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f r.=.wl_shm_pool_create_buffer(po
1340 6f 6c 2c 20 30 2c 20 77 69 64 74 68 2c 20 68 65 69 67 68 74 2c 20 73 74 72 69 64 65 2c 20 57 4c ol,.0,.width,.height,.stride,.WL
1360 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 2d 20 20 20 20 77 6c _SHM_FORMAT_ARGB8888);...-....wl
1380 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c _surface_attach(surface,.buffer,
13a0 20 30 2c 20 30 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 .0,.0);........wl_surface_commit
13c0 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 44 73 74 61 74 69 63 20 76 6f (surface);....}.......Dstatic.vo
13e0 69 64 20 64 72 61 77 5f 70 69 78 65 6c 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 id.draw_pixel(int.x,.int.y,.int.
1400 77 2c 20 69 6e 74 20 68 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 2b 20 w,.int.h,.uint32_t.color).{...+.
1420 20 20 20 69 66 20 28 78 20 3e 3d 20 30 20 26 26 20 78 20 3c 20 77 20 26 26 20 79 20 3e 3d 20 30 ...if.(x.>=.0.&&.x.<.w.&&.y.>=.0
1440 20 26 26 20 79 20 3c 20 68 29 00 00 00 30 20 20 20 20 20 20 20 20 28 28 75 69 6e 74 33 32 5f 74 .&&.y.<.h)...0........((uint32_t
1460 20 2a 29 70 69 78 65 6c 73 29 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 6f 6c 6f 72 3b 00 00 .*)pixels)[y.*.w.+.x].=.color;..
1480 00 01 7d 00 00 00 00 00 00 00 63 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 ..}.......cstatic.void.draw_line
14a0 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 (uint32_t.*px,.int.w,.int.h,.int
14c0 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 75 69 6e .x0,.int.y0,.int.x1,.int.y1,.uin
14e0 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 31 20 20 20 20 69 6e 74 20 64 78 20 3d 20 61 t32_t.color).{...1....int.dx.=.a
1500 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 bs(x1.-.x0),.sx.=.x0.<.x1.?.1.:.
1520 2d 31 3b 00 00 00 32 20 20 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 -1;...2....int.dy.=.-abs(y1.-.y0
1540 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 1a 20 20 20 ),.sy.=.y0.<.y1.?.1.:.-1;.......
1560 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0f 20 20 20 20 77 .int.err.=.dx.+.dy,.e2;........w
1580 68 69 6c 65 20 28 31 29 20 7b 00 00 00 4c 20 20 20 20 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 hile.(1).{...L........if.(x0.>=.
15a0 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 0.&&.x0.<.w.&&.y0.>=.0.&&.y0.<.h
15c0 29 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 6f 6c 6f 72 3b 00 00 00 28 20 20 ).px[y0.*.w.+.x0].=.color;...(..
15e0 20 20 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 20 ......if.(x0.==.x1.&&.y0.==.y1).
1600 62 72 65 61 6b 3b 00 00 00 15 20 20 20 20 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 break;............e2.=.2.*.err;.
1620 00 00 2e 20 20 20 20 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 20 65 72 72 20 2b ...........if.(e2.>=.dy).{.err.+
1640 3d 20 64 79 3b 20 78 30 20 2b 3d 20 73 78 3b 20 7d 00 00 00 2e 20 20 20 20 20 20 20 20 69 66 20 =.dy;.x0.+=.sx;.}............if.
1660 28 65 32 20 3c 3d 20 64 78 29 20 7b 20 65 72 72 20 2b 3d 20 64 78 3b 20 79 30 20 2b 3d 20 73 79 (e2.<=.dx).{.err.+=.dx;.y0.+=.sy
1680 3b 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 5c 73 74 61 74 69 63 20 ;.}........}....}.......\static.
16a0 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 void.draw_circle(uint32_t.*px,.i
16c0 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 nt.w,.int.h,.int.cx,.int.cy,.int
16e0 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 1e 20 20 20 20 69 6e 74 .r,.uint32_t.color).{........int
1700 20 78 20 3d 20 72 2c 20 79 20 3d 20 30 2c 20 65 72 72 20 3d 20 30 3b 00 00 00 14 20 20 20 20 77 .x.=.r,.y.=.0,.err.=.0;........w
1720 68 69 6c 65 20 28 78 20 3e 3d 20 79 29 20 7b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f hile.(x.>=.y).{...0........draw_
1740 70 69 78 65 6c 28 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f pixel(cx.+.x,.cy.+.y,.w,.h,.colo
1760 72 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 79 r);...0........draw_pixel(cx.+.y
1780 2c 20 63 79 20 2b 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 ,.cy.+.x,.w,.h,.color);...0.....
17a0 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 2c 20 77 2c ...draw_pixel(cx.-.y,.cy.+.x,.w,
17c0 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 .h,.color);...0........draw_pixe
17e0 6c 28 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 l(cx.-.x,.cy.+.y,.w,.h,.color);.
1800 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 78 2c 20 63 79 ..0........draw_pixel(cx.-.x,.cy
1820 20 2d 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 .-.y,.w,.h,.color);...0........d
1840 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 2c 20 77 2c 20 68 2c 20 raw_pixel(cx.-.y,.cy.-.x,.w,.h,.
1860 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 color);...0........draw_pixel(cx
1880 20 2b 20 79 2c 20 63 79 20 2d 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 .+.y,.cy.-.x,.w,.h,.color);...0.
18a0 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 .......draw_pixel(cx.+.x,.cy.-.y
18c0 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 0c 20 20 20 20 20 20 20 20 79 2b 2b 3b 00 ,.w,.h,.color);............y++;.
18e0 00 00 29 20 20 20 20 20 20 20 20 69 66 20 28 65 72 72 20 3c 3d 20 30 29 20 7b 20 65 72 72 20 2b ..)........if.(err.<=.0).{.err.+
1900 3d 20 32 2a 79 20 2b 20 31 3b 20 7d 00 00 00 2d 20 20 20 20 20 20 20 20 69 66 20 28 65 72 72 20 =.2*y.+.1;.}...-........if.(err.
1920 3e 20 30 29 20 7b 20 78 2d 2d 3b 20 65 72 72 20 2d 3d 20 32 2a 78 20 2b 20 31 3b 20 7d 00 00 00 >.0).{.x--;.err.-=.2*x.+.1;.}...
1940 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 1a 73 74 61 74 69 63 20 76 6f 69 64 20 64 .....}....}........static.void.d
1960 72 61 77 5f 63 6c 6f 63 6b 28 29 20 7b 00 00 00 18 20 20 20 20 69 66 20 28 21 70 69 78 65 6c 73 raw_clock().{........if.(!pixels
1980 29 20 72 65 74 75 72 6e 3b 00 00 00 26 20 20 20 20 69 6e 74 20 77 20 3d 20 62 75 66 5f 77 69 64 ).return;...&....int.w.=.buf_wid
19a0 74 68 2c 20 68 20 3d 20 62 75 66 5f 68 65 69 67 68 74 3b 00 00 00 1a 20 20 20 20 75 69 6e 74 33 th,.h.=.buf_height;........uint3
19c0 32 5f 74 20 2a 70 78 20 3d 20 70 69 78 65 6c 73 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 63 78 20 2_t.*px.=.pixels;........int.cx.
19e0 3d 20 77 20 2f 20 32 2c 20 63 79 20 3d 20 68 20 2f 20 32 3b 00 00 00 25 20 20 20 20 69 6e 74 20 =.w./.2,.cy.=.h./.2;...%....int.
1a00 72 20 3d 20 28 77 20 3c 20 68 20 3f 20 77 20 3a 20 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 r.=.(w.<.h.?.w.:.h)./.2.-.10;...
1a20 35 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 77 2a 68 3b 20 69 2b 5....for.(int.i.=.0;.i.<.w*h;.i+
1a40 2b 29 20 70 78 5b 69 5d 20 3d 20 30 78 66 66 66 66 66 66 66 66 3b 00 00 00 31 20 20 20 20 64 72 +).px[i].=.0xffffffff;...1....dr
1a60 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 aw_circle(px,.w,.h,.cx,.cy,.r,.0
1a80 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 22 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 xff000000);..."....for.(int.i.=.
1aa0 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 64 6f 75 0;.i.<.12;.i++).{.../........dou
1ac0 62 6c 65 20 61 6e 67 6c 65 20 3d 20 69 20 2a 20 4d 5f 50 49 20 2f 20 36 2e 30 20 2d 20 4d 5f 50 ble.angle.=.i.*.M_PI./.6.0.-.M_P
1ae0 49 2f 32 3b 00 00 00 2e 20 20 20 20 20 20 20 20 69 6e 74 20 78 30 20 3d 20 63 78 20 2b 20 28 69 I/2;............int.x0.=.cx.+.(i
1b00 6e 74 29 28 28 72 2d 35 29 2a 63 6f 73 28 61 6e 67 6c 65 29 29 3b 00 00 00 2e 20 20 20 20 20 20 nt)((r-5)*cos(angle));..........
1b20 20 20 69 6e 74 20 79 30 20 3d 20 63 79 20 2b 20 28 69 6e 74 29 28 28 72 2d 35 29 2a 73 69 6e 28 ..int.y0.=.cy.+.(int)((r-5)*sin(
1b40 61 6e 67 6c 65 29 29 3b 00 00 00 2a 20 20 20 20 20 20 20 20 69 6e 74 20 78 31 20 3d 20 63 78 20 angle));...*........int.x1.=.cx.
1b60 2b 20 28 69 6e 74 29 28 72 2a 63 6f 73 28 61 6e 67 6c 65 29 29 3b 00 00 00 2a 20 20 20 20 20 20 +.(int)(r*cos(angle));...*......
1b80 20 20 69 6e 74 20 79 31 20 3d 20 63 79 20 2b 20 28 69 6e 74 29 28 72 2a 73 69 6e 28 61 6e 67 6c ..int.y1.=.cy.+.(int)(r*sin(angl
1ba0 65 29 29 3b 00 00 00 38 20 20 20 20 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c e));...8........draw_line(px,.w,
1bc0 20 68 2c 20 78 30 2c 20 79 30 2c 20 78 31 2c 20 79 31 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b .h,.x0,.y0,.x1,.y1,.0xff000000);
1be0 00 00 00 05 20 20 20 20 7d 00 00 00 1a 20 20 20 20 74 69 6d 65 5f 74 20 74 20 3d 20 74 69 6d 65 ........}........time_t.t.=.time
1c00 28 4e 55 4c 4c 29 3b 00 00 00 22 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 6d 20 3d 20 6c (NULL);..."....struct.tm.*tm.=.l
1c20 6f 63 61 6c 74 69 6d 65 28 26 74 29 3b 00 00 00 4f 20 20 20 20 64 6f 75 62 6c 65 20 68 6f 75 72 ocaltime(&t);...O....double.hour
1c40 5f 61 6e 67 6c 65 20 3d 20 28 74 6d 2d 3e 74 6d 5f 68 6f 75 72 20 25 20 31 32 20 2b 20 74 6d 2d _angle.=.(tm->tm_hour.%.12.+.tm-
1c60 3e 74 6d 5f 6d 69 6e 2f 36 30 2e 30 29 2a 4d 5f 50 49 2f 36 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b >tm_min/60.0)*M_PI/6.0.-.M_PI/2;
1c80 00 00 00 49 20 20 20 20 64 6f 75 62 6c 65 20 6d 69 6e 5f 61 6e 67 6c 65 20 3d 20 28 74 6d 2d 3e ...I....double.min_angle.=.(tm->
1ca0 74 6d 5f 6d 69 6e 20 2b 20 74 6d 2d 3e 74 6d 5f 73 65 63 2f 36 30 2e 30 29 2a 4d 5f 50 49 2f 33 tm_min.+.tm->tm_sec/60.0)*M_PI/3
1cc0 30 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b 00 00 00 37 20 20 20 20 64 6f 75 62 6c 65 20 73 65 63 5f 0.0.-.M_PI/2;...7....double.sec_
1ce0 61 6e 67 6c 65 20 3d 20 74 6d 2d 3e 74 6d 5f 73 65 63 20 2a 20 4d 5f 50 49 2f 33 30 2e 30 20 2d angle.=.tm->tm_sec.*.M_PI/30.0.-
1d00 20 4d 5f 50 49 2f 32 3b 00 00 00 67 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 77 2c 68 .M_PI/2;...g....draw_line(px,w,h
1d20 2c 63 78 2c 63 79 2c 63 78 2b 28 69 6e 74 29 28 72 2a 30 2e 35 2a 63 6f 73 28 68 6f 75 72 5f 61 ,cx,cy,cx+(int)(r*0.5*cos(hour_a
1d40 6e 67 6c 65 29 29 2c 63 79 2b 28 69 6e 74 29 28 72 2a 30 2e 35 2a 73 69 6e 28 68 6f 75 72 5f 61 ngle)),cy+(int)(r*0.5*sin(hour_a
1d60 6e 67 6c 65 29 29 2c 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 65 20 20 20 20 64 72 61 77 5f ngle)),0xff000000);...e....draw_
1d80 6c 69 6e 65 28 70 78 2c 77 2c 68 2c 63 78 2c 63 79 2c 63 78 2b 28 69 6e 74 29 28 72 2a 30 2e 37 line(px,w,h,cx,cy,cx+(int)(r*0.7
1da0 2a 63 6f 73 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 2c 63 79 2b 28 69 6e 74 29 28 72 2a 30 2e 37 2a *cos(min_angle)),cy+(int)(r*0.7*
1dc0 73 69 6e 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 2c 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 65 sin(min_angle)),0xff000000);...e
1de0 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 77 2c 68 2c 63 78 2c 63 79 2c 63 78 2b 28 69 ....draw_line(px,w,h,cx,cy,cx+(i
1e00 6e 74 29 28 72 2a 30 2e 39 2a 63 6f 73 28 73 65 63 5f 61 6e 67 6c 65 29 29 2c 63 79 2b 28 69 6e nt)(r*0.9*cos(sec_angle)),cy+(in
1e20 74 29 28 72 2a 30 2e 39 2a 73 69 6e 28 73 65 63 5f 61 6e 67 6c 65 29 29 2c 30 78 66 66 66 66 30 t)(r*0.9*sin(sec_angle)),0xffff0
1e40 30 30 30 29 3b 00 00 00 2d 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 000);...-....wl_surface_attach(s
1e60 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 27 20 20 20 20 77 6c urface,.buffer,.0,.0);...'....wl
1e80 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 28 73 75 72 66 61 63 65 2c 30 2c 30 2c 77 2c 68 29 _surface_damage(surface,0,0,w,h)
1ea0 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 ;........wl_surface_commit(surfa
1ec0 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 80 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 ce);....}........static.void.top
1ee0 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 level_configure(void.*data,.stru
1f00 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 2c 69 6e 74 33 32 5f ct.xdg_toplevel.*toplevel,int32_
1f20 74 20 77 69 64 74 68 2c 69 6e 74 33 32 5f 74 20 68 65 69 67 68 74 2c 73 74 72 75 63 74 20 77 6c t.width,int32_t.height,struct.wl
1f40 5f 61 72 72 61 79 20 2a 73 74 61 74 65 73 29 20 7b 00 00 00 3b 20 20 20 20 69 66 20 28 77 69 64 _array.*states).{...;....if.(wid
1f60 74 68 3e 30 20 26 26 20 68 65 69 67 68 74 3e 30 29 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 th>0.&&.height>0).allocate_buffe
1f80 72 28 77 69 64 74 68 2c 68 65 69 67 68 74 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 54 73 74 61 r(width,height);....}.......Tsta
1fa0 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 tic.void.toplevel_close(void.*da
1fc0 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 ta,.struct.xdg_toplevel.*topleve
1fe0 6c 29 20 7b 20 72 75 6e 6e 69 6e 67 3d 30 3b 20 7d 00 00 00 00 00 00 00 74 73 74 61 74 69 63 20 l).{.running=0;.}.......tstatic.
2000 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e const.struct.xdg_toplevel_listen
2020 65 72 20 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 er.toplevel_listener.=.{.configu
2040 72 65 3d 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 2c 2e 63 6c 6f 73 65 3d 74 6f 70 re=toplevel_configure,.close=top
2060 6c 65 76 65 6c 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 7a 73 74 61 74 69 63 20 76 6f 69 64 level_close};.......zstatic.void
2080 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 .registry_handler(void.*data,.st
20a0 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 2c 75 69 6e 74 33 ruct.wl_registry.*registry,uint3
20c0 32 5f 74 20 69 64 2c 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 2c 75 69 6e 2_t.id,const.char.*interface,uin
20e0 74 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 7b 00 00 00 71 20 20 20 20 69 66 28 73 74 72 63 6d 70 t32_t.version){...q....if(strcmp
2100 28 69 6e 74 65 72 66 61 63 65 2c 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 3d 3d 30 29 20 (interface,"wl_compositor")==0).
2120 63 6f 6d 70 6f 73 69 74 6f 72 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 compositor=wl_registry_bind(regi
2140 73 74 72 79 2c 69 64 2c 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 stry,id,&wl_compositor_interface
2160 2c 34 29 3b 00 00 00 61 20 20 20 20 65 6c 73 65 20 69 66 28 73 74 72 63 6d 70 28 69 6e 74 65 72 ,4);...a....else.if(strcmp(inter
2180 66 61 63 65 2c 22 77 6c 5f 73 68 6d 22 29 3d 3d 30 29 20 73 68 6d 3d 77 6c 5f 72 65 67 69 73 74 face,"wl_shm")==0).shm=wl_regist
21a0 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 69 64 2c 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 ry_bind(registry,id,&wl_shm_inte
21c0 72 66 61 63 65 2c 31 29 3b 00 00 00 30 20 20 20 20 65 6c 73 65 20 69 66 28 73 74 72 63 6d 70 28 rface,1);...0....else.if(strcmp(
21e0 69 6e 74 65 72 66 61 63 65 2c 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 3d 3d 30 29 7b 00 00 00 interface,"xdg_wm_base")==0){...
2200 47 20 20 20 20 20 20 20 20 77 6d 5f 62 61 73 65 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e G........wm_base=wl_registry_bin
2220 64 28 72 65 67 69 73 74 72 79 2c 69 64 2c 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 d(registry,id,&xdg_wm_base_inter
2240 66 61 63 65 2c 31 29 3b 00 00 00 41 20 20 20 20 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f face,1);...A........xdg_wm_base_
2260 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 26 77 6d 5f 62 61 73 65 5f 6c 69 add_listener(wm_base,&wm_base_li
2280 73 74 65 6e 65 72 2c 4e 55 4c 4c 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 stener,NULL);........}....}.....
22a0 00 00 53 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 ..Sstatic.const.struct.wl_regist
22c0 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 3d 7b 72 ry_listener.registry_listener={r
22e0 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 4e 55 4c 4c 7d 3b 00 00 00 00 00 00 00 0c 69 6e egistry_handler,NULL};........in
2300 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 27 20 20 20 20 64 69 73 70 6c 61 79 20 3d 20 77 6c 5f 64 t.main().{...'....display.=.wl_d
2320 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 57 20 20 20 20 69 66 28 isplay_connect(NULL);...W....if(
2340 21 64 69 73 70 6c 61 79 29 7b 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 22 46 61 69 6c 65 !display){.fprintf(stderr,"Faile
2360 64 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 20 57 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c d.to.connect.to.Wayland.display\
2380 6e 22 29 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 00 00 30 20 20 20 20 72 65 67 69 73 74 72 79 n");.return.1;.}...0....registry
23a0 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 64 69 73 70 6c .=.wl_display_get_registry(displ
23c0 61 79 29 3b 00 00 00 3f 20 20 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 ay);...?....wl_registry_add_list
23e0 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 26 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 ener(registry,&registry_listener
2400 2c 4e 55 4c 4c 29 3b 00 00 00 22 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 ,NULL);..."....wl_display_roundt
2420 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 61 20 20 20 20 69 66 28 21 63 6f 6d 70 6f 73 69 rip(display);...a....if(!composi
2440 74 6f 72 20 7c 7c 20 21 73 68 6d 20 7c 7c 20 21 77 6d 5f 62 61 73 65 29 7b 20 66 70 72 69 6e 74 tor.||.!shm.||.!wm_base){.fprint
2460 66 28 73 74 64 65 72 72 2c 22 4d 69 73 73 69 6e 67 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c f(stderr,"Missing.Wayland.global
2480 73 5c 6e 22 29 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 00 00 37 20 20 20 20 73 75 72 66 61 63 s\n");.return.1;.}...7....surfac
24a0 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 e.=.wl_compositor_create_surface
24c0 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 3f 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 (compositor);...?....xdg_surface
24e0 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 77 .=.xdg_wm_base_get_xdg_surface(w
2500 6d 5f 62 61 73 65 2c 73 75 72 66 61 63 65 29 3b 00 00 00 45 20 20 20 20 78 64 67 5f 73 75 72 66 m_base,surface);...E....xdg_surf
2520 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c 26 78 64 ace_add_listener(xdg_surface,&xd
2540 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 2c 4e 55 4c 4c 29 3b 00 00 00 35 20 20 20 g_surface_listener,NULL);...5...
2560 20 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c .toplevel.=.xdg_surface_get_topl
2580 65 76 65 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 40 20 20 20 20 78 64 67 5f 74 6f evel(xdg_surface);...@....xdg_to
25a0 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 74 6f 70 6c 65 76 65 6c 2c 26 74 6f plevel_add_listener(toplevel,&to
25c0 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 2c 4e 55 4c 4c 29 3b 00 00 00 2e 20 20 20 20 78 64 plevel_listener,NULL);........xd
25e0 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 74 6f 70 6c 65 76 65 6c 2c 22 78 g_toplevel_set_title(toplevel,"x
2600 63 6c 6f 63 6b 22 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 clock");........wl_surface_commi
2620 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 22 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f t(surface);..."....wl_display_ro
2640 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 13 20 20 20 20 77 68 69 6c 65 28 72 undtrip(display);........while(r
2660 75 6e 6e 69 6e 67 29 7b 00 00 00 2d 20 20 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 unning){...-........wl_display_d
2680 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 64 69 73 70 6c 61 79 29 3b 00 00 00 15 20 20 20 ispatch_pending(display);.......
26a0 20 20 20 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 29 3b 00 00 00 1b 20 20 20 20 20 20 20 20 75 73 .....draw_clock();............us
26c0 6c 65 65 70 28 31 30 30 30 30 30 30 2f 36 30 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 0d 20 20 leep(1000000/60);........}......
26e0 20 20 72 65 74 75 72 6e 20 30 3b 35 81 f5 18 00 00 00 00 1a 00 00 00 02 00 00 00 8e 00 00 00 02 ..return.0;5....................
2700 00 00 00 c1 00 00 00 00 00 00 00 7d 02 00 00 00 00 00 00 49 17 00 00 00 00 00 00 f0 18 00 00 00 ...........}.......I............
2720 00 00 00 35 81 5f d0 00 00 00 05 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 01 00 ...5._..........................
2740 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
28a0 00 00 00 00 00 00 00 00 00 69 9d 8b 67 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 .........i..g...................
28c0 00 00 00 00 00 dd 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c .........&#include."xdg-shell-cl
28e0 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 ient-protocol.h"....#include.<fc
2900 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 12 23 ntl.h>....#include.<math.h>....#
2920 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 include.<stdio.h>....#include.<s
2940 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 tdlib.h>....#include.<string.h>.
2960 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 11 23 69 6e 63 ...#include.<sys/mman.h>....#inc
2980 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 lude.<time.h>....#include.<unist
29a0 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 d.h>....#include.<wayland-client
29c0 2e 68 3e 00 00 00 00 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 69 .h>........struct.wl_display.*di
29e0 73 70 6c 61 79 3b 00 00 00 1d 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 splay;....struct.wl_registry.*re
2a00 67 69 73 74 72 79 3b 00 00 00 21 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 gistry;...!struct.wl_compositor.
2a20 2a 63 6f 6d 70 6f 73 69 74 6f 72 3b 00 00 00 13 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 *compositor;....struct.wl_shm.*s
2a40 68 6d 3b 00 00 00 1c 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 hm;....struct.xdg_wm_base.*wm_ba
2a60 73 65 3b 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 72 66 61 63 se;....struct.wl_surface.*surfac
2a80 65 3b 00 00 00 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 e;....struct.xdg_surface.*xdg_su
2aa0 72 66 61 63 65 3b 00 00 00 1e 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 rface;....struct.xdg_toplevel.*t
2ac0 6f 70 6c 65 76 65 6c 3b 00 00 00 00 00 00 00 17 73 74 61 74 69 63 20 69 6e 74 20 72 75 6e 6e 69 oplevel;........static.int.runni
2ae0 6e 67 20 3d 20 31 3b 00 00 00 27 73 74 61 74 69 63 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 ng.=.1;...'static.struct.wl_buff
2b00 65 72 20 2a 62 75 66 66 65 72 20 3d 20 4e 55 4c 4c 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 er.*buffer.=.NULL;....static.voi
2b20 64 20 2a 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 d.*pixels.=.NULL;...)static.int.
2b40 62 75 66 5f 77 69 64 74 68 20 3d 20 30 2c 20 62 75 66 5f 68 65 69 67 68 74 20 3d 20 30 3b 00 00 buf_width.=.0,.buf_height.=.0;..
2b60 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 .....)static.int.create_shm_file
2b80 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 (size_t.size).{......char.templa
2ba0 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 te[].=."/tmp/wayland-shm-XXXXXX"
2bc0 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 ;......int.fd.=.mkstemp(template
2be0 29 3b 00 00 00 0f 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 00 00 00 16 20 20 20 20 70 65 72 );......if.(fd.<.0).{........per
2c00 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 ror("mkstemp");........exit(1);.
2c20 00 00 03 20 20 7d 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 .....}......unlink(template);...
2c40 20 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 ...if.(ftruncate(fd,.size).<.0).
2c60 7b 00 00 00 18 20 20 20 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 00 00 00 {........perror("ftruncate");...
2c80 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e .....exit(1);......}......return
2ca0 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f .fd;....}.......Astatic.void.wm_
2cc0 62 61 73 65 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 base_ping(void.*data,.struct.xdg
2ce0 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 _wm_base.*wm_base,...+..........
2d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 ...............uint32_t.serial).
2d20 7b 00 00 00 24 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 61 73 65 2c {...$..xdg_wm_base_pong(wm_base,
2d40 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 20 63 6f 6e .serial);....}.......Kstatic.con
2d60 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 st.struct.xdg_wm_base_listener.w
2d80 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 77 6d 5f 62 61 73 65 5f 70 69 6e 67 7d m_base_listener.=.{wm_base_ping}
2da0 3b 00 00 00 00 00 00 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 61 63 65 ;.......Nstatic.void.xdg_surface
2dc0 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 _configure(void.*data,.struct.xd
2de0 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 2c 00 00 00 34 20 20 20 20 20 g_surface.*xdg_surface,...4.....
2e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e .............................uin
2e20 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 31 20 20 78 64 67 5f 73 75 72 66 61 63 65 t32_t.serial).{...1..xdg_surface
2e40 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 _ack_configure(xdg_surface,.seri
2e60 61 6c 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 al);......wl_surface_commit(surf
2e80 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 ace);....}.......Astatic.const.s
2ea0 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 truct.xdg_surface_listener.xdg_s
2ec0 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 1b 20 20 20 20 78 64 67 5f 73 urface_listener.=.{........xdg_s
2ee0 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 7d 3b 00 00 00 00 00 00 00 34 73 74 61 74 69 63 urface_configure};.......4static
2f00 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 69 6e 74 20 77 69 64 74 68 2c .void.allocate_buffer(int.width,
2f20 20 69 6e 74 20 68 65 69 67 68 74 29 20 7b 00 00 00 0f 20 20 69 66 20 28 62 75 66 66 65 72 29 20 .int.height).{......if.(buffer).
2f40 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 62 75 66 66 65 {........wl_buffer_destroy(buffe
2f60 72 29 3b 00 00 00 2f 20 20 20 20 6d 75 6e 6d 61 70 28 70 69 78 65 6c 73 2c 20 62 75 66 5f 77 69 r);.../....munmap(pixels,.buf_wi
2f80 64 74 68 20 2a 20 62 75 66 5f 68 65 69 67 68 74 20 2a 20 34 29 3b 00 00 00 03 20 20 7d 00 00 00 dth.*.buf_height.*.4);......}...
2fa0 14 20 20 62 75 66 5f 77 69 64 74 68 20 3d 20 77 69 64 74 68 3b 00 00 00 16 20 20 62 75 66 5f 68 ...buf_width.=.width;......buf_h
2fc0 65 69 67 68 74 20 3d 20 68 65 69 67 68 74 3b 00 00 00 19 20 20 69 6e 74 20 73 74 72 69 64 65 20 eight.=.height;......int.stride.
2fe0 3d 20 77 69 64 74 68 20 2a 20 34 3b 00 00 00 1d 20 20 69 6e 74 20 73 69 7a 65 20 3d 20 73 74 72 =.width.*.4;......int.size.=.str
3000 69 64 65 20 2a 20 68 65 69 67 68 74 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 ide.*.height;...!..int.fd.=.crea
3020 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 47 20 20 70 69 78 65 6c 73 20 3d te_shm_file(size);...G..pixels.=
3040 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 .mmap(NULL,.size,.PROT_READ.|.PR
3060 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 OT_WRITE,.MAP_SHARED,.fd,.0);...
3080 1d 20 20 69 66 20 28 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 ...if.(pixels.==.MAP_FAILED).{..
30a0 00 13 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 ......perror("mmap");........exi
30c0 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 3f 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f t(1);......}...?..struct.wl_shm_
30e0 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 pool.*pool.=.wl_shm_create_pool(
3100 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 44 20 20 62 75 66 66 65 72 20 3d 20 77 6c shm,.fd,.size);...D..buffer.=.wl
3120 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c _shm_pool_create_buffer(pool,.0,
3140 20 77 69 64 74 68 2c 20 68 65 69 67 68 74 2c 20 73 74 72 69 64 65 2c 00 00 00 3d 20 20 20 20 20 .width,.height,.stride,...=.....
3160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3180 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 2b 20 20 77 6c WL_SHM_FORMAT_ARGB8888);...+..wl
31a0 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c _surface_attach(surface,.buffer,
31c0 20 30 2c 20 30 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 .0,.0);......wl_surface_commit(s
31e0 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 44 73 74 61 74 69 63 20 76 6f 69 64 urface);....}.......Dstatic.void
3200 20 64 72 61 77 5f 70 69 78 65 6c 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 77 2c .draw_pixel(int.x,.int.y,.int.w,
3220 20 69 6e 74 20 68 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 29 20 20 69 .int.h,.uint32_t.color).{...)..i
3240 66 20 28 78 20 3e 3d 20 30 20 26 26 20 78 20 3c 20 77 20 26 26 20 79 20 3e 3d 20 30 20 26 26 20 f.(x.>=.0.&&.x.<.w.&&.y.>=.0.&&.
3260 79 20 3c 20 68 29 00 00 00 2c 20 20 20 20 28 28 75 69 6e 74 33 32 5f 74 20 2a 29 70 69 78 65 6c y.<.h)...,....((uint32_t.*)pixel
3280 73 29 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 6f 6c 6f 72 3b 00 00 00 01 7d 00 00 00 00 00 s)[y.*.w.+.x].=.color;....}.....
32a0 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f ..Istatic.void.draw_line(uint32_
32c0 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 t.*px,.int.w,.int.h,.int.x0,.int
32e0 20 79 30 2c 20 69 6e 74 20 78 31 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .y0,.int.x1,.../................
3300 20 20 20 20 20 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 ......int.y1,.uint32_t.color).{.
3320 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d ../..int.dx.=.abs(x1.-.x0),.sx.=
3340 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d .x0.<.x1.?.1.:.-1;...0..int.dy.=
3360 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 .-abs(y1.-.y0),.sy.=.y0.<.y1.?.1
3380 20 3a 20 2d 31 3b 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 .:.-1;......int.err.=.dx.+.dy,.e
33a0 32 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 2;......while.(1).{.../....if.(x
33c0 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 0.>=.0.&&.x0.<.w.&&.y0.>=.0.&&.y
33e0 30 20 3c 20 68 29 00 00 00 1e 20 20 20 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 0.<.h)..........px[y0.*.w.+.x0].
3400 3d 20 63 6f 6c 6f 72 3b 00 00 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 =.color;........if.(x0.==.x1.&&.
3420 79 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 11 20 20 20 y0.==.y1)..........break;.......
3440 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 .e2.=.2.*.err;........if.(e2.>=.
3460 64 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 dy).{..........err.+=.dy;.......
3480 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 69 66 20 ...x0.+=.sx;........}........if.
34a0 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b (e2.<=.dx).{..........err.+=.dx;
34c0 00 00 00 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 ..........y0.+=.sy;........}....
34e0 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 ..}....}.......Jstatic.void.draw
3500 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 _circle(uint32_t.*px,.int.w,.int
3520 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 29 20 20 .h,.int.cx,.int.cy,.int.r,...)..
3540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 ......................uint32_t.c
3560 6f 6c 6f 72 29 20 7b 00 00 00 1c 20 20 69 6e 74 20 78 20 3d 20 72 2c 20 79 20 3d 20 30 2c 20 65 olor).{......int.x.=.r,.y.=.0,.e
3580 72 72 20 3d 20 30 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 78 20 3e 3d 20 79 29 20 7b 00 00 00 rr.=.0;......while.(x.>=.y).{...
35a0 2c 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 2c 20 ,....draw_pixel(cx.+.x,.cy.+.y,.
35c0 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 2c 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 w,.h,.color);...,....draw_pixel(
35e0 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 cx.+.y,.cy.+.x,.w,.h,.color);...
3600 2c 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 2c 20 ,....draw_pixel(cx.-.y,.cy.+.x,.
3620 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 2c 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 w,.h,.color);...,....draw_pixel(
3640 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 cx.-.x,.cy.+.y,.w,.h,.color);...
3660 2c 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 2c 20 ,....draw_pixel(cx.-.x,.cy.-.y,.
3680 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 2c 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 w,.h,.color);...,....draw_pixel(
36a0 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 cx.-.y,.cy.-.x,.w,.h,.color);...
36c0 2c 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 2c 20 ,....draw_pixel(cx.+.y,.cy.-.x,.
36e0 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 2c 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 w,.h,.color);...,....draw_pixel(
3700 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 cx.+.x,.cy.-.y,.w,.h,.color);...
3720 08 20 20 20 20 79 2b 2b 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 72 72 20 3c 3d 20 30 29 20 7b .....y++;........if.(err.<=.0).{
3740 00 00 00 17 20 20 20 20 20 20 65 72 72 20 2b 3d 20 32 20 2a 20 79 20 2b 20 31 3b 00 00 00 05 20 ..........err.+=.2.*.y.+.1;.....
3760 20 20 20 7d 00 00 00 12 20 20 20 20 69 66 20 28 65 72 72 20 3e 20 30 29 20 7b 00 00 00 0a 20 20 ...}........if.(err.>.0).{......
3780 20 20 20 20 78 2d 2d 3b 00 00 00 17 20 20 20 20 20 20 65 72 72 20 2d 3d 20 32 20 2a 20 78 20 2b ....x--;..........err.-=.2.*.x.+
37a0 20 31 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 1a .1;........}......}....}........
37c0 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 6c 6f 63 6b 28 29 20 7b 00 00 00 0e 20 20 static.void.draw_clock().{......
37e0 69 66 20 28 21 70 69 78 65 6c 73 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 24 20 if.(!pixels)........return;...$.
3800 20 69 6e 74 20 77 20 3d 20 62 75 66 5f 77 69 64 74 68 2c 20 68 20 3d 20 62 75 66 5f 68 65 69 67 .int.w.=.buf_width,.h.=.buf_heig
3820 68 74 3b 00 00 00 18 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 70 69 78 65 6c 73 3b 00 ht;......uint32_t.*px.=.pixels;.
3840 00 00 1d 20 20 69 6e 74 20 63 78 20 3d 20 77 20 2f 20 32 2c 20 63 79 20 3d 20 68 20 2f 20 32 3b .....int.cx.=.w./.2,.cy.=.h./.2;
3860 00 00 00 23 20 20 69 6e 74 20 72 20 3d 20 28 77 20 3c 20 68 20 3f 20 77 20 3a 20 68 29 20 2f 20 ...#..int.r.=.(w.<.h.?.w.:.h)./.
3880 32 20 2d 20 31 30 3b 00 00 00 21 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 2.-.10;...!..for.(int.i.=.0;.i.<
38a0 20 77 20 2a 20 68 3b 20 69 2b 2b 29 00 00 00 17 20 20 20 20 70 78 5b 69 5d 20 3d 20 30 78 66 66 .w.*.h;.i++)........px[i].=.0xff
38c0 66 66 66 66 66 66 3b 00 00 00 2f 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 77 2c 20 ffffff;.../..draw_circle(px,.w,.
38e0 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 20 20 20 h,.cx,.cy,.r,.0xff000000);......
3900 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 for.(int.i.=.0;.i.<.12;.i++).{..
3920 00 2d 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 6c 65 20 3d 20 69 20 2a 20 4d 5f 50 49 20 2f 20 .-....double.angle.=.i.*.M_PI./.
3940 36 2e 30 20 2d 20 4d 5f 50 49 20 2f 20 32 3b 00 00 00 2e 20 20 20 20 69 6e 74 20 78 30 20 3d 20 6.0.-.M_PI./.2;........int.x0.=.
3960 63 78 20 2b 20 28 69 6e 74 29 28 28 72 20 2d 20 35 29 20 2a 20 63 6f 73 28 61 6e 67 6c 65 29 29 cx.+.(int)((r.-.5).*.cos(angle))
3980 3b 00 00 00 2e 20 20 20 20 69 6e 74 20 79 30 20 3d 20 63 79 20 2b 20 28 69 6e 74 29 28 28 72 20 ;........int.y0.=.cy.+.(int)((r.
39a0 2d 20 35 29 20 2a 20 73 69 6e 28 61 6e 67 6c 65 29 29 3b 00 00 00 28 20 20 20 20 69 6e 74 20 78 -.5).*.sin(angle));...(....int.x
39c0 31 20 3d 20 63 78 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 63 6f 73 28 61 6e 67 6c 65 29 29 3b 00 1.=.cx.+.(int)(r.*.cos(angle));.
39e0 00 00 28 20 20 20 20 69 6e 74 20 79 31 20 3d 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 73 ..(....int.y1.=.cy.+.(int)(r.*.s
3a00 69 6e 28 61 6e 67 6c 65 29 29 3b 00 00 00 34 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c in(angle));...4....draw_line(px,
3a20 20 77 2c 20 68 2c 20 78 30 2c 20 79 30 2c 20 78 31 2c 20 79 31 2c 20 30 78 66 66 30 30 30 30 30 .w,.h,.x0,.y0,.x1,.y1,.0xff00000
3a40 30 29 3b 00 00 00 03 20 20 7d 00 00 00 18 20 20 74 69 6d 65 5f 74 20 74 20 3d 20 74 69 6d 65 28 0);......}......time_t.t.=.time(
3a60 4e 55 4c 4c 29 3b 00 00 00 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 6d 20 3d 20 6c 6f 63 61 NULL);......struct.tm.*tm.=.loca
3a80 6c 74 69 6d 65 28 26 74 29 3b 00 00 00 15 20 20 64 6f 75 62 6c 65 20 68 6f 75 72 5f 61 6e 67 6c ltime(&t);......double.hour_angl
3aa0 65 20 3d 00 00 00 45 20 20 20 20 20 20 28 74 6d 2d 3e 74 6d 5f 68 6f 75 72 20 25 20 31 32 20 2b e.=...E......(tm->tm_hour.%.12.+
3ac0 20 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 20 2a 20 4d 5f 50 49 20 2f 20 36 2e 30 .tm->tm_min./.60.0).*.M_PI./.6.0
3ae0 20 2d 20 4d 5f 50 49 20 2f 20 32 3b 00 00 00 4f 20 20 64 6f 75 62 6c 65 20 6d 69 6e 5f 61 6e 67 .-.M_PI./.2;...O..double.min_ang
3b00 6c 65 20 3d 20 28 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 2d 3e 74 6d 5f 73 65 63 20 2f 20 le.=.(tm->tm_min.+.tm->tm_sec./.
3b20 36 30 2e 30 29 20 2a 20 4d 5f 50 49 20 2f 20 33 30 2e 30 20 2d 20 4d 5f 50 49 20 2f 20 32 3b 00 60.0).*.M_PI./.30.0.-.M_PI./.2;.
3b40 00 00 39 20 20 64 6f 75 62 6c 65 20 73 65 63 5f 61 6e 67 6c 65 20 3d 20 74 6d 2d 3e 74 6d 5f 73 ..9..double.sec_angle.=.tm->tm_s
3b60 65 63 20 2a 20 4d 5f 50 49 20 2f 20 33 30 2e 30 20 2d 20 4d 5f 50 49 20 2f 20 32 3b 00 00 00 44 ec.*.M_PI./.30.0.-.M_PI./.2;...D
3b80 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 ..draw_line(px,.w,.h,.cx,.cy,.cx
3ba0 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 35 20 2a 20 63 6f 73 28 68 6f 75 72 5f 61 6e 67 6c .+.(int)(r.*.0.5.*.cos(hour_angl
3bc0 65 29 29 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 72 e)),...?............cy.+.(int)(r
3be0 20 2a 20 30 2e 35 20 2a 20 73 69 6e 28 68 6f 75 72 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 30 .*.0.5.*.sin(hour_angle)),.0xff0
3c00 30 30 30 30 30 29 3b 00 00 00 43 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 00000);...C..draw_line(px,.w,.h,
3c20 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 37 20 2a 20 63 6f .cx,.cy,.cx.+.(int)(r.*.0.7.*.co
3c40 73 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 2c 00 00 00 3e 20 20 20 20 20 20 20 20 20 20 20 20 63 79 s(min_angle)),...>............cy
3c60 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 37 20 2a 20 73 69 6e 28 6d 69 6e 5f 61 6e 67 6c 65 .+.(int)(r.*.0.7.*.sin(min_angle
3c80 29 29 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 43 20 20 64 72 61 77 5f 6c 69 6e 65 28 )),.0xff000000);...C..draw_line(
3ca0 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 72 20 2a px,.w,.h,.cx,.cy,.cx.+.(int)(r.*
3cc0 20 30 2e 39 20 2a 20 63 6f 73 28 73 65 63 5f 61 6e 67 6c 65 29 29 2c 00 00 00 3e 20 20 20 20 20 .0.9.*.cos(sec_angle)),...>.....
3ce0 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 39 20 2a 20 73 69 6e 28 .......cy.+.(int)(r.*.0.9.*.sin(
3d00 73 65 63 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 66 66 30 30 30 30 29 3b 00 00 00 2b 20 20 77 sec_angle)),.0xffff0000);...+..w
3d20 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 l_surface_attach(surface,.buffer
3d40 2c 20 30 2c 20 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 28 ,.0,.0);...)..wl_surface_damage(
3d60 73 75 72 66 61 63 65 2c 20 30 2c 20 30 2c 20 77 2c 20 68 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 surface,.0,.0,.w,.h);......wl_su
3d80 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 rface_commit(surface);....}.....
3da0 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 ..Istatic.void.toplevel_configur
3dc0 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 e(void.*data,.struct.xdg_topleve
3de0 6c 20 2a 74 6f 70 6c 65 76 65 6c 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l.*toplevel,...=................
3e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 33 32 5f 74 20 77 69 64 74 68 2c 20 69 6e ...............int32_t.width,.in
3e20 74 33 32 5f 74 20 68 65 69 67 68 74 2c 00 00 00 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t32_t.height,...9...............
3e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 ................struct.wl_array.
3e60 2a 73 74 61 74 65 73 29 20 7b 00 00 00 1e 20 20 69 66 20 28 77 69 64 74 68 20 3e 20 30 20 26 26 *states).{......if.(width.>.0.&&
3e80 20 68 65 69 67 68 74 20 3e 20 30 29 00 00 00 23 20 20 20 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 .height.>.0)...#....allocate_buf
3ea0 66 65 72 28 77 69 64 74 68 2c 20 68 65 69 67 68 74 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 fer(width,.height);....}.......G
3ec0 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 28 76 6f 69 64 20 static.void.toplevel_close(void.
3ee0 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c *data,.struct.xdg_toplevel.*topl
3f00 65 76 65 6c 29 20 7b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 evel).{......running.=.0;....}..
3f20 00 00 00 00 00 3f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f .....?static.const.struct.xdg_to
3f40 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 plevel_listener.toplevel_listene
3f60 72 20 3d 20 7b 00 00 00 3e 20 20 20 20 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 74 6f 70 6c 65 76 r.=.{...>.....configure.=.toplev
3f80 65 6c 5f 63 6f 6e 66 69 67 75 72 65 2c 20 2e 63 6c 6f 73 65 20 3d 20 74 6f 70 6c 65 76 65 6c 5f el_configure,..close.=.toplevel_
3fa0 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 close};.......Fstatic.void.regis
3fc0 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 try_handler(void.*data,.struct.w
3fe0 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 2c 00 00 00 40 20 20 20 20 20 20 20 l_registry.*registry,...@.......
4000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 69 ......................uint32_t.i
4020 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 2c 00 00 00 30 20 20 20 d,.const.char.*interface,...0...
4040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 ..........................uint32
4060 5f 74 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 2e 20 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e _t.version).{......if.(strcmp(in
4080 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 00 terface,."wl_compositor").==.0).
40a0 00 00 4d 20 20 20 20 63 6f 6d 70 6f 73 69 74 6f 72 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f ..M....compositor.=.wl_registry_
40c0 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f bind(registry,.id,.&wl_composito
40e0 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 2c 20 20 65 6c 73 65 20 69 66 20 28 73 r_interface,.4);...,..else.if.(s
4100 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 20 3d 3d 20 30 29 trcmp(interface,."wl_shm").==.0)
4120 00 00 00 3f 20 20 20 20 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 ...?....shm.=.wl_registry_bind(r
4140 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 egistry,.id,.&wl_shm_interface,.
4160 31 29 3b 00 00 00 33 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 1);...3..else.if.(strcmp(interfa
4180 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 48 20 20 ce,."xdg_wm_base").==.0).{...H..
41a0 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 ..wm_base.=.wl_registry_bind(reg
41c0 69 73 74 72 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 istry,.id,.&xdg_wm_base_interfac
41e0 65 2c 20 31 29 3b 00 00 00 3f 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 e,.1);...?....xdg_wm_base_add_li
4200 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 stener(wm_base,.&wm_base_listene
4220 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4f 73 74 61 r,.NULL);......}....}.......Osta
4240 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 tic.const.struct.wl_registry_lis
4260 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 72 65 67 69 73 tener.registry_listener.=.{regis
4280 74 72 79 5f 68 61 6e 64 6c 65 72 2c 00 00 00 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 try_handler,...D................
42a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
42c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 55 4c 4c 7d 3b 00 00 00 00 00 00 00 0c 69 6e 74 20 ..............NULL};........int.
42e0 6d 61 69 6e 28 29 20 7b 00 00 00 25 20 20 64 69 73 70 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c main().{...%..display.=.wl_displ
4300 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 11 20 20 69 66 20 28 21 64 69 73 70 ay_connect(NULL);......if.(!disp
4320 6c 61 79 29 20 7b 00 00 00 3e 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 46 lay).{...>....fprintf(stderr,."F
4340 61 69 6c 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 20 57 61 79 6c 61 6e 64 20 64 69 73 70 ailed.to.connect.to.Wayland.disp
4360 6c 61 79 5c 6e 22 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d lay\n");........return.1;......}
4380 00 00 00 2e 20 20 72 65 67 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f ......registry.=.wl_display_get_
43a0 72 65 67 69 73 74 72 79 28 64 69 73 70 6c 61 79 29 3b 00 00 00 3f 20 20 77 6c 5f 72 65 67 69 73 registry(display);...?..wl_regis
43c0 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 65 67 69 try_add_listener(registry,.&regi
43e0 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 20 20 20 77 6c 5f 64 69 stry_listener,.NULL);......wl_di
4400 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 28 20 20 69 splay_roundtrip(display);...(..i
4420 66 20 28 21 63 6f 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 73 68 6d 20 7c 7c 20 21 77 6d 5f 62 61 f.(!compositor.||.!shm.||.!wm_ba
4440 73 65 29 20 7b 00 00 00 31 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 4d 69 se).{...1....fprintf(stderr,."Mi
4460 73 73 69 6e 67 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 29 3b 00 00 00 0d 20 20 ssing.Wayland.globals\n");......
4480 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 35 20 20 73 75 72 66 61 63 65 20 ..return.1;......}...5..surface.
44a0 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 63 =.wl_compositor_create_surface(c
44c0 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 3e 20 20 78 64 67 5f 73 75 72 66 61 63 65 20 3d 20 78 ompositor);...>..xdg_surface.=.x
44e0 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 77 6d 5f 62 61 dg_wm_base_get_xdg_surface(wm_ba
4500 73 65 2c 20 73 75 72 66 61 63 65 29 3b 00 00 00 45 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 se,.surface);...E..xdg_surface_a
4520 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 26 78 64 67 5f 73 75 dd_listener(xdg_surface,.&xdg_su
4540 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 33 20 20 74 6f 70 6c rface_listener,.NULL);...3..topl
4560 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 evel.=.xdg_surface_get_toplevel(
4580 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 40 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f xdg_surface);...@..xdg_toplevel_
45a0 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 74 6f 70 6c 65 76 65 6c 2c 20 26 74 6f 70 6c 65 76 65 6c add_listener(toplevel,.&toplevel
45c0 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 2d 20 20 78 64 67 5f 74 6f 70 6c 65 _listener,.NULL);...-..xdg_tople
45e0 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 74 6f 70 6c 65 76 65 6c 2c 20 22 78 63 6c 6f 63 6b 22 vel_set_title(toplevel,."xclock"
4600 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 );......wl_surface_commit(surfac
4620 65 29 3b 00 00 00 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 e);......wl_display_roundtrip(di
4640 73 70 6c 61 79 29 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 splay);......while.(running).{..
4660 00 29 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e .)....wl_display_dispatch_pendin
4680 67 28 64 69 73 70 6c 61 79 29 3b 00 00 00 11 20 20 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 29 3b g(display);........draw_clock();
46a0 00 00 00 19 20 20 20 20 75 73 6c 65 65 70 28 31 30 30 30 30 30 30 20 2f 20 36 30 29 3b 00 00 00 ........usleep(1000000./.60);...
46c0 03 20 20 7d 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 ...}......return.0;....}5.......
46e0 00 00 00 00 00 00 00 00 dd 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4700 7b 1b 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 06 00 00 00 08 00 00 00 00 {...............5._.............
4720 00 00 00 00 00 00 00 07 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 ................................
4740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 8b 68 04 01 00 00 00 00 ......................i..h......
48a0 00 f5 18 00 00 00 b9 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 ba 00 00 .......................}........
48c0 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 7e 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 12 ...............~................
48e0 20 20 20 20 73 74 72 75 63 74 20 74 69 6d 65 73 70 65 f5 18 00 00 00 7f 00 00 00 00 00 00 00 00 ....struct.timespe..............
4900 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 ................................
4920 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............5...................
4940 00 00 00 00 7e 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 ....~...........................
4960 00 00 00 00 f5 18 00 00 00 00 7e 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 3b 00 00 00 01 00 ..........~...............;.....
4980 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 21 0a 00 00 00 00 00 00 35 81 5f d0 00 00 ..................!.......5._...
49a0 00 07 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 ba 00 00 00 00 00 00 00 00 ff ff ................................
49c0 ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b20 69 9d 8b 68 04 01 00 00 00 03 00 f5 18 00 00 00 03 00 00 00 fe 00 00 00 ba 00 00 00 b6 00 00 00 i..h............................
4b40 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c .#include.<math.h>....#include.<
4b60 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 poll.h>....#include.<signal.h>..
4b80 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 ..#include.<stdbool.h>....#inclu
4ba0 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 de.<stdio.h>....#include.<stdlib
4bc0 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 11 23 69 .h>....#include.<string.h>....#i
4be0 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 nclude.<time.h>....#include.<uni
4c00 73 74 64 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 std.h>....#include.<sys/mman.h>.
4c20 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 12 23 ...#include.<sys/timerfd.h>....#
4c40 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 include.<fcntl.h>....#include.<w
4c60 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 26 23 69 6e 63 6c 75 64 65 ayland-client.h>.......&#include
4c80 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 ."xdg-shell-client-protocol.h"..
4ca0 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f ......#ifndef.M_PI...##define.M_
4cc0 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e PI.3.14159265358979323846....#en
4ce0 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 dif....#ifndef.M_PI_2...%#define
4d00 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 .M_PI_2.1.57079632679489661923..
4d20 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 23 23 64 65 66 69 6e 65 20 53 57 43 4c 4f 43 4b 5f ..#endif.......##define.SWCLOCK_
4d40 42 47 5f 43 4f 4c 4f 52 20 30 78 46 46 46 46 46 46 46 46 00 00 00 24 23 64 65 66 69 6e 65 20 53 BG_COLOR.0xFFFFFFFF...$#define.S
4d60 57 43 4c 4f 43 4b 5f 49 4e 4b 5f 43 4f 4c 4f 52 20 30 78 46 46 30 30 30 30 30 30 00 00 00 24 23 WCLOCK_INK_COLOR.0xFF000000...$#
4d80 64 65 66 69 6e 65 20 53 57 43 4c 4f 43 4b 5f 53 45 43 5f 43 4f 4c 4f 52 20 30 78 46 46 46 46 30 define.SWCLOCK_SEC_COLOR.0xFFFF0
4da0 30 30 30 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 000.......)static.volatile.sig_a
4dc0 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 30 73 74 61 74 69 63 20 76 tomic_t.running.=.1;...0static.v
4de0 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 7b 28 76 6f 69 64 29 73 3b 20 72 75 6e 6e 69 oid.on_sig(int.s){(void)s;.runni
4e00 6e 67 20 3d 20 30 3b 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 19 ng.=.0;}........struct.app.{....
4e20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1c 20 20 20 ....struct.wl_display.*d;.......
4e40 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1f 20 20 20 .struct.wl_registry.*reg;.......
4e60 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 17 .struct.wl_compositor.*comp;....
4e80 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 1b 20 20 20 20 73 ....struct.wl_shm.*shm;........s
4ea0 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 1a 20 20 20 20 73 74 truct.xdg_wm_base.*wm;........st
4ec0 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 1b 20 20 20 20 73 74 72 75 ruct.wl_surface.*ws;........stru
4ee0 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1c 20 20 20 20 73 74 72 75 63 ct.xdg_surface.*xs;........struc
4f00 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 21 20 20 20 20 73 74 72 75 63 t.xdg_toplevel.*xt;...!....struc
4f20 74 20 77 6c 5f 63 61 6c 6c 62 61 63 6b 20 2a 66 72 61 6d 65 5f 63 62 3b 00 00 00 00 00 00 00 15 t.wl_callback.*frame_cb;........
4f40 20 20 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 69 78 65 6c 73 3b 00 00 00 1a 20 20 20 20 73 74 72 ....uint32_t.*pixels;........str
4f60 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0c 20 20 20 20 69 6e 74 20 77 uct.wl_buffer.*buf;........int.w
4f80 2c 68 3b 00 00 00 14 20 20 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 17 20 ,h;........bool.configured;.....
4fa0 20 20 20 62 6f 6f 6c 20 66 72 61 6d 65 5f 70 65 6e 64 69 6e 67 3b 00 00 00 02 7d 3b 00 00 00 00 ...bool.frame_pending;....};....
4fc0 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 ...)static.int.create_shm_file(s
4fe0 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 30 20 20 20 20 63 68 61 72 20 74 65 6d 70 6c 61 ize_t.size).{...0....char.templa
5000 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 te[].=."/tmp/wayland-shm-XXXXXX"
5020 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 ;........int.fd.=.mkstemp(templa
5040 74 65 29 3b 00 00 00 2f 20 20 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 20 70 65 72 72 6f 72 te);.../....if.(fd.<.0).{.perror
5060 28 22 6d 6b 73 74 65 6d 70 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 15 20 20 20 20 75 ("mkstemp");.exit(1);.}........u
5080 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 3f 20 20 20 20 69 66 20 28 66 74 72 75 nlink(template);...?....if.(ftru
50a0 6e 63 61 74 65 28 66 64 2c 73 69 7a 65 29 3c 30 29 20 7b 20 70 65 72 72 6f 72 28 22 66 74 72 75 ncate(fd,size)<0).{.perror("ftru
50c0 6e 63 61 74 65 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 0e 20 20 20 20 72 65 74 75 72 ncate");.exit(1);.}........retur
50e0 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 n.fd;....}.......Astatic.void.dr
5100 61 77 5f 70 69 78 65 6c 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 69 6e 74 20 78 2c 69 6e 74 aw_pixel(struct.app.*a,int.x,int
5120 20 79 2c 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 7b 00 00 00 28 20 20 20 20 69 66 28 78 3e .y,uint32_t.color){...(....if(x>
5140 3d 30 20 26 26 20 78 3c 61 2d 3e 77 20 26 26 20 79 3e 3d 30 20 26 26 20 79 3c 61 2d 3e 68 29 00 =0.&&.x<a->w.&&.y>=0.&&.y<a->h).
5160 00 00 22 20 20 20 20 20 20 20 20 61 2d 3e 70 69 78 65 6c 73 5b 79 2a 61 2d 3e 77 2b 78 5d 3d 63 .."........a->pixels[y*a->w+x]=c
5180 6f 6c 6f 72 3b 00 00 00 01 7d 00 00 00 00 00 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 olor;....}.......Pstatic.void.dr
51a0 61 77 5f 6c 69 6e 65 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 69 6e 74 20 78 30 2c 69 6e 74 aw_line(struct.app.*a,int.x0,int
51c0 20 79 30 2c 69 6e 74 20 78 31 2c 69 6e 74 20 79 31 2c 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 .y0,int.x1,int.y1,uint32_t.color
51e0 29 7b 00 00 00 29 20 20 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 2d 78 30 29 2c 20 73 ){...)....int.dx.=.abs(x1-x0),.s
5200 78 20 3d 20 78 30 3c 78 31 3f 31 3a 2d 31 3b 00 00 00 2a 20 20 20 20 69 6e 74 20 64 79 20 3d 20 x.=.x0<x1?1:-1;...*....int.dy.=.
5220 2d 61 62 73 28 79 31 2d 79 30 29 2c 20 73 79 20 3d 20 79 30 3c 79 31 3f 31 3a 2d 31 3b 00 00 00 -abs(y1-y0),.sy.=.y0<y1?1:-1;...
5240 15 20 20 20 20 69 6e 74 20 65 72 72 3d 64 78 2b 64 79 2c 65 32 3b 00 00 00 0d 20 20 20 20 77 68 .....int.err=dx+dy,e2;........wh
5260 69 6c 65 28 31 29 7b 00 00 00 22 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 61 2c ile(1){..."........draw_pixel(a,
5280 78 30 2c 79 30 2c 63 6f 6c 6f 72 29 3b 00 00 00 23 20 20 20 20 20 20 20 20 69 66 28 78 30 3d 3d x0,y0,color);...#........if(x0==
52a0 78 31 20 26 26 20 79 30 3d 3d 79 31 29 20 62 72 65 61 6b 3b 00 00 00 13 20 20 20 20 20 20 20 20 x1.&&.y0==y1).break;............
52c0 65 32 20 3d 20 32 2a 65 72 72 3b 00 00 00 25 20 20 20 20 20 20 20 20 69 66 28 65 32 3e 3d 64 79 e2.=.2*err;...%........if(e2>=dy
52e0 29 7b 20 65 72 72 2b 3d 64 79 3b 20 78 30 2b 3d 73 78 3b 7d 00 00 00 25 20 20 20 20 20 20 20 20 ){.err+=dy;.x0+=sx;}...%........
5300 69 66 28 65 32 3c 3d 64 78 29 7b 20 65 72 72 2b 3d 64 78 3b 20 79 30 2b 3d 73 79 3b 7d 00 00 00 if(e2<=dx){.err+=dx;.y0+=sy;}...
5320 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 54 73 74 61 74 69 63 20 76 6f 69 64 20 64 .....}....}.......Tstatic.void.d
5340 72 61 77 5f 63 69 72 63 6c 65 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 69 6e 74 20 63 78 2c raw_circle(struct.app.*a,int.cx,
5360 69 6e 74 20 63 79 2c 69 6e 74 20 72 2c 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 2c 62 6f 6f 6c int.cy,int.r,uint32_t.color,bool
5380 20 66 69 6c 6c 29 7b 00 00 00 16 20 20 20 20 69 6e 74 20 78 3d 72 2c 79 3d 30 2c 65 72 72 3d 30 .fill){........int.x=r,y=0,err=0
53a0 3b 00 00 00 10 20 20 20 20 77 68 69 6c 65 28 78 3e 3d 79 29 7b 00 00 00 11 20 20 20 20 20 20 20 ;........while(x>=y){...........
53c0 20 69 66 28 66 69 6c 6c 29 7b 00 00 00 61 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 69 6e .if(fill){...a............for(in
53e0 74 20 69 3d 63 78 2d 78 3b 69 3c 3d 63 78 2b 78 3b 69 2b 2b 29 7b 20 64 72 61 77 5f 70 69 78 65 t.i=cx-x;i<=cx+x;i++){.draw_pixe
5400 6c 28 61 2c 69 2c 63 79 2b 79 2c 63 6f 6c 6f 72 29 3b 20 64 72 61 77 5f 70 69 78 65 6c 28 61 2c l(a,i,cy+y,color);.draw_pixel(a,
5420 69 2c 63 79 2d 79 2c 63 6f 6c 6f 72 29 3b 7d 00 00 00 61 20 20 20 20 20 20 20 20 20 20 20 20 66 i,cy-y,color);}...a............f
5440 6f 72 28 69 6e 74 20 69 3d 63 78 2d 79 3b 69 3c 3d 63 78 2b 79 3b 69 2b 2b 29 7b 20 64 72 61 77 or(int.i=cx-y;i<=cx+y;i++){.draw
5460 5f 70 69 78 65 6c 28 61 2c 69 2c 63 79 2b 78 2c 63 6f 6c 6f 72 29 3b 20 64 72 61 77 5f 70 69 78 _pixel(a,i,cy+x,color);.draw_pix
5480 65 6c 28 61 2c 69 2c 63 79 2d 78 2c 63 6f 6c 6f 72 29 3b 7d 00 00 00 0e 20 20 20 20 20 20 20 20 el(a,i,cy-x,color);}............
54a0 7d 65 6c 73 65 7b 00 00 00 49 20 20 20 20 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c }else{...I............draw_pixel
54c0 28 61 2c 63 78 2b 78 2c 63 79 2b 79 2c 63 6f 6c 6f 72 29 3b 20 64 72 61 77 5f 70 69 78 65 6c 28 (a,cx+x,cy+y,color);.draw_pixel(
54e0 61 2c 63 78 2b 79 2c 63 79 2b 78 2c 63 6f 6c 6f 72 29 3b 00 00 00 49 20 20 20 20 20 20 20 20 20 a,cx+y,cy+x,color);...I.........
5500 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 61 2c 63 78 2d 79 2c 63 79 2b 78 2c 63 6f 6c 6f 72 29 ...draw_pixel(a,cx-y,cy+x,color)
5520 3b 20 64 72 61 77 5f 70 69 78 65 6c 28 61 2c 63 78 2d 78 2c 63 79 2b 79 2c 63 6f 6c 6f 72 29 3b ;.draw_pixel(a,cx-x,cy+y,color);
5540 00 00 00 49 20 20 20 20 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 61 2c 63 78 2d ...I............draw_pixel(a,cx-
5560 78 2c 63 79 2d 79 2c 63 6f 6c 6f 72 29 3b 20 64 72 61 77 5f 70 69 78 65 6c 28 61 2c 63 78 2d 79 x,cy-y,color);.draw_pixel(a,cx-y
5580 2c 63 79 2d 78 2c 63 6f 6c 6f 72 29 3b 00 00 00 49 20 20 20 20 20 20 20 20 20 20 20 20 64 72 61 ,cy-x,color);...I............dra
55a0 77 5f 70 69 78 65 6c 28 61 2c 63 78 2b 79 2c 63 79 2d 78 2c 63 6f 6c 6f 72 29 3b 20 64 72 61 77 w_pixel(a,cx+y,cy-x,color);.draw
55c0 5f 70 69 78 65 6c 28 61 2c 63 78 2b 78 2c 63 79 2d 79 2c 63 6f 6c 6f 72 29 3b 00 00 00 09 20 20 _pixel(a,cx+x,cy-y,color);......
55e0 20 20 20 20 20 20 7d 00 00 00 40 20 20 20 20 20 20 20 20 79 2b 2b 3b 20 69 66 28 65 72 72 3c 3d ......}...@........y++;.if(err<=
5600 30 29 20 65 72 72 2b 3d 32 2a 79 2b 31 3b 20 69 66 28 65 72 72 3e 30 29 7b 20 78 2d 2d 3b 20 65 0).err+=2*y+1;.if(err>0){.x--;.e
5620 72 72 2d 3d 32 2a 78 2b 31 3b 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 rr-=2*x+1;}........}....}.......
5640 3b 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 6c 6f 63 6b 28 73 74 72 75 63 74 20 61 ;static.void.draw_clock(struct.a
5660 70 70 20 2a 61 2c 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 74 6d 20 2a 74 6d 29 7b 00 00 00 2c pp.*a,.const.struct.tm.*tm){...,
5680 20 20 20 20 69 66 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 21 61 2d 3e 70 69 78 ....if(!a->configured.||.!a->pix
56a0 65 6c 73 29 20 72 65 74 75 72 6e 3b 00 00 00 1c 20 20 20 20 69 6e 74 20 63 78 3d 61 2d 3e 77 2f els).return;........int.cx=a->w/
56c0 32 2c 63 79 3d 61 2d 3e 68 2f 32 3b 00 00 00 32 20 20 20 20 69 6e 74 20 72 3d 28 61 2d 3e 77 3c 2,cy=a->h/2;...2....int.r=(a->w<
56e0 61 2d 3e 68 3f 61 2d 3e 77 3a 61 2d 3e 68 29 2f 32 20 2d 38 3b 20 69 66 28 72 3c 32 29 20 72 3d a->h?a->w:a->h)/2.-8;.if(r<2).r=
5700 32 3b 00 00 00 3f 20 20 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c 61 2d 3e 77 2a 61 2d 3e 2;...?....for(int.i=0;i<a->w*a->
5720 68 3b 69 2b 2b 29 20 61 2d 3e 70 69 78 65 6c 73 5b 69 5d 3d 53 57 43 4c 4f 43 4b 5f 42 47 5f 43 h;i++).a->pixels[i]=SWCLOCK_BG_C
5740 4f 4c 4f 52 3b 00 00 00 33 20 20 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 61 2c 63 78 2c 63 79 OLOR;...3....draw_circle(a,cx,cy
5760 2c 72 2c 53 57 43 4c 4f 43 4b 5f 49 4e 4b 5f 43 4f 4c 4f 52 2c 66 61 6c 73 65 29 3b 00 00 00 1a ,r,SWCLOCK_INK_COLOR,false);....
5780 20 20 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c 31 32 3b 69 2b 2b 29 7b 00 00 00 2a 20 20 ....for(int.i=0;i<12;i++){...*..
57a0 20 20 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 3d 69 2f 31 32 2e 30 2a 32 2a 4d 5f 50 49 20 2d ......double.ang=i/12.0*2*M_PI.-
57c0 20 4d 5f 50 49 5f 32 3b 00 00 00 2e 20 20 20 20 20 20 20 20 69 6e 74 20 78 31 3d 63 78 2b 28 69 .M_PI_2;............int.x1=cx+(i
57e0 6e 74 29 72 6f 75 6e 64 28 63 6f 73 28 61 6e 67 29 2a 28 72 2d 31 30 29 29 3b 00 00 00 2e 20 20 nt)round(cos(ang)*(r-10));......
5800 20 20 20 20 20 20 69 6e 74 20 79 31 3d 63 79 2b 28 69 6e 74 29 72 6f 75 6e 64 28 73 69 6e 28 61 ......int.y1=cy+(int)round(sin(a
5820 6e 67 29 2a 28 72 2d 31 30 29 29 3b 00 00 00 2d 20 20 20 20 20 20 20 20 69 6e 74 20 78 32 3d 63 ng)*(r-10));...-........int.x2=c
5840 78 2b 28 69 6e 74 29 72 6f 75 6e 64 28 63 6f 73 28 61 6e 67 29 2a 28 72 2d 32 29 29 3b 00 00 00 x+(int)round(cos(ang)*(r-2));...
5860 2d 20 20 20 20 20 20 20 20 69 6e 74 20 79 32 3d 63 79 2b 28 69 6e 74 29 72 6f 75 6e 64 28 73 69 -........int.y2=cy+(int)round(si
5880 6e 28 61 6e 67 29 2a 28 72 2d 32 29 29 3b 00 00 00 33 20 20 20 20 20 20 20 20 64 72 61 77 5f 6c n(ang)*(r-2));...3........draw_l
58a0 69 6e 65 28 61 2c 78 31 2c 79 31 2c 78 32 2c 79 32 2c 53 57 43 4c 4f 43 4b 5f 49 4e 4b 5f 43 4f ine(a,x1,y1,x2,y2,SWCLOCK_INK_CO
58c0 4c 4f 52 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1a 20 20 20 20 64 6f 75 62 6c 65 20 73 65 63 LOR);........}........double.sec
58e0 3d 74 6d 2d 3e 74 6d 5f 73 65 63 3b 00 00 00 23 20 20 20 20 64 6f 75 62 6c 65 20 6d 69 6e 3d 74 =tm->tm_sec;...#....double.min=t
5900 6d 2d 3e 74 6d 5f 6d 69 6e 2b 73 65 63 2f 36 30 2e 30 3b 00 00 00 2a 20 20 20 20 64 6f 75 62 6c m->tm_min+sec/60.0;...*....doubl
5920 65 20 68 6f 75 72 3d 28 74 6d 2d 3e 74 6d 5f 68 6f 75 72 25 31 32 29 2b 6d 69 6e 2f 36 30 2e 30 e.hour=(tm->tm_hour%12)+min/60.0
5940 3b 00 00 00 27 20 20 20 20 64 6f 75 62 6c 65 20 73 61 3d 73 65 63 2f 36 30 2e 30 2a 32 2a 4d 5f ;...'....double.sa=sec/60.0*2*M_
5960 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 27 20 20 20 20 64 6f 75 62 6c 65 20 6d 61 3d 6d 69 PI.-.M_PI_2;...'....double.ma=mi
5980 6e 2f 36 30 2e 30 2a 32 2a 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 28 20 20 20 20 64 n/60.0*2*M_PI.-.M_PI_2;...(....d
59a0 6f 75 62 6c 65 20 68 61 3d 68 6f 75 72 2f 31 32 2e 30 2a 32 2a 4d 5f 50 49 20 2d 20 4d 5f 50 49 ouble.ha=hour/12.0*2*M_PI.-.M_PI
59c0 5f 32 3b 00 00 00 65 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 61 2c 63 78 2c 63 79 2c 63 78 2b _2;...e....draw_line(a,cx,cy,cx+
59e0 28 69 6e 74 29 72 6f 75 6e 64 28 63 6f 73 28 68 61 29 2a 72 2a 30 2e 35 35 29 2c 63 79 2b 28 69 (int)round(cos(ha)*r*0.55),cy+(i
5a00 6e 74 29 72 6f 75 6e 64 28 73 69 6e 28 68 61 29 2a 72 2a 30 2e 35 35 29 2c 53 57 43 4c 4f 43 4b nt)round(sin(ha)*r*0.55),SWCLOCK
5a20 5f 49 4e 4b 5f 43 4f 4c 4f 52 29 3b 00 00 00 63 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 61 2c _INK_COLOR);...c....draw_line(a,
5a40 63 78 2c 63 79 2c 63 78 2b 28 69 6e 74 29 72 6f 75 6e 64 28 63 6f 73 28 6d 61 29 2a 72 2a 30 2e cx,cy,cx+(int)round(cos(ma)*r*0.
5a60 38 29 2c 63 79 2b 28 69 6e 74 29 72 6f 75 6e 64 28 73 69 6e 28 6d 61 29 2a 72 2a 30 2e 38 29 2c 8),cy+(int)round(sin(ma)*r*0.8),
5a80 53 57 43 4c 4f 43 4b 5f 49 4e 4b 5f 43 4f 4c 4f 52 29 3b 00 00 00 63 20 20 20 20 64 72 61 77 5f SWCLOCK_INK_COLOR);...c....draw_
5aa0 6c 69 6e 65 28 61 2c 63 78 2c 63 79 2c 63 78 2b 28 69 6e 74 29 72 6f 75 6e 64 28 63 6f 73 28 73 line(a,cx,cy,cx+(int)round(cos(s
5ac0 61 29 2a 72 2a 30 2e 39 29 2c 63 79 2b 28 69 6e 74 29 72 6f 75 6e 64 28 73 69 6e 28 73 61 29 2a a)*r*0.9),cy+(int)round(sin(sa)*
5ae0 72 2a 30 2e 39 29 2c 53 57 43 4c 4f 43 4b 5f 53 45 43 5f 43 4f 4c 4f 52 29 3b 00 00 00 32 20 20 r*0.9),SWCLOCK_SEC_COLOR);...2..
5b00 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 61 2c 63 78 2c 63 79 2c 33 2c 53 57 43 4c 4f 43 4b 5f ..draw_circle(a,cx,cy,3,SWCLOCK_
5b20 49 4e 4b 5f 43 4f 4c 4f 52 2c 74 72 75 65 29 3b 00 00 00 28 20 20 20 20 77 6c 5f 73 75 72 66 61 INK_COLOR,true);...(....wl_surfa
5b40 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 61 2d 3e 62 75 66 2c 30 2c 30 29 3b 00 00 00 2b ce_attach(a->ws,a->buf,0,0);...+
5b60 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 28 61 2d 3e 77 73 2c 30 2c 30 2c ....wl_surface_damage(a->ws,0,0,
5b80 61 2d 3e 77 2c 61 2d 3e 68 29 3b 00 00 00 1d 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f a->w,a->h);........wl_surface_co
5ba0 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 mmit(a->ws);....}.......Jstatic.
5bc0 76 6f 69 64 20 66 72 61 6d 65 5f 64 6f 6e 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 void.frame_done(void.*data,.stru
5be0 63 74 20 77 6c 5f 63 61 6c 6c 62 61 63 6b 20 2a 63 62 2c 20 75 69 6e 74 33 32 5f 74 20 74 69 6d ct.wl_callback.*cb,.uint32_t.tim
5c00 65 29 7b 00 00 00 17 20 20 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 61 74 61 3b 00 00 e){........struct.app.*a=data;..
5c20 00 46 20 20 20 20 77 6c 5f 63 61 6c 6c 62 61 63 6b 5f 64 65 73 74 72 6f 79 28 63 62 29 3b 20 61 .F....wl_callback_destroy(cb);.a
5c40 2d 3e 66 72 61 6d 65 5f 63 62 3d 4e 55 4c 4c 3b 20 61 2d 3e 66 72 61 6d 65 5f 70 65 6e 64 69 6e ->frame_cb=NULL;.a->frame_pendin
5c60 67 3d 66 61 6c 73 65 3b 00 00 00 3c 20 20 20 20 73 74 72 75 63 74 20 74 69 6d 65 73 70 65 63 20 g=false;...<....struct.timespec.
5c80 6e 6f 77 3b 20 63 6c 6f 63 6b 5f 67 65 74 74 69 6d 65 28 43 4c 4f 43 4b 5f 52 45 41 4c 54 49 4d now;.clock_gettime(CLOCK_REALTIM
5ca0 45 2c 26 6e 6f 77 29 3b 00 00 00 3d 20 20 20 20 74 69 6d 65 5f 74 20 74 74 3d 6e 6f 77 2e 74 76 E,&now);...=....time_t.tt=now.tv
5cc0 5f 73 65 63 3b 20 73 74 72 75 63 74 20 74 6d 20 74 6d 3b 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 _sec;.struct.tm.tm;.localtime_r(
5ce0 26 74 74 2c 26 74 6d 29 3b 00 00 00 16 20 20 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 61 2c 26 74 &tt,&tm);........draw_clock(a,&t
5d00 6d 29 3b 00 00 00 01 7d 00 00 00 4b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 m);....}...Kstatic.const.struct.
5d20 77 6c 5f 63 61 6c 6c 62 61 63 6b 5f 6c 69 73 74 65 6e 65 72 20 66 72 61 6d 65 5f 6c 69 73 74 65 wl_callback_listener.frame_liste
5d40 6e 65 72 3d 7b 2e 64 6f 6e 65 3d 66 72 61 6d 65 5f 64 6f 6e 65 7d 3b 00 00 00 00 00 00 00 6c 73 ner={.done=frame_done};.......ls
5d60 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 tatic.void.registry_handler(void
5d80 20 2a 64 61 74 61 2c 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 2c 75 .*data,struct.wl_registry.*reg,u
5da0 69 6e 74 33 32 5f 74 20 69 64 2c 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 75 69 6e int32_t.id,const.char.*iface,uin
5dc0 74 33 32 5f 74 20 76 65 72 29 7b 00 00 00 17 20 20 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 t32_t.ver){........struct.app.*a
5de0 3d 64 61 74 61 3b 00 00 00 6f 20 20 20 20 69 66 28 73 74 72 63 6d 70 28 69 66 61 63 65 2c 22 77 =data;...o....if(strcmp(iface,"w
5e00 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 3d 3d 30 29 20 61 2d 3e 63 6f 6d 70 3d 77 6c 5f 72 65 l_compositor")==0).a->comp=wl_re
5e20 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 69 64 2c 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f gistry_bind(reg,id,&wl_composito
5e40 72 5f 69 6e 74 65 72 66 61 63 65 2c 76 65 72 3c 34 3f 76 65 72 3a 34 29 3b 00 00 00 5b 20 20 20 r_interface,ver<4?ver:4);...[...
5e60 20 65 6c 73 65 20 69 66 28 73 74 72 63 6d 70 28 69 66 61 63 65 2c 22 77 6c 5f 73 68 6d 22 29 3d .else.if(strcmp(iface,"wl_shm")=
5e80 3d 30 29 20 61 2d 3e 73 68 6d 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c =0).a->shm=wl_registry_bind(reg,
5ea0 69 64 2c 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 31 29 3b 00 00 00 91 20 20 20 20 id,&wl_shm_interface,1);........
5ec0 65 6c 73 65 20 69 66 28 73 74 72 63 6d 70 28 69 66 61 63 65 2c 22 78 64 67 5f 77 6d 5f 62 61 73 else.if(strcmp(iface,"xdg_wm_bas
5ee0 65 22 29 3d 3d 30 29 7b 20 61 2d 3e 77 6d 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 e")==0){.a->wm=wl_registry_bind(
5f00 72 65 67 2c 69 64 2c 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 31 29 reg,id,&xdg_wm_base_interface,1)
5f20 3b 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d ;.xdg_wm_base_add_listener(a->wm
5f40 2c 4e 55 4c 4c 2c 4e 55 4c 4c 29 3b 7d 00 00 00 01 7d 00 00 00 51 73 74 61 74 69 63 20 63 6f 6e ,NULL,NULL);}....}...Qstatic.con
5f60 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 st.struct.wl_registry_listener.r
5f80 65 67 5f 6c 69 73 74 65 6e 65 72 3d 7b 2e 67 6c 6f 62 61 6c 3d 72 65 67 69 73 74 72 79 5f 68 61 eg_listener={.global=registry_ha
5fa0 6e 64 6c 65 72 7d 3b 00 00 00 00 00 00 00 0f 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 7b 00 00 ndler};........int.main(void){..
5fc0 00 15 20 20 20 20 73 74 72 75 63 74 20 61 70 70 20 61 3d 7b 30 7d 3b 00 00 00 15 20 20 20 20 61 ......struct.app.a={0};........a
5fe0 2e 77 3d 32 30 30 3b 20 61 2e 68 3d 32 30 30 3b 00 00 00 32 20 20 20 20 73 69 67 6e 61 6c 28 53 .w=200;.a.h=200;...2....signal(S
6000 49 47 49 4e 54 2c 6f 6e 5f 73 69 67 29 3b 20 73 69 67 6e 61 6c 28 53 49 47 54 45 52 4d 2c 6f 6e IGINT,on_sig);.signal(SIGTERM,on
6020 5f 73 69 67 29 3b 00 00 00 31 20 20 20 20 69 66 28 21 28 61 2e 64 3d 77 6c 5f 64 69 73 70 6c 61 _sig);...1....if(!(a.d=wl_displa
6040 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 29 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 y_connect(NULL))).return.1;...'.
6060 20 20 20 61 2e 72 65 67 3d 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 ...a.reg=wl_display_get_registry
6080 28 61 2e 64 29 3b 00 00 00 35 20 20 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 (a.d);...5....wl_registry_add_li
60a0 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 26 72 65 67 5f 6c 69 73 74 65 6e 65 72 2c 26 61 29 3b 00 stener(a.reg,&reg_listener,&a);.
60c0 00 00 1e 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 .......wl_display_roundtrip(a.d)
60e0 3b 00 00 00 22 20 20 20 20 69 66 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 77 6d 29 20 72 65 ;..."....if(!a.comp.||.!a.wm).re
6100 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 20 20 61 2e 77 73 3d 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f turn.1;........a.ws=wl_composito
6120 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 30 20 20 20 r_create_surface(a.comp);...0...
6140 20 61 2e 78 73 3d 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 .a.xs=xdg_wm_base_get_xdg_surfac
6160 65 28 61 2e 77 6d 2c 61 2e 77 73 29 3b 00 00 00 2b 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 e(a.wm,a.ws);...+....xdg_surface
6180 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 4e 55 4c 4c 2c 26 61 29 3b 00 00 00 28 _add_listener(a.xs,NULL,&a);...(
61a0 20 20 20 20 61 2e 78 74 3d 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 ....a.xt=xdg_surface_get_topleve
61c0 6c 28 61 2e 78 73 29 3b 00 00 00 2c 20 20 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 l(a.xs);...,....xdg_toplevel_add
61e0 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 4e 55 4c 4c 2c 26 61 29 3b 00 00 00 2b 20 20 20 20 _listener(a.xt,NULL,&a);...+....
6200 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 22 77 6c 63 xdg_toplevel_set_title(a.xt,"wlc
6220 6c 6f 63 6b 22 29 3b 00 00 00 1c 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 lock");........wl_surface_commit
6240 28 61 2e 77 73 29 3b 00 00 00 1e 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 (a.ws);........wl_display_roundt
6260 72 69 70 28 61 2e 64 29 3b 00 00 00 00 00 00 00 2a 20 20 20 20 69 6e 74 20 73 74 72 69 64 65 3d rip(a.d);.......*....int.stride=
6280 61 2e 77 2a 34 3b 20 69 6e 74 20 73 69 7a 65 3d 73 74 72 69 64 65 2a 61 2e 68 3b 00 00 00 21 20 a.w*4;.int.size=stride*a.h;...!.
62a0 20 20 20 69 6e 74 20 66 64 3d 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b ...int.fd=create_shm_file(size);
62c0 00 00 00 42 20 20 20 20 61 2e 70 69 78 65 6c 73 3d 6d 6d 61 70 28 4e 55 4c 4c 2c 73 69 7a 65 2c ...B....a.pixels=mmap(NULL,size,
62e0 50 52 4f 54 5f 52 45 41 44 7c 50 52 4f 54 5f 57 52 49 54 45 2c 4d 41 50 5f 53 48 41 52 45 44 2c PROT_READ|PROT_WRITE,MAP_SHARED,
6300 66 64 2c 30 29 3b 00 00 00 26 20 20 20 20 69 66 28 61 2e 70 69 78 65 6c 73 3d 3d 4d 41 50 5f 46 fd,0);...&....if(a.pixels==MAP_F
6320 41 49 4c 45 44 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 3f 20 20 20 20 73 74 72 75 63 74 20 77 AILED).return.1;...?....struct.w
6340 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 3d 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 l_shm_pool.*pool=wl_shm_create_p
6360 6f 6f 6c 28 61 2e 73 68 6d 2c 66 64 2c 73 69 7a 65 29 3b 00 00 00 52 20 20 20 20 61 2e 62 75 66 ool(a.shm,fd,size);...R....a.buf
6380 3d 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c =wl_shm_pool_create_buffer(pool,
63a0 30 2c 61 2e 77 2c 61 2e 68 2c 73 74 72 69 64 65 2c 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 0,a.w,a.h,stride,WL_SHM_FORMAT_A
63c0 52 47 42 38 38 38 38 29 3b 00 00 00 00 00 00 00 38 20 20 20 20 69 6e 74 20 74 66 64 3d 74 69 6d RGB8888);.......8....int.tfd=tim
63e0 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 54 46 44 5f erfd_create(CLOCK_MONOTONIC,TFD_
6400 43 4c 4f 45 58 45 43 29 3b 00 00 00 6a 20 20 20 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 CLOEXEC);...j....struct.itimersp
6420 65 63 20 69 74 73 3d 7b 2e 69 74 5f 76 61 6c 75 65 3d 7b 2e 74 76 5f 73 65 63 3d 30 2c 2e 74 76 ec.its={.it_value={.tv_sec=0,.tv
6440 5f 6e 73 65 63 3d 31 2a 31 30 30 30 30 30 30 4c 7d 2c 2e 69 74 5f 69 6e 74 65 72 76 61 6c 3d 7b _nsec=1*1000000L},.it_interval={
6460 2e 74 76 5f 73 65 63 3d 31 2c 2e 74 76 5f 6e 73 65 63 3d 30 7d 7d 3b 00 00 00 25 20 20 20 20 74 .tv_sec=1,.tv_nsec=0}};...%....t
6480 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 30 2c 26 69 74 73 2c 4e 55 4c 4c 29 3b imerfd_settime(tfd,0,&its,NULL);
64a0 00 00 00 00 00 00 00 16 20 20 20 20 61 2e 63 6f 6e 66 69 67 75 72 65 64 3d 74 72 75 65 3b 00 00 ............a.configured=true;..
64c0 00 18 20 20 20 20 73 74 72 75 63 74 20 74 69 6d 65 73 70 65 63 20 6e 6f 77 3b 00 00 00 13 20 20 ......struct.timespec.now;......
64e0 20 20 77 68 69 6c 65 28 72 75 6e 6e 69 6e 67 29 7b 00 00 00 29 20 20 20 20 20 20 20 20 77 6c 5f ..while(running){...)........wl_
6500 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 display_dispatch_pending(a.d);..
6520 00 3b 20 20 20 20 20 20 20 20 69 66 28 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e .;........if(wl_display_flush(a.
6540 64 29 3c 30 20 26 26 20 65 72 72 6e 6f 21 3d 45 41 47 41 49 4e 29 20 62 72 65 61 6b 3b 00 00 00 d)<0.&&.errno!=EAGAIN).break;...
6560 65 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 66 64 73 5b 32 5d 3d 7b e........struct.pollfd.pfds[2]={
6580 7b 2e 66 64 3d 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 2e 65 76 65 {.fd=wl_display_get_fd(a.d),.eve
65a0 6e 74 73 3d 50 4f 4c 4c 49 4e 7d 2c 7b 2e 66 64 3d 74 66 64 2c 2e 65 76 65 6e 74 73 3d 50 4f 4c nts=POLLIN},{.fd=tfd,.events=POL
65c0 4c 49 4e 7d 7d 3b 00 00 00 18 20 20 20 20 20 20 20 20 70 6f 6c 6c 28 70 66 64 73 2c 32 2c 2d 31 LIN}};............poll(pfds,2,-1
65e0 29 3b 00 00 00 3c 20 20 20 20 20 20 20 20 69 66 28 70 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 );...<........if(pfds[0].revents
6600 26 50 4f 4c 4c 49 4e 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 &POLLIN).wl_display_dispatch(a.d
6620 29 3b 00 00 00 23 20 20 20 20 20 20 20 20 69 66 28 70 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 );...#........if(pfds[1].revents
6640 26 50 4f 4c 4c 49 4e 29 7b 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 36 34 5f &POLLIN){...:............uint64_
6660 74 20 74 69 63 6b 73 3b 20 72 65 61 64 28 74 66 64 2c 26 74 69 63 6b 73 2c 73 69 7a 65 6f 66 20 t.ticks;.read(tfd,&ticks,sizeof.
6680 74 69 63 6b 73 29 3b 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 20 63 6c 6f 63 6b 5f 67 65 74 ticks);.../............clock_get
66a0 74 69 6d 65 28 43 4c 4f 43 4b 5f 52 45 41 4c 54 49 4d 45 2c 26 6e 6f 77 29 3b 00 00 00 43 20 20 time(CLOCK_REALTIME,&now);...C..
66c0 20 20 20 20 20 20 20 20 20 20 74 69 6d 65 5f 74 20 74 3d 6e 6f 77 2e 74 76 5f 73 65 63 3b 20 73 ..........time_t.t=now.tv_sec;.s
66e0 74 72 75 63 74 20 74 6d 20 74 6d 3b 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 2c 26 74 6d 29 truct.tm.tm;.localtime_r(&t,&tm)
6700 3b 00 00 00 1f 20 20 20 20 20 20 20 20 20 20 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 26 61 2c 26 ;................draw_clock(&a,&
6720 74 6d 29 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 0d 20 20 tm);............}........}......
6740 20 20 72 65 74 75 72 6e 20 30 3b 35 81 f5 18 00 00 00 00 03 00 00 00 0a 00 00 00 b5 00 00 00 02 ..return.0;5....................
6760 00 00 00 f9 00 00 00 00 00 00 00 3e 00 00 00 00 00 00 00 d6 19 00 00 00 00 00 00 ff 1c 00 00 00 ...........>....................
6780 00 00 00 35 81 5f d0 00 00 00 08 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 01 00 ...5._..........................
67a0 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
67c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
67e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6900 00 00 00 00 00 00 00 00 00 69 9d 91 94 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 .........i......................
6920 00 00 00 00 00 fe 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 ..........#define._POSIX_C_SOURC
6940 45 20 32 30 30 38 30 39 4c 00 00 00 00 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f E.200809L........#include.<errno
6960 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e .h>....#include.<fcntl.h>....#in
6980 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c clude.<math.h>....#include.<poll
69a0 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 .h>....#include.<signal.h>....#i
69c0 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c nclude.<stdbool.h>....#include.<
69e0 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 stdio.h>....#include.<stdlib.h>.
6a00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 ...#include.<string.h>....#inclu
6a20 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 de.<sys/mman.h>....#include.<sys
6a40 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e /timerfd.h>....#include.<time.h>
6a60 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c ....#include.<unistd.h>....#incl
6a80 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 26 23 69 ude.<wayland-client.h>.......&#i
6aa0 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f nclude."xdg-shell-client-protoco
6ac0 6c 2e 68 22 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 l.h"........#ifndef.M_PI...##def
6ae0 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 ine.M_PI.3.14159265358979323846.
6b00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 ...#endif....#ifndef.M_PI_2...%#
6b20 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 define.M_PI_2.1.5707963267948966
6b40 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 23 23 64 65 66 69 6e 65 20 53 57 1923....#endif.......##define.SW
6b60 43 4c 4f 43 4b 5f 42 47 5f 43 4f 4c 4f 52 20 30 78 46 46 46 46 46 46 46 46 00 00 00 24 23 64 65 CLOCK_BG_COLOR.0xFFFFFFFF...$#de
6b80 66 69 6e 65 20 53 57 43 4c 4f 43 4b 5f 49 4e 4b 5f 43 4f 4c 4f 52 20 30 78 46 46 30 30 30 30 30 fine.SWCLOCK_INK_COLOR.0xFF00000
6ba0 30 00 00 00 24 23 64 65 66 69 6e 65 20 53 57 43 4c 4f 43 4b 5f 53 45 43 5f 43 4f 4c 4f 52 20 30 0...$#define.SWCLOCK_SEC_COLOR.0
6bc0 78 46 46 46 46 30 30 30 30 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 xFFFF0000.......)static.volatile
6be0 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 .sig_atomic_t.running.=.1;....st
6c00 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 atic.void.on_sig(int.s).{......(
6c20 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 void)s;......running.=.0;....}..
6c40 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 ......struct.app.{......struct.w
6c60 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 l_display.*d;......struct.wl_reg
6c80 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f istry.*reg;......struct.wl_compo
6ca0 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 sitor.*comp;......struct.wl_shm.
6cc0 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 *shm;......struct.xdg_wm_base.*w
6ce0 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 m;......struct.wl_surface.*ws;..
6d00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 ....struct.xdg_surface.*xs;.....
6d20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 1f 20 20 73 .struct.xdg_toplevel.*xt;......s
6d40 74 72 75 63 74 20 77 6c 5f 63 61 6c 6c 62 61 63 6b 20 2a 66 72 61 6d 65 5f 63 62 3b 00 00 00 00 truct.wl_callback.*frame_cb;....
6d60 00 00 00 13 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 ......uint32_t.*pixels;......str
6d80 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 uct.wl_buffer.*buf;......int.w,.
6da0 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 15 20 20 62 6f h;......bool.configured;......bo
6dc0 6f 6c 20 66 72 61 6d 65 5f 70 65 6e 64 69 6e 67 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 29 73 ol.frame_pending;....};.......)s
6de0 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 tatic.int.create_shm_file(size_t
6e00 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 .size).{......char.template[].=.
6e20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1d 20 20 "/tmp/wayland-shm-XXXXXX";......
6e40 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 0f 20 int.fd.=.mkstemp(template);.....
6e60 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 00 00 00 16 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6b .if.(fd.<.0).{........perror("mk
6e80 73 74 65 6d 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 stemp");........exit(1);......}.
6ea0 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 20 20 20 69 66 20 28 .....unlink(template);......if.(
6ec0 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 7b 00 00 00 18 20 20 ftruncate(fd,.size).<.0).{......
6ee0 20 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 00 00 00 0c 20 20 20 20 65 78 ..perror("ftruncate");........ex
6f00 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 it(1);......}......return.fd;...
6f20 01 7d 00 00 00 00 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 70 69 78 65 6c .}.......Estatic.void.draw_pixel
6f40 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 75 69 (struct.app.*a,.int.x,.int.y,.ui
6f60 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 2f 20 20 69 66 20 28 78 20 3e 3d 20 30 20 nt32_t.color).{.../..if.(x.>=.0.
6f80 26 26 20 78 20 3c 20 61 2d 3e 77 20 26 26 20 79 20 3e 3d 20 30 20 26 26 20 79 20 3c 20 61 2d 3e &&.x.<.a->w.&&.y.>=.0.&&.y.<.a->
6fa0 68 29 00 00 00 24 20 20 20 20 61 2d 3e 70 69 78 65 6c 73 5b 79 20 2a 20 61 2d 3e 77 20 2b 20 78 h)...$....a->pixels[y.*.a->w.+.x
6fc0 5d 20 3d 20 63 6f 6c 6f 72 3b 00 00 00 01 7d 00 00 00 00 00 00 00 44 73 74 61 74 69 63 20 76 6f ].=.color;....}.......Dstatic.vo
6fe0 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 69 6e 74 20 id.draw_line(struct.app.*a,.int.
7000 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 27 20 x0,.int.y0,.int.x1,.int.y1,...'.
7020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 6f .....................uint32_t.co
7040 6c 6f 72 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 lor).{.../..int.dx.=.abs(x1.-.x0
7060 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 ),.sx.=.x0.<.x1.?.1.:.-1;...0..i
7080 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c nt.dy.=.-abs(y1.-.y0),.sy.=.y0.<
70a0 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 .y1.?.1.:.-1;......int.err.=.dx.
70c0 2b 20 64 79 2c 20 65 32 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 21 20 20 +.dy,.e2;......while.(1).{...!..
70e0 20 20 64 72 61 77 5f 70 69 78 65 6c 28 61 2c 20 78 30 2c 20 79 30 2c 20 63 6f 6c 6f 72 29 3b 00 ..draw_pixel(a,.x0,.y0,.color);.
7100 00 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 .......if.(x0.==.x1.&&.y0.==.y1)
7120 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 11 20 20 20 20 65 32 20 3d 20 32 20 2a ..........break;........e2.=.2.*
7140 20 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 10 .err;........if.(e2.>=.dy).{....
7160 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 2b 3d 20 ......err.+=.dy;..........x0.+=.
7180 73 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 sx;........}........if.(e2.<=.dx
71a0 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 20 20 20 ).{..........err.+=.dx;.........
71c0 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 .y0.+=.sy;........}......}....}.
71e0 00 00 00 00 00 00 4d 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c 65 28 73 ......Mstatic.void.draw_circle(s
7200 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e truct.app.*a,.int.cx,.int.cy,.in
7220 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 2c 00 00 00 24 20 20 20 20 20 20 20 20 t.r,.uint32_t.color,...$........
7240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 66 69 6c 6c 29 20 7b 00 00 00 1c ................bool.fill).{....
7260 20 20 69 6e 74 20 78 20 3d 20 72 2c 20 79 20 3d 20 30 2c 20 65 72 72 20 3d 20 30 3b 00 00 00 12 ..int.x.=.r,.y.=.0,.err.=.0;....
7280 20 20 77 68 69 6c 65 20 28 78 20 3e 3d 20 79 29 20 7b 00 00 00 0f 20 20 20 20 69 66 20 28 66 69 ..while.(x.>=.y).{........if.(fi
72a0 6c 6c 29 20 7b 00 00 00 2e 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 63 78 20 2d ll).{..........for.(int.i.=.cx.-
72c0 20 78 3b 20 69 20 3c 3d 20 63 78 20 2b 20 78 3b 20 69 2b 2b 29 20 7b 00 00 00 28 20 20 20 20 20 .x;.i.<=.cx.+.x;.i++).{...(.....
72e0 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 61 2c 20 69 2c 20 63 79 20 2b 20 79 2c 20 63 6f 6c 6f ...draw_pixel(a,.i,.cy.+.y,.colo
7300 72 29 3b 00 00 00 28 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 61 2c 20 69 2c 20 r);...(........draw_pixel(a,.i,.
7320 63 79 20 2d 20 79 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 2e 20 20 cy.-.y,.color);..........}......
7340 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 63 78 20 2d 20 79 3b 20 69 20 3c 3d 20 63 78 ....for.(int.i.=.cx.-.y;.i.<=.cx
7360 20 2b 20 79 3b 20 69 2b 2b 29 20 7b 00 00 00 28 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 .+.y;.i++).{...(........draw_pix
7380 65 6c 28 61 2c 20 69 2c 20 63 79 20 2b 20 78 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 28 20 20 20 20 el(a,.i,.cy.+.x,.color);...(....
73a0 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 61 2c 20 69 2c 20 63 79 20 2d 20 78 2c 20 63 6f 6c ....draw_pixel(a,.i,.cy.-.x,.col
73c0 6f 72 29 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 0c 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 or);..........}........}.else.{.
73e0 00 00 2b 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 61 2c 20 63 78 20 2b 20 78 2c 20 63 ..+......draw_pixel(a,.cx.+.x,.c
7400 79 20 2b 20 79 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 2b 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 y.+.y,.color);...+......draw_pix
7420 65 6c 28 61 2c 20 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 el(a,.cx.+.y,.cy.+.x,.color);...
7440 2b 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 61 2c 20 63 78 20 2d 20 79 2c 20 63 79 20 +......draw_pixel(a,.cx.-.y,.cy.
7460 2b 20 78 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 2b 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c +.x,.color);...+......draw_pixel
7480 28 61 2c 20 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 2b 20 (a,.cx.-.x,.cy.+.y,.color);...+.
74a0 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 61 2c 20 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 .....draw_pixel(a,.cx.-.x,.cy.-.
74c0 79 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 2b 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 61 y,.color);...+......draw_pixel(a
74e0 2c 20 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 2b 20 20 20 ,.cx.-.y,.cy.-.x,.color);...+...
7500 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 61 2c 20 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 2c ...draw_pixel(a,.cx.+.y,.cy.-.x,
7520 20 63 6f 6c 6f 72 29 3b 00 00 00 2b 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 61 2c 20 .color);...+......draw_pixel(a,.
7540 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 05 20 20 20 20 7d cx.+.x,.cy.-.y,.color);........}
7560 00 00 00 08 20 20 20 20 79 2b 2b 3b 00 00 00 11 20 20 20 20 69 66 20 28 65 72 72 20 3c 3d 20 30 ........y++;........if.(err.<=.0
7580 29 00 00 00 17 20 20 20 20 20 20 65 72 72 20 2b 3d 20 32 20 2a 20 79 20 2b 20 31 3b 00 00 00 12 )..........err.+=.2.*.y.+.1;....
75a0 20 20 20 20 69 66 20 28 65 72 72 20 3e 20 30 29 20 7b 00 00 00 0a 20 20 20 20 20 20 78 2d 2d 3b ....if.(err.>.0).{..........x--;
75c0 00 00 00 17 20 20 20 20 20 20 65 72 72 20 2d 3d 20 32 20 2a 20 78 20 2b 20 31 3b 00 00 00 05 20 ..........err.-=.2.*.x.+.1;.....
75e0 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 3c 73 74 61 74 69 63 20 76 ...}......}....}.......<static.v
7600 6f 69 64 20 64 72 61 77 5f 63 6c 6f 63 6b 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 63 6f oid.draw_clock(struct.app.*a,.co
7620 6e 73 74 20 73 74 72 75 63 74 20 74 6d 20 2a 74 6d 29 20 7b 00 00 00 23 20 20 69 66 20 28 21 61 nst.struct.tm.*tm).{...#..if.(!a
7640 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 21 61 2d 3e 70 69 78 65 6c 73 29 00 00 00 0b 20 ->configured.||.!a->pixels).....
7660 20 20 20 72 65 74 75 72 6e 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 ...return;...#..int.cx.=.a->w./.
7680 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2e 20 20 69 6e 74 20 72 20 3d 20 28 2,.cy.=.a->h./.2;......int.r.=.(
76a0 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d a->w.<.a->h.?.a->w.:.a->h)./.2.-
76c0 20 38 3b 00 00 00 0c 20 20 69 66 20 28 72 20 3c 20 32 29 00 00 00 0a 20 20 20 20 72 20 3d 20 32 .8;......if.(r.<.2)........r.=.2
76e0 3b 00 00 00 27 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 61 2d 3e 77 20 ;...'..for.(int.i.=.0;.i.<.a->w.
7700 2a 20 61 2d 3e 68 3b 20 69 2b 2b 29 00 00 00 24 20 20 20 20 61 2d 3e 70 69 78 65 6c 73 5b 69 5d *.a->h;.i++)...$....a->pixels[i]
7720 20 3d 20 53 57 43 4c 4f 43 4b 5f 42 47 5f 43 4f 4c 4f 52 3b 00 00 00 36 20 20 64 72 61 77 5f 63 .=.SWCLOCK_BG_COLOR;...6..draw_c
7740 69 72 63 6c 65 28 61 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 53 57 43 4c 4f 43 4b 5f 49 4e 4b 5f ircle(a,.cx,.cy,.r,.SWCLOCK_INK_
7760 43 4f 4c 4f 52 2c 20 66 61 6c 73 65 29 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d COLOR,.false);......for.(int.i.=
7780 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 .0;.i.<.12;.i++).{........double
77a0 20 61 6e 67 20 3d 20 69 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 .ang.=.i./.12.0.*.2.*.M_PI.-.M_P
77c0 49 5f 32 3b 00 00 00 32 20 20 20 20 69 6e 74 20 78 31 20 3d 20 63 78 20 2b 20 28 69 6e 74 29 72 I_2;...2....int.x1.=.cx.+.(int)r
77e0 6f 75 6e 64 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 3b 00 00 00 32 20 20 ound(cos(ang).*.(r.-.10));...2..
7800 20 20 69 6e 74 20 79 31 20 3d 20 63 79 20 2b 20 28 69 6e 74 29 72 6f 75 6e 64 28 73 69 6e 28 61 ..int.y1.=.cy.+.(int)round(sin(a
7820 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 3b 00 00 00 31 20 20 20 20 69 6e 74 20 78 32 20 3d ng).*.(r.-.10));...1....int.x2.=
7840 20 63 78 20 2b 20 28 69 6e 74 29 72 6f 75 6e 64 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d .cx.+.(int)round(cos(ang).*.(r.-
7860 20 32 29 29 3b 00 00 00 31 20 20 20 20 69 6e 74 20 79 32 20 3d 20 63 79 20 2b 20 28 69 6e 74 29 .2));...1....int.y2.=.cy.+.(int)
7880 72 6f 75 6e 64 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 3b 00 00 00 34 20 20 round(sin(ang).*.(r.-.2));...4..
78a0 20 20 64 72 61 77 5f 6c 69 6e 65 28 61 2c 20 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 2c 20 53 ..draw_line(a,.x1,.y1,.x2,.y2,.S
78c0 57 43 4c 4f 43 4b 5f 49 4e 4b 5f 43 4f 4c 4f 52 29 3b 00 00 00 03 20 20 7d 00 00 00 1a 20 20 64 WCLOCK_INK_COLOR);......}......d
78e0 6f 75 62 6c 65 20 73 65 63 20 3d 20 74 6d 2d 3e 74 6d 5f 73 65 63 3b 00 00 00 27 20 20 64 6f 75 ouble.sec.=.tm->tm_sec;...'..dou
7900 62 6c 65 20 6d 69 6e 20 3d 20 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2b 20 73 65 63 20 2f 20 36 30 2e ble.min.=.tm->tm_min.+.sec./.60.
7920 30 3b 00 00 00 30 20 20 64 6f 75 62 6c 65 20 68 6f 75 72 20 3d 20 28 74 6d 2d 3e 74 6d 5f 68 6f 0;...0..double.hour.=.(tm->tm_ho
7940 75 72 20 25 20 31 32 29 20 2b 20 6d 69 6e 20 2f 20 36 30 2e 30 3b 00 00 00 2d 20 20 64 6f 75 62 ur.%.12).+.min./.60.0;...-..doub
7960 6c 65 20 73 61 20 3d 20 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 le.sa.=.sec./.60.0.*.2.*.M_PI.-.
7980 4d 5f 50 49 5f 32 3b 00 00 00 2d 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 6d 69 6e 20 2f 20 36 M_PI_2;...-..double.ma.=.min./.6
79a0 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 2e 20 20 64 6f 0.0.*.2.*.M_PI.-.M_PI_2;......do
79c0 75 62 6c 65 20 68 61 20 3d 20 68 6f 75 72 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 uble.ha.=.hour./.12.0.*.2.*.M_PI
79e0 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 3b 20 20 64 72 61 77 5f 6c 69 6e 65 28 61 2c 20 63 78 2c .-.M_PI_2;...;..draw_line(a,.cx,
7a00 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 72 6f 75 6e 64 28 63 6f 73 28 68 61 29 20 2a 20 72 .cy,.cx.+.(int)round(cos(ha).*.r
7a20 20 2a 20 30 2e 35 35 29 2c 00 00 00 44 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 .*.0.55),...D............cy.+.(i
7a40 6e 74 29 72 6f 75 6e 64 28 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 35 29 2c 20 53 57 nt)round(sin(ha).*.r.*.0.55),.SW
7a60 43 4c 4f 43 4b 5f 49 4e 4b 5f 43 4f 4c 4f 52 29 3b 00 00 00 3a 20 20 64 72 61 77 5f 6c 69 6e 65 CLOCK_INK_COLOR);...:..draw_line
7a80 28 61 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 72 6f 75 6e 64 28 63 6f 73 28 (a,.cx,.cy,.cx.+.(int)round(cos(
7aa0 6d 61 29 20 2a 20 72 20 2a 20 30 2e 38 29 2c 00 00 00 43 20 20 20 20 20 20 20 20 20 20 20 20 63 ma).*.r.*.0.8),...C............c
7ac0 79 20 2b 20 28 69 6e 74 29 72 6f 75 6e 64 28 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 38 y.+.(int)round(sin(ma).*.r.*.0.8
7ae0 29 2c 20 53 57 43 4c 4f 43 4b 5f 49 4e 4b 5f 43 4f 4c 4f 52 29 3b 00 00 00 3a 20 20 64 72 61 77 ),.SWCLOCK_INK_COLOR);...:..draw
7b00 5f 6c 69 6e 65 28 61 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 72 6f 75 6e 64 _line(a,.cx,.cy,.cx.+.(int)round
7b20 28 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 00 00 00 43 20 20 20 20 20 20 20 20 (cos(sa).*.r.*.0.9),...C........
7b40 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 72 6f 75 6e 64 28 73 69 6e 28 73 61 29 20 2a 20 72 20 ....cy.+.(int)round(sin(sa).*.r.
7b60 2a 20 30 2e 39 29 2c 20 53 57 43 4c 4f 43 4b 5f 53 45 43 5f 43 4f 4c 4f 52 29 3b 00 00 00 35 20 *.0.9),.SWCLOCK_SEC_COLOR);...5.
7b80 20 64 72 61 77 5f 63 69 72 63 6c 65 28 61 2c 20 63 78 2c 20 63 79 2c 20 33 2c 20 53 57 43 4c 4f .draw_circle(a,.cx,.cy,.3,.SWCLO
7ba0 43 4b 5f 49 4e 4b 5f 43 4f 4c 4f 52 2c 20 74 72 75 65 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 CK_INK_COLOR,.true);...)..wl_sur
7bc0 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 face_attach(a->ws,.a->buf,.0,.0)
7be0 3b 00 00 00 2d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 28 61 2d 3e 77 73 2c 20 ;...-..wl_surface_damage(a->ws,.
7c00 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 0,.0,.a->w,.a->h);......wl_surfa
7c20 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4b 73 74 ce_commit(a->ws);....}.......Kst
7c40 61 74 69 63 20 76 6f 69 64 20 66 72 61 6d 65 5f 64 6f 6e 65 28 76 6f 69 64 20 2a 64 61 74 61 2c atic.void.frame_done(void.*data,
7c60 20 73 74 72 75 63 74 20 77 6c 5f 63 61 6c 6c 62 61 63 6b 20 2a 63 62 2c 20 75 69 6e 74 33 32 5f .struct.wl_callback.*cb,.uint32_
7c80 74 20 74 69 6d 65 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 t.time).{......struct.app.*a.=.d
7ca0 61 74 61 3b 00 00 00 1a 20 20 77 6c 5f 63 61 6c 6c 62 61 63 6b 5f 64 65 73 74 72 6f 79 28 63 62 ata;......wl_callback_destroy(cb
7cc0 29 3b 00 00 00 15 20 20 61 2d 3e 66 72 61 6d 65 5f 63 62 20 3d 20 4e 55 4c 4c 3b 00 00 00 1b 20 );......a->frame_cb.=.NULL;.....
7ce0 20 61 2d 3e 66 72 61 6d 65 5f 70 65 6e 64 69 6e 67 20 3d 20 66 61 6c 73 65 3b 00 00 00 16 20 20 .a->frame_pending.=.false;......
7d00 73 74 72 75 63 74 20 74 69 6d 65 73 70 65 63 20 6e 6f 77 3b 00 00 00 26 20 20 63 6c 6f 63 6b 5f struct.timespec.now;...&..clock_
7d20 67 65 74 74 69 6d 65 28 43 4c 4f 43 4b 5f 52 45 41 4c 54 49 4d 45 2c 20 26 6e 6f 77 29 3b 00 00 gettime(CLOCK_REALTIME,.&now);..
7d40 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 6e 6f 77 2e 74 76 5f 73 65 63 3b 00 00 00 0f 20 ....time_t.tt.=.now.tv_sec;.....
7d60 20 73 74 72 75 63 74 20 74 6d 20 74 6d 3b 00 00 00 18 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 .struct.tm.tm;......localtime_r(
7d80 26 74 74 2c 20 26 74 6d 29 3b 00 00 00 15 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 61 2c 20 26 74 &tt,.&tm);......draw_clock(a,.&t
7da0 6d 29 3b 00 00 00 01 7d 00 00 00 4f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 m);....}...Ostatic.const.struct.
7dc0 77 6c 5f 63 61 6c 6c 62 61 63 6b 5f 6c 69 73 74 65 6e 65 72 20 66 72 61 6d 65 5f 6c 69 73 74 65 wl_callback_listener.frame_liste
7de0 6e 65 72 20 3d 20 7b 2e 64 6f 6e 65 20 3d 20 66 72 61 6d 65 5f 64 6f 6e 65 7d 3b 00 00 00 00 00 ner.=.{.done.=.frame_done};.....
7e00 00 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 ..Nstatic.void.registry_handler(
7e20 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a void.*data,.struct.wl_registry.*
7e40 72 65 67 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 reg,.uint32_t.id,...?...........
7e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 ..................const.char.*if
7e80 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 ace,.uint32_t.ver).{......struct
7ea0 20 61 70 70 20 2a 61 20 3d 20 64 61 74 61 3b 00 00 00 2a 20 20 69 66 20 28 73 74 72 63 6d 70 28 .app.*a.=.data;...*..if.(strcmp(
7ec0 69 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 00 00 00 iface,."wl_compositor").==.0)...
7ee0 0d 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 00 00 00 4f 20 20 20 20 20 20 20 20 77 6c 5f 72 65 67 .....a->comp.=...O........wl_reg
7f00 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 istry_bind(reg,.id,.&wl_composit
7f20 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 76 65 72 20 3c 20 34 20 3f 20 76 65 72 20 3a 20 34 29 or_interface,.ver.<.4.?.ver.:.4)
7f40 3b 00 00 00 28 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 ;...(..else.if.(strcmp(iface,."w
7f60 6c 5f 73 68 6d 22 29 20 3d 3d 20 30 29 00 00 00 3d 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c l_shm").==.0)...=....a->shm.=.wl
7f80 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f _registry_bind(reg,.id,.&wl_shm_
7fa0 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 2f 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 interface,.1);.../..else.if.(str
7fc0 63 6d 70 28 69 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 cmp(iface,."xdg_wm_base").==.0).
7fe0 7b 00 00 00 41 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e {...A....a->wm.=.wl_registry_bin
8000 64 28 72 65 67 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 d(reg,.id,.&xdg_wm_base_interfac
8020 65 2c 20 31 29 3b 00 00 00 30 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 e,.1);...0....xdg_wm_base_add_li
8040 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 29 3b 00 00 00 03 20 20 stener(a->wm,.NULL,.NULL);......
8060 7d 00 00 00 01 7d 00 00 00 42 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c }....}...Bstatic.const.struct.wl
8080 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 65 6e 65 72 20 _registry_listener.reg_listener.
80a0 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 00 00 00 4f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =.{.global.=...O................
80c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
80e0 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 7d 3b 00 .............registry_handler};.
8100 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 73 74 72 .......int.main(void).{......str
8120 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d 20 32 30 30 3b uct.app.a.=.{0};......a.w.=.200;
8140 00 00 00 0c 20 20 61 2e 68 20 3d 20 32 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 ......a.h.=.200;......signal(SIG
8160 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 1a 20 20 73 69 67 6e 61 6c 28 53 49 47 54 45 52 INT,.on_sig);......signal(SIGTER
8180 4d 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 28 20 20 69 66 20 28 21 28 61 2e 64 20 3d 20 77 6c 5f M,.on_sig);...(..if.(!(a.d.=.wl_
81a0 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 29 29 00 00 00 0d 20 20 20 20 72 display_connect(NULL)))........r
81c0 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 eturn.1;...'..a.reg.=.wl_display
81e0 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 35 20 20 77 6c 5f 72 65 67 69 _get_registry(a.d);...5..wl_regi
8200 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c 69 stry_add_listener(a.reg,.&reg_li
8220 73 74 65 6e 65 72 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 stener,.&a);......wl_display_rou
8240 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 17 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c ndtrip(a.d);......if.(!a.comp.||
8260 20 21 61 2e 77 6d 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e .!a.wm)........return.1;......a.
8280 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 ws.=.wl_compositor_create_surfac
82a0 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 e(a.comp);...1..a.xs.=.xdg_wm_ba
82c0 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 se_get_xdg_surface(a.wm,.a.ws);.
82e0 00 00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e ..+..xdg_surface_add_listener(a.
8300 78 73 2c 20 4e 55 4c 4c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 xs,.NULL,.&a);...(..a.xt.=.xdg_s
8320 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 2c 20 20 urface_get_toplevel(a.xs);...,..
8340 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 xdg_toplevel_add_listener(a.xt,.
8360 4e 55 4c 4c 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 NULL,.&a);...*..xdg_toplevel_set
8380 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c _title(a.xt,."wlclock");......wl
83a0 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 1c 20 20 77 6c 5f 64 _surface_commit(a.ws);......wl_d
83c0 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 00 00 00 00 17 20 20 isplay_roundtrip(a.d);..........
83e0 69 6e 74 20 73 74 72 69 64 65 20 3d 20 61 2e 77 20 2a 20 34 3b 00 00 00 1a 20 20 69 6e 74 20 73 int.stride.=.a.w.*.4;......int.s
8400 69 7a 65 20 3d 20 73 74 72 69 64 65 20 2a 20 61 2e 68 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 ize.=.stride.*.a.h;...!..int.fd.
8420 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 49 20 20 61 2e =.create_shm_file(size);...I..a.
8440 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 pixels.=.mmap(NULL,.size,.PROT_R
8460 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 EAD.|.PROT_WRITE,.MAP_SHARED,.fd
8480 2c 20 30 29 3b 00 00 00 1d 20 20 69 66 20 28 61 2e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 ,.0);......if.(a.pixels.==.MAP_F
84a0 41 49 4c 45 44 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 41 20 20 73 74 72 AILED)........return.1;...A..str
84c0 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 uct.wl_shm_pool.*pool.=.wl_shm_c
84e0 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 3e reate_pool(a.shm,.fd,.size);...>
8500 20 20 61 2e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 ..a.buf.=.wl_shm_pool_create_buf
8520 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2e 77 2c 20 61 2e 68 2c 20 73 74 72 69 64 65 2c 00 00 fer(pool,.0,.a.w,.a.h,.stride,..
8540 00 3c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .<..............................
8560 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 ......WL_SHM_FORMAT_ARGB8888);..
8580 00 00 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 .....9..int.tfd.=.timerfd_create
85a0 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 (CLOCK_MONOTONIC,.TFD_CLOEXEC);.
85c0 00 00 4e 20 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 20 69 74 73 20 3d 20 7b 2e 69 ..N..struct.itimerspec.its.=.{.i
85e0 74 5f 76 61 6c 75 65 20 3d 20 7b 2e 74 76 5f 73 65 63 20 3d 20 30 2c 20 2e 74 76 5f 6e 73 65 63 t_value.=.{.tv_sec.=.0,..tv_nsec
8600 20 3d 20 31 20 2a 20 31 30 30 30 30 30 30 4c 7d 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 20 20 .=.1.*.1000000L},...G...........
8620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 69 74 5f 69 6e 74 65 72 76 61 6c 20 3d 20 7b .................it_interval.=.{
8640 2e 74 76 5f 73 65 63 20 3d 20 31 2c 20 2e 74 76 5f 6e 73 65 63 20 3d 20 30 7d 7d 3b 00 00 00 26 .tv_sec.=.1,..tv_nsec.=.0}};...&
8660 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 69 74 73 2c 20 ..timerfd_settime(tfd,.0,.&its,.
8680 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 16 20 20 61 2e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 NULL);..........a.configured.=.t
86a0 72 75 65 3b 00 00 00 16 20 20 73 74 72 75 63 74 20 74 69 6d 65 73 70 65 63 20 6e 6f 77 3b 00 00 rue;......struct.timespec.now;..
86c0 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 25 20 20 20 20 77 6c 5f ....while.(running).{...%....wl_
86e0 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 display_dispatch_pending(a.d);..
8700 00 35 20 20 20 20 69 66 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 20 .5....if.(wl_display_flush(a.d).
8720 3c 20 30 20 26 26 20 65 72 72 6e 6f 20 21 3d 20 45 41 47 41 49 4e 29 00 00 00 0c 20 20 20 20 20 <.0.&&.errno.!=.EAGAIN).........
8740 20 62 72 65 61 6b 3b 00 00 00 4e 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 66 64 .break;...N....struct.pollfd.pfd
8760 73 5b 32 5d 20 3d 20 7b 7b 2e 66 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 s[2].=.{{.fd.=.wl_display_get_fd
8780 28 61 2e 64 29 2c 20 2e 65 76 65 6e 74 73 20 3d 20 50 4f 4c 4c 49 4e 7d 2c 00 00 00 3c 20 20 20 (a.d),..events.=.POLLIN},...<...
87a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 2e 66 64 20 3d ..........................{.fd.=
87c0 20 74 66 64 2c 20 2e 65 76 65 6e 74 73 20 3d 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 16 20 20 20 .tfd,..events.=.POLLIN}};.......
87e0 20 70 6f 6c 6c 28 70 66 64 73 2c 20 32 2c 20 2d 31 29 3b 00 00 00 21 20 20 20 20 69 66 20 28 70 .poll(pfds,.2,.-1);...!....if.(p
8800 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 1f 20 20 20 20 fds[0].revents.&.POLLIN)........
8820 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 23 20 ..wl_display_dispatch(a.d);...#.
8840 20 20 20 69 66 20 28 70 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 ...if.(pfds[1].revents.&.POLLIN)
8860 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b 00 00 00 26 20 .{..........uint64_t.ticks;...&.
8880 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 69 7a 65 6f 66 20 74 69 .....read(tfd,.&ticks,.sizeof.ti
88a0 63 6b 73 29 3b 00 00 00 2a 20 20 20 20 20 20 63 6c 6f 63 6b 5f 67 65 74 74 69 6d 65 28 43 4c 4f cks);...*......clock_gettime(CLO
88c0 43 4b 5f 52 45 41 4c 54 49 4d 45 2c 20 26 6e 6f 77 29 3b 00 00 00 1c 20 20 20 20 20 20 74 69 6d CK_REALTIME,.&now);..........tim
88e0 65 5f 74 20 74 20 3d 20 6e 6f 77 2e 74 76 5f 73 65 63 3b 00 00 00 13 20 20 20 20 20 20 73 74 72 e_t.t.=.now.tv_sec;..........str
8900 75 63 74 20 74 6d 20 74 6d 3b 00 00 00 1b 20 20 20 20 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 uct.tm.tm;..........localtime_r(
8920 26 74 2c 20 26 74 6d 29 3b 00 00 00 1a 20 20 20 20 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 26 61 &t,.&tm);..........draw_clock(&a
8940 2c 20 26 74 6d 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 0b 20 20 72 65 74 ,.&tm);........}......}......ret
8960 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 fe 00 00 00 00 urn.0;....}5....................
8980 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4b 1d 00 00 00 00 00 00 01 00 00 00 00 ...................K............
89a0 00 00 00 35 81 5f d0 00 00 00 09 00 00 00 0b 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 01 00 ...5._..........................
89c0 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b20 00 00 00 00 00 00 00 00 00 69 9d 91 94 04 01 00 00 00 00 00 f5 18 00 00 00 f3 00 00 00 00 00 00 .........i......................
8b40 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 f4 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 ..........}.....................
8b60 00 00 f2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 20 f5 18 00 00 00 f3 00 00 00 00 00 00 ................................
8b80 00 00 00 00 00 00 f5 18 00 00 00 ea 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 06 20 20 20 20 ................................
8ba0 69 66 f5 18 00 00 00 eb 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 bb 00 00 00 00 00 00 if..............................
8bc0 00 00 00 00 00 01 00 00 00 12 20 20 20 20 77 6c 5f 63 61 6c 6c 62 61 63 6b 5f 61 64 f5 18 00 00 ..............wl_callback_ad....
8be0 00 bc 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 7b 00 00 00 00 00 00 00 00 00 00 00 01 ...................{............
8c00 00 00 00 12 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 f5 18 00 00 00 7c 00 00 00 00 ....static.void.draw_c.....|....
8c20 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 ................................
8c40 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 ................5...............
8c60 00 00 00 00 00 00 00 00 7b 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........{.......................
8c80 00 0f 00 00 00 00 00 00 f5 18 00 00 00 00 7b 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 40 00 ..............{...............@.
8ca0 00 00 12 00 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 f5 18 ................................
8cc0 00 00 00 00 bb 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 2f 00 00 00 06 00 00 00 00 19 00 00 ..................../...........
8ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 f5 18 00 00 00 00 ea 00 00 00 06 00 ................................
8d00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 01 00 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d20 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 f2 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ................................
8d40 01 00 00 00 01 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00 ................................
8d60 35 81 5f d0 00 00 00 0a 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 f4 00 00 00 00 5._.............................
8d80 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ee0 00 00 00 00 00 00 69 9d 91 95 04 01 00 00 00 04 00 f5 18 00 00 00 02 00 00 01 35 00 00 00 f4 00 ......i...................5.....
8f00 00 00 f1 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 11 23 69 6e .......#include.<errno.h>....#in
8f20 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c clude.<math.h>....#include.<poll
8f40 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 .h>....#include.<signal.h>....#i
8f60 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c nclude.<stdbool.h>....#include.<
8f80 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 stdio.h>....#include.<stdlib.h>.
8fa0 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 ...#include.<string.h>....#inclu
8fc0 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e de.<time.h>....#include.<unistd.
8fe0 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 12 23 h>....#include.<sys/mman.h>....#
9000 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 include.<fcntl.h>....#include.<w
9020 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 ayland-client.h>...&#include."xd
9040 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 00 00 00 g-shell-client-protocol.h"......
9060 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 ..#ifndef.M_PI...##define.M_PI.3
9080 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 .14159265358979323846....#endif.
90a0 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 ...#ifndef.M_PI_2...%#define.M_P
90c0 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 I_2.1.57079632679489661923....#e
90e0 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f ndif.......)static.volatile.sig_
9100 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 32 73 74 61 74 69 63 20 atomic_t.running.=.1;...2static.
9120 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 7b 20 28 76 6f 69 64 29 73 3b 20 72 75 6e void.on_sig(int.s){.(void)s;.run
9140 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 ning.=.0;.}........struct.app.{.
9160 00 00 19 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1c .......struct.wl_display.*d;....
9180 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1f ....struct.wl_registry.*reg;....
91a0 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 ....struct.wl_compositor.*comp;.
91c0 00 00 17 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 1b 20 20 .......struct.wl_shm.*shm;......
91e0 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 1a 20 20 20 ..struct.xdg_wm_base.*wm;.......
9200 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 1b 20 20 20 20 73 .struct.wl_surface.*ws;........s
9220 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1c 20 20 20 20 73 74 truct.xdg_surface.*xs;........st
9240 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 21 20 20 20 20 73 74 ruct.xdg_toplevel.*xt;...!....st
9260 72 75 63 74 20 77 6c 5f 63 61 6c 6c 62 61 63 6b 20 2a 66 72 61 6d 65 5f 63 62 3b 00 00 00 11 20 ruct.wl_callback.*frame_cb;.....
9280 20 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 1a 20 20 20 20 73 74 72 75 63 74 20 77 ...void.*pixels;........struct.w
92a0 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0d 20 20 20 20 69 6e 74 20 77 2c 20 68 3b 00 l_buffer.*buf;........int.w,.h;.
92c0 00 00 14 20 20 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 17 20 20 20 20 62 .......bool.configured;........b
92e0 6f 6f 6c 20 66 72 61 6d 65 5f 70 65 6e 64 69 6e 67 3b 00 00 00 16 20 20 20 20 62 6f 6f 6c 20 64 ool.frame_pending;........bool.d
9300 72 61 77 5f 70 65 6e 64 69 6e 67 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 raw_pending;....};.......)static
9320 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 .int.create_shm_file(size_t.size
9340 29 20 7b 00 00 00 30 20 20 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 ).{...0....char.template[].=."/t
9360 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1f 20 20 20 20 69 mp/wlclock-shm-XXXXXX";........i
9380 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 2e 20 20 nt.fd.=.mkstemp(template);......
93a0 20 20 69 66 28 66 64 20 3c 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 ..if(fd.<.0).{.perror("mkstemp")
93c0 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 15 20 20 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c ;.exit(1);.}........unlink(templ
93e0 61 74 65 29 3b 00 00 00 41 20 20 20 20 69 66 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 ate);...A....if(ftruncate(fd,.si
9400 7a 65 29 20 3c 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 20 ze).<.0).{.perror("ftruncate");.
9420 65 78 69 74 28 31 29 3b 20 7d 00 00 00 0e 20 20 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 exit(1);.}........return.fd;....
9440 7d 00 00 00 00 00 00 00 42 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 }.......Bstatic.void.wm_ping(voi
9460 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 d.*d,.struct.xdg_wm_base.*wm,.ui
9480 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 0c 20 20 20 20 28 76 6f 69 64 29 64 3b 00 00 00 1c 20 nt32_t.s).{........(void)d;.....
94a0 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 29 3b 00 00 00 01 7d ...xdg_wm_base_pong(wm,.s);....}
94c0 00 00 00 4b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 ...Kstatic.const.struct.xdg_wm_b
94e0 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 20 2e 70 69 ase_listener.wm_listener.=.{..pi
9500 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 20 7d 3b 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f ng.=.wm_ping.};.......Astatic.vo
9520 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 id.xs_cfg(void.*d,.struct.xdg_su
9540 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 16 20 20 20 20 rface.*xs,.uint32_t.s).{........
9560 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 25 20 20 20 20 78 64 67 5f 73 75 struct.app.*a.=.d;...%....xdg_su
9580 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 29 3b 00 00 00 19 20 rface_ack_configure(xs,.s);.....
95a0 20 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 1b 20 20 20 20 ...a->configured.=.true;........
95c0 61 2d 3e 64 72 61 77 5f 70 65 6e 64 69 6e 67 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 4f a->draw_pending.=.true;....}...O
95e0 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f static.const.struct.xdg_surface_
9600 6c 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 20 2e 63 6f 6e 66 69 67 listener.xs_listener.=.{..config
9620 75 72 65 20 3d 20 78 73 5f 63 66 67 20 7d 3b 00 00 00 00 00 00 00 61 73 74 61 74 69 63 20 76 6f ure.=.xs_cfg.};.......astatic.vo
9640 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f id.xt_cfg(void.*d,.struct.xdg_to
9660 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 plevel.*xt,.int32_t.w,.int32_t.h
9680 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 29 20 7b 00 00 00 32 20 20 20 20 ,.struct.wl_array.*st).{...2....
96a0 28 76 6f 69 64 29 64 3b 20 28 76 6f 69 64 29 78 74 3b 20 28 76 6f 69 64 29 77 3b 20 28 76 6f 69 (void)d;.(void)xt;.(void)w;.(voi
96c0 64 29 68 3b 20 28 76 6f 69 64 29 73 74 3b 00 00 00 01 7d 00 00 00 38 73 74 61 74 69 63 20 76 6f d)h;.(void)st;....}...8static.vo
96e0 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f id.xt_close(void.*d,.struct.xdg_
9700 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 00 00 00 0d 20 20 20 20 28 76 6f 69 64 29 78 74 3b toplevel.*xt).{........(void)xt;
9720 00 00 00 16 20 20 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 10 20 20 ........struct.app.*a.=.d;......
9740 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 63 73 74 61 74 69 63 20 63 6f ..running.=.0;....}...cstatic.co
9760 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 nst.struct.xdg_toplevel_listener
9780 20 78 74 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 20 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 .xt_listener.=.{..configure.=.xt
97a0 5f 63 66 67 2c 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 20 7d 3b 00 00 00 00 00 00 _cfg,..close.=.xt_close.};......
97c0 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 .Nstatic.void.registry_handler(v
97e0 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 oid.*data,.struct.wl_registry.*r
9800 65 67 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 eg,.uint32_t.id,...?............
9820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 .................const.char.*ifa
9840 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 19 20 20 20 20 73 74 72 75 63 ce,.uint32_t.ver).{........struc
9860 74 20 61 70 70 20 2a 61 20 3d 20 64 61 74 61 3b 00 00 00 2b 20 20 20 20 69 66 28 73 74 72 63 6d t.app.*a.=.data;...+....if(strcm
9880 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 00 p(iface,."wl_compositor").==.0).
98a0 00 00 49 20 20 20 20 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 ..I........a->comp.=.wl_registry
98c0 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e _bind(reg,.id,.&wl_compositor_in
98e0 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 29 20 20 20 20 65 6c 73 65 20 69 66 28 73 74 72 63 terface,.4);...)....else.if(strc
9900 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 20 3d 3d 20 30 29 00 00 00 41 20 20 20 mp(iface,."wl_shm").==.0)...A...
9920 20 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 .....a->shm.=.wl_registry_bind(r
9940 65 67 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 eg,.id,.&wl_shm_interface,.1);..
9960 00 30 20 20 20 20 65 6c 73 65 20 69 66 28 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 78 64 67 .0....else.if(strcmp(iface,."xdg
9980 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 45 20 20 20 20 20 20 20 20 61 2d _wm_base").==.0).{...E........a-
99a0 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 >wm.=.wl_registry_bind(reg,.id,.
99c0 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 39 20 &xdg_wm_base_interface,.1);...9.
99e0 20 20 20 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 .......xdg_wm_base_add_listener(
9a00 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 74 65 6e 65 72 2c 20 61 29 3b 00 00 00 05 20 20 20 20 a->wm,.&wm_listener,.a);........
9a20 7d 00 00 00 01 7d 00 00 00 6e 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c }....}...nstatic.const.struct.wl
9a40 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 65 6e 65 72 20 _registry_listener.reg_listener.
9a60 3d 20 7b 20 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 20 =.{..global.=.registry_handler,.
9a80 2e 67 6c 6f 62 61 6c 5f 72 65 6d 6f 76 65 20 3d 20 4e 55 4c 4c 20 7d 3b 00 00 00 00 00 00 00 2c .global_remove.=.NULL.};.......,
9aa0 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 73 74 72 75 static.void.allocate_buffer(stru
9ac0 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 10 20 20 20 20 69 66 28 61 2d 3e 62 75 66 29 20 7b ct.app.*a).{........if(a->buf).{
9ae0 00 00 00 22 20 20 20 20 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d ..."........wl_buffer_destroy(a-
9b00 3e 62 75 66 29 3b 00 00 00 2b 20 20 20 20 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 >buf);...+........munmap(a->pixe
9b20 6c 73 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 05 20 20 20 20 7d 00 00 ls,.a->w.*.a->h.*.4);........}..
9b40 00 1a 20 20 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 61 2d 3e 77 20 2a 20 34 3b 00 00 00 1d ......int.stride.=.a->w.*.4;....
9b60 20 20 20 20 69 6e 74 20 73 69 7a 65 20 3d 20 73 74 72 69 64 65 20 2a 20 61 2d 3e 68 3b 00 00 00 ....int.size.=.stride.*.a->h;...
9b80 23 20 20 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 #....int.fd.=.create_shm_file(si
9ba0 7a 65 29 3b 00 00 00 4c 20 20 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c ze);...L....a->pixels.=.mmap(NUL
9bc0 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c L,.size,.PROT_READ.|.PROT_WRITE,
9be0 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 3c 20 20 20 20 69 66 28 61 .MAP_SHARED,.fd,.0);...<....if(a
9c00 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 20 70 65 72 72 6f 72 ->pixels.==.MAP_FAILED).{.perror
9c20 28 22 6d 6d 61 70 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 44 20 20 20 20 73 74 72 75 ("mmap");.exit(1);.}...D....stru
9c40 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 ct.wl_shm_pool.*pool.=.wl_shm_cr
9c60 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 5c eate_pool(a->shm,.fd,.size);...\
9c80 20 20 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f ....a->buf.=.wl_shm_pool_create_
9ca0 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 73 74 72 69 buffer(pool,.0,.a->w,.a->h,.stri
9cc0 64 65 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1e de,.WL_SHM_FORMAT_ARGB8888);....
9ce0 20 20 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 ....wl_shm_pool_destroy(pool);..
9d00 00 0e 20 20 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 2b 20 20 20 20 77 6c 5f 73 75 72 66 61 ......close(fd);...+....wl_surfa
9d20 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 ce_attach(a->ws,.a->buf,.0,.0);.
9d40 00 00 1d 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b .......wl_surface_commit(a->ws);
9d60 00 00 00 01 7d 00 00 00 00 00 00 00 5f 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 ....}......._static.void.draw_li
9d80 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 ne(uint32_t.*px,.int.w,.int.h,.i
9da0 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 75 nt.x0,.int.y0,.int.x1,.int.y1,.u
9dc0 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 29 20 20 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 int32_t.c).{...)....int.dx.=.abs
9de0 28 78 31 2d 78 30 29 2c 20 73 78 20 3d 20 78 30 3c 78 31 3f 31 3a 2d 31 3b 00 00 00 2a 20 20 20 (x1-x0),.sx.=.x0<x1?1:-1;...*...
9e00 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 2d 79 30 29 2c 20 73 79 20 3d 20 79 30 3c 79 .int.dy.=.-abs(y1-y0),.sy.=.y0<y
9e20 31 3f 31 3a 2d 31 3b 00 00 00 1a 20 20 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 1?1:-1;........int.err.=.dx.+.dy
9e40 2c 20 65 32 3b 00 00 00 0d 20 20 20 20 77 68 69 6c 65 28 31 29 7b 00 00 00 3b 20 20 20 20 20 20 ,.e2;........while(1){...;......
9e60 20 20 69 66 28 78 30 3e 3d 30 20 26 26 20 78 30 3c 77 20 26 26 20 79 30 3e 3d 30 20 26 26 20 79 ..if(x0>=0.&&.x0<w.&&.y0>=0.&&.y
9e80 30 3c 68 29 20 70 78 5b 79 30 2a 77 2b 78 30 5d 20 3d 20 63 3b 00 00 00 23 20 20 20 20 20 20 20 0<h).px[y0*w+x0].=.c;...#.......
9ea0 20 69 66 28 78 30 3d 3d 78 31 20 26 26 20 79 30 3d 3d 79 31 29 20 62 72 65 61 6b 3b 00 00 00 13 .if(x0==x1.&&.y0==y1).break;....
9ec0 20 20 20 20 20 20 20 20 65 32 20 3d 20 32 2a 65 72 72 3b 00 00 00 27 20 20 20 20 20 20 20 20 69 ........e2.=.2*err;...'........i
9ee0 66 28 65 32 3e 3d 64 79 29 20 7b 20 65 72 72 2b 3d 64 79 3b 20 78 30 2b 3d 73 78 3b 20 7d 00 00 f(e2>=dy).{.err+=dy;.x0+=sx;.}..
9f00 00 27 20 20 20 20 20 20 20 20 69 66 28 65 32 3c 3d 64 78 29 20 7b 20 65 72 72 2b 3d 64 78 3b 20 .'........if(e2<=dx).{.err+=dx;.
9f20 79 30 2b 3d 73 79 3b 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 58 73 y0+=sy;.}........}....}.......Xs
9f40 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 tatic.void.draw_circle(uint32_t.
9f60 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 *px,.int.w,.int.h,.int.cx,.int.c
9f80 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 1a 20 20 20 20 69 y,.int.r,.uint32_t.c).{........i
9fa0 6e 74 20 78 3d 30 2c 20 79 3d 72 2c 20 64 3d 33 2d 32 2a 72 3b 00 00 00 11 20 20 20 20 77 68 69 nt.x=0,.y=r,.d=3-2*r;........whi
9fc0 6c 65 28 79 3e 3d 78 29 20 7b 00 00 00 18 20 20 20 20 20 20 20 20 69 6e 74 20 70 74 73 5b 5d 5b le(y>=x).{............int.pts[][
9fe0 32 5d 20 3d 20 7b 00 00 00 3c 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 2b 78 2c 63 79 2b 79 2].=.{...<............{cx+x,cy+y
a000 7d 2c 7b 63 78 2d 78 2c 63 79 2b 79 7d 2c 7b 63 78 2b 78 2c 63 79 2d 79 7d 2c 7b 63 78 2d 78 2c },{cx-x,cy+y},{cx+x,cy-y},{cx-x,
a020 63 79 2d 79 7d 2c 00 00 00 3b 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 2b 79 2c 63 79 2b 78 cy-y},...;............{cx+y,cy+x
a040 7d 2c 7b 63 78 2d 79 2c 63 79 2b 78 7d 2c 7b 63 78 2b 79 2c 63 79 2d 78 7d 2c 7b 63 78 2d 79 2c },{cx-y,cy+x},{cx+y,cy-x},{cx-y,
a060 63 79 2d 78 7d 00 00 00 0a 20 20 20 20 20 20 20 20 7d 3b 00 00 00 1e 20 20 20 20 20 20 20 20 66 cy-x}............};............f
a080 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c 38 3b 69 2b 2b 29 20 7b 00 00 00 2d 20 20 20 20 20 20 20 or(int.i=0;i<8;i++).{...-.......
a0a0 20 20 20 20 20 69 6e 74 20 70 78 30 3d 70 74 73 5b 69 5d 5b 30 5d 2c 20 70 79 30 3d 70 74 73 5b .....int.px0=pts[i][0],.py0=pts[
a0c0 69 5d 5b 31 5d 3b 00 00 00 43 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 70 78 30 3e 3d 30 20 i][1];...C............if(px0>=0.
a0e0 26 26 20 70 78 30 3c 77 20 26 26 20 70 79 30 3e 3d 30 20 26 26 20 70 79 30 3c 68 29 20 70 78 5b &&.px0<w.&&.py0>=0.&&.py0<h).px[
a100 70 79 30 2a 77 2b 70 78 30 5d 3d 63 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 0c 20 20 py0*w+px0]=c;............}......
a120 20 20 20 20 20 20 78 2b 2b 3b 00 00 00 3b 20 20 20 20 20 20 20 20 69 66 28 64 3e 30 29 7b 20 79 ......x++;...;........if(d>0){.y
a140 2d 2d 3b 20 64 3d 64 2b 34 2a 28 78 2d 79 29 2b 31 30 3b 20 7d 20 65 6c 73 65 20 7b 20 64 3d 64 --;.d=d+4*(x-y)+10;.}.else.{.d=d
a160 2b 34 2a 78 2b 36 3b 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 55 73 +4*x+6;.}........}....}.......Us
a180 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 72 65 63 74 28 75 69 6e 74 33 32 5f 74 20 2a 70 tatic.void.fill_rect(uint32_t.*p
a1a0 78 2c 69 6e 74 20 77 2c 69 6e 74 20 68 2c 69 6e 74 20 78 2c 69 6e 74 20 79 2c 69 6e 74 20 73 77 x,int.w,int.h,int.x,int.y,int.sw
a1c0 2c 69 6e 74 20 73 68 2c 75 69 6e 74 33 32 5f 74 20 63 29 7b 00 00 00 23 20 20 20 20 66 6f 72 28 ,int.sh,uint32_t.c){...#....for(
a1e0 69 6e 74 20 6a 3d 30 3b 6a 3c 73 68 3b 6a 2b 2b 29 20 69 66 28 79 2b 6a 3c 68 29 00 00 00 27 20 int.j=0;j<sh;j++).if(y+j<h)...'.
a200 20 20 20 20 20 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c 73 77 3b 69 2b 2b 29 20 69 66 28 .......for(int.i=0;i<sw;i++).if(
a220 78 2b 69 3c 77 29 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 70 78 5b 28 79 2b 6a 29 2a 77 x+i<w)................px[(y+j)*w
a240 2b 28 78 2b 69 29 5d 3d 63 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3b 73 74 61 74 69 63 20 76 6f +(x+i)]=c;....}.......;static.vo
a260 69 64 20 64 72 61 77 5f 63 6c 6f 63 6b 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 63 6f 6e id.draw_clock(struct.app.*a,.con
a280 73 74 20 73 74 72 75 63 74 20 74 6d 20 2a 74 6d 29 7b 00 00 00 44 20 20 20 20 70 72 69 6e 74 66 st.struct.tm.*tm){...D....printf
a2a0 28 22 5c 72 25 30 32 64 3a 25 30 32 64 3a 25 30 32 64 22 2c 20 74 6d 2d 3e 74 6d 5f 68 6f 75 72 ("\r%02d:%02d:%02d",.tm->tm_hour
a2c0 2c 20 74 6d 2d 3e 74 6d 5f 6d 69 6e 2c 20 74 6d 2d 3e 74 6d 5f 73 65 63 29 3b 00 00 00 13 20 20 ,.tm->tm_min,.tm->tm_sec);......
a2e0 20 20 66 66 6c 75 73 68 28 73 74 64 6f 75 74 29 3b 00 00 00 1d 20 20 20 20 75 69 6e 74 33 32 5f ..fflush(stdout);........uint32_
a300 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 35 20 20 20 20 66 69 6c 6c 5f 72 t.*px.=.a->pixels;...5....fill_r
a320 65 63 74 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 30 2c 30 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 30 ect(px,a->w,a->h,0,0,a->w,a->h,0
a340 78 46 46 46 46 46 46 46 46 29 3b 00 00 00 1d 20 20 20 20 69 6e 74 20 63 78 3d 61 2d 3e 77 2f 32 xFFFFFFFF);........int.cx=a->w/2
a360 2c 20 63 79 3d 61 2d 3e 68 2f 32 3b 00 00 00 25 20 20 20 20 69 6e 74 20 72 3d 28 61 2d 3e 77 3c ,.cy=a->h/2;...%....int.r=(a->w<
a380 61 2d 3e 68 3f 61 2d 3e 77 3a 61 2d 3e 68 29 2f 32 2d 31 30 3b 00 00 00 31 20 20 20 20 64 72 61 a->h?a->w:a->h)/2-10;...1....dra
a3a0 77 5f 63 69 72 63 6c 65 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 63 78 2c 63 79 2c 72 2c 30 78 w_circle(px,a->w,a->h,cx,cy,r,0x
a3c0 46 46 30 30 30 30 30 30 29 3b 00 00 00 1a 20 20 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c FF000000);........for(int.i=0;i<
a3e0 31 32 3b 69 2b 2b 29 7b 00 00 00 2a 20 20 20 20 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 3d 69 12;i++){...*........double.ang=i
a400 2f 31 32 2e 30 2a 32 2a 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 2b 20 20 20 20 20 20 /12.0*2*M_PI.-.M_PI_2;...+......
a420 20 20 69 6e 74 20 78 31 3d 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 2a 28 72 2d ..int.x1=cx.+.(int)(cos(ang)*(r-
a440 31 30 29 29 3b 00 00 00 2b 20 20 20 20 20 20 20 20 69 6e 74 20 79 31 3d 63 79 20 2b 20 28 69 6e 10));...+........int.y1=cy.+.(in
a460 74 29 28 73 69 6e 28 61 6e 67 29 2a 28 72 2d 31 30 29 29 3b 00 00 00 2a 20 20 20 20 20 20 20 20 t)(sin(ang)*(r-10));...*........
a480 69 6e 74 20 78 32 3d 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 2a 28 72 2d 32 29 int.x2=cx.+.(int)(cos(ang)*(r-2)
a4a0 29 3b 00 00 00 2a 20 20 20 20 20 20 20 20 69 6e 74 20 79 32 3d 63 79 20 2b 20 28 69 6e 74 29 28 );...*........int.y2=cy.+.(int)(
a4c0 73 69 6e 28 61 6e 67 29 2a 28 72 2d 32 29 29 3b 00 00 00 37 20 20 20 20 20 20 20 20 64 72 61 77 sin(ang)*(r-2));...7........draw
a4e0 5f 6c 69 6e 65 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 78 31 2c 79 31 2c 78 32 2c 79 32 2c 30 _line(px,a->w,a->h,x1,y1,x2,y2,0
a500 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1c 20 20 20 20 64 6f 75 62 xFF000000);........}........doub
a520 6c 65 20 73 65 63 20 3d 20 74 6d 2d 3e 74 6d 5f 73 65 63 3b 00 00 00 27 20 20 20 20 64 6f 75 62 le.sec.=.tm->tm_sec;...'....doub
a540 6c 65 20 6d 69 6e 20 3d 20 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2b 20 73 65 63 2f 36 30 2e 30 3b 00 le.min.=.tm->tm_min.+.sec/60.0;.
a560 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 68 6f 75 72 20 3d 20 28 74 6d 2d 3e 74 6d 5f 68 6f 75 .......double.hour.=.(tm->tm_hou
a580 72 25 31 32 29 20 2b 20 6d 69 6e 2f 36 30 2e 30 3b 00 00 00 29 20 20 20 20 64 6f 75 62 6c 65 20 r%12).+.min/60.0;...)....double.
a5a0 73 61 20 3d 20 73 65 63 2f 36 30 2e 30 2a 32 2a 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 sa.=.sec/60.0*2*M_PI.-.M_PI_2;..
a5c0 00 29 20 20 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 6d 69 6e 2f 36 30 2e 30 2a 32 2a 4d 5f 50 .)....double.ma.=.min/60.0*2*M_P
a5e0 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 2a 20 20 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 68 I.-.M_PI_2;...*....double.ha.=.h
a600 6f 75 72 2f 31 32 2e 30 2a 32 2a 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 5f 20 20 20 our/12.0*2*M_PI.-.M_PI_2;..._...
a620 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 63 78 2c 63 79 2c 63 78 .draw_line(px,a->w,a->h,cx,cy,cx
a640 2b 28 69 6e 74 29 28 63 6f 73 28 68 61 29 2a 72 2a 30 2e 35 35 29 2c 63 79 2b 28 69 6e 74 29 28 +(int)(cos(ha)*r*0.55),cy+(int)(
a660 73 69 6e 28 68 61 29 2a 72 2a 30 2e 35 35 29 2c 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 5d sin(ha)*r*0.55),0xFF000000);...]
a680 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 63 78 2c 63 79 ....draw_line(px,a->w,a->h,cx,cy
a6a0 2c 63 78 2b 28 69 6e 74 29 28 63 6f 73 28 6d 61 29 2a 72 2a 30 2e 38 29 2c 63 79 2b 28 69 6e 74 ,cx+(int)(cos(ma)*r*0.8),cy+(int
a6c0 29 28 73 69 6e 28 6d 61 29 2a 72 2a 30 2e 38 29 2c 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 )(sin(ma)*r*0.8),0xFF000000);...
a6e0 5d 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 63 78 2c 63 ]....draw_line(px,a->w,a->h,cx,c
a700 79 2c 63 78 2b 28 69 6e 74 29 28 63 6f 73 28 73 61 29 2a 72 2a 30 2e 39 29 2c 63 79 2b 28 69 6e y,cx+(int)(cos(sa)*r*0.9),cy+(in
a720 74 29 28 73 69 6e 28 73 61 29 2a 72 2a 30 2e 39 29 2c 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 t)(sin(sa)*r*0.9),0xFFFF0000);..
a740 00 31 20 20 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 63 .1....draw_circle(px,a->w,a->h,c
a760 78 2c 63 79 2c 33 2c 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 28 20 20 20 20 77 6c 5f 73 75 x,cy,3,0xFF000000);...(....wl_su
a780 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 61 2d 3e 62 75 66 2c 30 2c 30 29 3b 00 rface_attach(a->ws,a->buf,0,0);.
a7a0 00 00 1d 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b .......wl_surface_commit(a->ws);
a7c0 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 66 72 61 6d 65 5f 64 ....}.......Gstatic.void.frame_d
a7e0 6f 6e 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 63 61 6c 6c 62 61 one(void.*data,.struct.wl_callba
a800 63 6b 20 2a 63 62 2c 20 75 69 6e 74 33 32 5f 74 20 74 29 7b 00 00 00 19 20 20 20 20 73 74 72 75 ck.*cb,.uint32_t.t){........stru
a820 63 74 20 61 70 70 20 2a 61 20 3d 20 64 61 74 61 3b 00 00 00 1c 20 20 20 20 77 6c 5f 63 61 6c 6c ct.app.*a.=.data;........wl_call
a840 62 61 63 6b 5f 64 65 73 74 72 6f 79 28 63 62 29 3b 00 00 00 15 20 20 20 20 61 2d 3e 66 72 61 6d back_destroy(cb);........a->fram
a860 65 5f 63 62 3d 4e 55 4c 4c 3b 00 00 00 1b 20 20 20 20 61 2d 3e 66 72 61 6d 65 5f 70 65 6e 64 69 e_cb=NULL;........a->frame_pendi
a880 6e 67 3d 66 61 6c 73 65 3b 00 00 00 7d 20 20 20 20 69 66 28 61 2d 3e 64 72 61 77 5f 70 65 6e 64 ng=false;...}....if(a->draw_pend
a8a0 69 6e 67 29 7b 20 61 2d 3e 64 72 61 77 5f 70 65 6e 64 69 6e 67 3d 66 61 6c 73 65 3b 20 74 69 6d ing){.a->draw_pending=false;.tim
a8c0 65 5f 74 20 74 74 3d 74 69 6d 65 28 4e 55 4c 4c 29 3b 20 73 74 72 75 63 74 20 74 6d 20 74 6d 3b e_t.tt=time(NULL);.struct.tm.tm;
a8e0 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 26 74 6d 29 3b 20 64 72 61 77 5f 63 6c 6f 63 .localtime_r(&tt,&tm);.draw_cloc
a900 6b 28 61 2c 26 74 6d 29 3b 7d 00 00 00 01 7d 00 00 00 4d 73 74 61 74 69 63 20 63 6f 6e 73 74 20 k(a,&tm);}....}...Mstatic.const.
a920 73 74 72 75 63 74 20 77 6c 5f 63 61 6c 6c 62 61 63 6b 5f 6c 69 73 74 65 6e 65 72 20 66 72 61 6d struct.wl_callback_listener.fram
a940 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 64 6f 6e 65 3d 66 72 61 6d 65 5f 64 6f 6e 65 7d 3b e_listener.=.{.done=frame_done};
a960 00 00 00 00 00 00 00 2a 73 74 61 74 69 63 20 76 6f 69 64 20 73 63 68 65 64 75 6c 65 5f 66 72 61 .......*static.void.schedule_fra
a980 6d 65 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 7b 00 00 00 39 20 20 20 20 69 66 28 61 2d 3e me(struct.app.*a){...9....if(a->
a9a0 66 72 61 6d 65 5f 70 65 6e 64 69 6e 67 29 7b 20 61 2d 3e 64 72 61 77 5f 70 65 6e 64 69 6e 67 3d frame_pending){.a->draw_pending=
a9c0 74 72 75 65 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 28 20 20 20 20 61 2d 3e 66 72 61 6d 65 5f true;.return;.}...(....a->frame_
a9e0 63 62 3d 77 6c 5f 73 75 72 66 61 63 65 5f 66 72 61 6d 65 28 61 2d 3e 77 73 29 3b 00 00 00 3c 20 cb=wl_surface_frame(a->ws);...<.
aa00 20 20 20 77 6c 5f 63 61 6c 6c 62 61 63 6b 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 66 ...wl_callback_add_listener(a->f
aa20 72 61 6d 65 5f 63 62 2c 26 66 72 61 6d 65 5f 6c 69 73 74 65 6e 65 72 2c 61 29 3b 00 00 00 1a 20 rame_cb,&frame_listener,a);.....
aa40 20 20 20 61 2d 3e 66 72 61 6d 65 5f 70 65 6e 64 69 6e 67 3d 74 72 75 65 3b 00 00 00 01 7d 00 00 ...a->frame_pending=true;....}..
aa60 00 00 00 00 00 0f 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 7b 00 00 00 15 20 20 20 20 73 74 72 ......int.main(void){........str
aa80 75 63 74 20 61 70 70 20 61 3d 7b 30 7d 3b 00 00 00 15 20 20 20 20 61 2e 77 3d 34 30 30 3b 20 61 uct.app.a={0};........a.w=400;.a
aaa0 2e 68 3d 34 30 30 3b 00 00 00 1a 20 20 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 6f 6e 5f .h=400;........signal(SIGINT,on_
aac0 73 69 67 29 3b 00 00 00 1b 20 20 20 20 73 69 67 6e 61 6c 28 53 49 47 54 45 52 4d 2c 6f 6e 5f 73 sig);........signal(SIGTERM,on_s
aae0 69 67 29 3b 00 00 00 00 00 00 00 31 20 20 20 20 69 66 28 21 28 61 2e 64 3d 77 6c 5f 64 69 73 70 ig);.......1....if(!(a.d=wl_disp
ab00 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 29 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 lay_connect(NULL))).return.1;...
ab20 27 20 20 20 20 61 2e 72 65 67 3d 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 '....a.reg=wl_display_get_regist
ab40 72 79 28 61 2e 64 29 3b 00 00 00 35 20 20 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f ry(a.d);...5....wl_registry_add_
ab60 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 26 72 65 67 5f 6c 69 73 74 65 6e 65 72 2c 26 61 29 listener(a.reg,&reg_listener,&a)
ab80 3b 00 00 00 1e 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e ;........wl_display_roundtrip(a.
aba0 64 29 3b 00 00 00 2c 20 20 20 20 69 66 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 d);...,....if(!a.comp.||.!a.shm.
abc0 7c 7c 20 21 61 2e 77 6d 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 00 00 00 00 2e 20 20 20 20 61 ||.!a.wm).return.1;............a
abe0 2e 77 73 3d 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 .ws=wl_compositor_create_surface
ac00 28 61 2e 63 6f 6d 70 29 3b 00 00 00 30 20 20 20 20 61 2e 78 73 3d 78 64 67 5f 77 6d 5f 62 61 73 (a.comp);...0....a.xs=xdg_wm_bas
ac20 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 61 2e 77 73 29 3b 00 00 00 e_get_xdg_surface(a.wm,a.ws);...
ac40 33 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 3....xdg_surface_add_listener(a.
ac60 78 73 2c 26 78 73 5f 6c 69 73 74 65 6e 65 72 2c 26 61 29 3b 00 00 00 28 20 20 20 20 61 2e 78 74 xs,&xs_listener,&a);...(....a.xt
ac80 3d 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b =xdg_surface_get_toplevel(a.xs);
aca0 00 00 00 34 20 20 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 ...4....xdg_toplevel_add_listene
acc0 72 28 61 2e 78 74 2c 26 78 74 5f 6c 69 73 74 65 6e 65 72 2c 26 61 29 3b 00 00 00 2b 20 20 20 20 r(a.xt,&xt_listener,&a);...+....
ace0 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 22 77 6c 63 xdg_toplevel_set_title(a.xt,"wlc
ad00 6c 6f 63 6b 22 29 3b 00 00 00 1c 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 lock");........wl_surface_commit
ad20 28 61 2e 77 73 29 3b 00 00 00 1e 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 (a.ws);........wl_display_roundt
ad40 72 69 70 28 61 2e 64 29 3b 00 00 00 00 00 00 00 18 20 20 20 20 61 6c 6c 6f 63 61 74 65 5f 62 75 rip(a.d);............allocate_bu
ad60 66 66 65 72 28 26 61 29 3b 00 00 00 00 00 00 00 38 20 20 20 20 69 6e 74 20 74 66 64 3d 74 69 6d ffer(&a);.......8....int.tfd=tim
ad80 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 54 46 44 5f erfd_create(CLOCK_MONOTONIC,TFD_
ada0 43 4c 4f 45 58 45 43 29 3b 00 00 00 2e 20 20 20 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 CLOEXEC);........struct.itimersp
adc0 65 63 20 69 74 73 3d 7b 7b 30 2c 31 30 30 30 30 30 30 7d 2c 7b 31 2c 30 7d 7d 3b 00 00 00 25 20 ec.its={{0,1000000},{1,0}};...%.
ade0 20 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 30 2c 26 69 74 73 2c 4e 55 ...timerfd_settime(tfd,0,&its,NU
ae00 4c 4c 29 3b 00 00 00 00 00 00 00 13 20 20 20 20 77 68 69 6c 65 28 72 75 6e 6e 69 6e 67 29 7b 00 LL);............while(running){.
ae20 00 00 29 20 20 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 ..)........wl_display_dispatch_p
ae40 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 3b 20 20 20 20 20 20 20 20 69 66 28 77 6c 5f 64 69 ending(a.d);...;........if(wl_di
ae60 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3c 30 20 26 26 20 65 72 72 6e 6f 21 3d 45 41 47 splay_flush(a.d)<0.&&.errno!=EAG
ae80 41 49 4e 29 20 62 72 65 61 6b 3b 00 00 00 65 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 70 6f AIN).break;...e........struct.po
aea0 6c 6c 66 64 20 70 66 64 73 5b 32 5d 3d 7b 7b 2e 66 64 3d 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 llfd.pfds[2]={{.fd=wl_display_ge
aec0 74 5f 66 64 28 61 2e 64 29 2c 2e 65 76 65 6e 74 73 3d 50 4f 4c 4c 49 4e 7d 2c 7b 2e 66 64 3d 74 t_fd(a.d),.events=POLLIN},{.fd=t
aee0 66 64 2c 2e 65 76 65 6e 74 73 3d 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 18 20 20 20 20 20 20 20 20 fd,.events=POLLIN}};............
af00 70 6f 6c 6c 28 70 66 64 73 2c 32 2c 2d 31 29 3b 00 00 00 3c 20 20 20 20 20 20 20 20 69 66 28 70 poll(pfds,2,-1);...<........if(p
af20 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 26 50 4f 4c 4c 49 4e 29 20 77 6c 5f 64 69 73 70 6c 61 fds[0].revents&POLLIN).wl_displa
af40 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 23 20 20 20 20 20 20 20 20 69 66 28 70 y_dispatch(a.d);...#........if(p
af60 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 26 50 4f 4c 4c 49 4e 29 7b 00 00 00 1b 20 20 20 20 20 fds[1].revents&POLLIN){.........
af80 20 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b 00 00 00 30 20 20 20 20 20 20 .......uint64_t.ticks;...0......
afa0 20 20 20 20 20 20 69 66 28 72 65 61 64 28 74 66 64 2c 26 74 69 63 6b 73 2c 73 69 7a 65 6f 66 20 ......if(read(tfd,&ticks,sizeof.
afc0 74 69 63 6b 73 29 3e 30 29 7b 00 00 00 49 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 69 ticks)>0){...I................ti
afe0 6d 65 5f 74 20 74 74 3d 74 69 6d 65 28 4e 55 4c 4c 29 3b 20 73 74 72 75 63 74 20 74 6d 20 74 6d me_t.tt=time(NULL);.struct.tm.tm
b000 3b 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 26 74 6d 29 3b 00 00 00 23 20 20 20 20 20 ;.localtime_r(&tt,&tm);...#.....
b020 20 20 20 20 20 20 20 20 20 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 26 61 2c 26 74 6d 29 3b 00 00 ...........draw_clock(&a,&tm);..
b040 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 05 ..............}............}....
b060 20 20 20 20 7d 00 00 00 00 00 00 00 27 20 20 20 20 69 66 28 61 2e 62 75 66 29 20 77 6c 5f 62 75 ....}.......'....if(a.buf).wl_bu
b080 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2e 62 75 66 29 3b 00 00 00 26 20 20 20 20 69 66 28 61 ffer_destroy(a.buf);...&....if(a
b0a0 2e 77 73 29 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 6f 79 28 61 2e 77 73 29 3b 00 00 .ws).wl_surface_destroy(a.ws);..
b0c0 00 28 20 20 20 20 69 66 28 61 2e 78 74 29 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 64 65 73 74 .(....if(a.xt).xdg_toplevel_dest
b0e0 72 6f 79 28 61 2e 78 74 29 3b 00 00 00 27 20 20 20 20 69 66 28 61 2e 78 73 29 20 78 64 67 5f 73 roy(a.xt);...'....if(a.xs).xdg_s
b100 75 72 66 61 63 65 5f 64 65 73 74 72 6f 79 28 61 2e 78 73 29 3b 00 00 00 27 20 20 20 20 69 66 28 urface_destroy(a.xs);...'....if(
b120 61 2e 77 6d 29 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 64 65 73 74 72 6f 79 28 61 2e 77 6d 29 3b a.wm).xdg_wm_base_destroy(a.wm);
b140 00 00 00 2d 20 20 20 20 69 66 28 61 2e 63 6f 6d 70 29 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 ...-....if(a.comp).wl_compositor
b160 5f 64 65 73 74 72 6f 79 28 61 2e 63 6f 6d 70 29 3b 00 00 00 27 20 20 20 20 69 66 28 61 2e 64 29 _destroy(a.comp);...'....if(a.d)
b180 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 00 .wl_display_disconnect(a.d);....
b1a0 00 00 00 0d 20 20 20 20 70 75 74 73 28 22 22 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 ........puts("");........return.
b1c0 30 3b 35 81 f5 18 00 00 00 00 02 00 00 00 09 00 00 00 f0 00 00 00 02 00 00 00 31 01 00 00 00 00 0;5.......................1.....
b1e0 00 00 2a 00 00 00 00 00 00 00 d7 1f 00 00 00 00 00 00 0d 22 00 00 00 00 00 00 35 81 5f d0 00 00 ..*................"......5._...
b200 00 0b 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ................................
b220 ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b380 69 9d 92 08 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 35 00 00 00 i...........................5...
b3a0 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c .#define._POSIX_C_SOURCE.200809L
b3c0 00 00 00 00 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 .......&#include."xdg-shell-clie
b3e0 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e nt-protocol.h"....#include.<errn
b400 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 o.h>....#include.<fcntl.h>....#i
b420 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c nclude.<math.h>....#include.<pol
b440 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 l.h>....#include.<signal.h>....#
b460 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 include.<stdbool.h>....#include.
b480 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e <stdio.h>....#include.<stdlib.h>
b4a0 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c ....#include.<string.h>....#incl
b4c0 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 ude.<sys/mman.h>....#include.<ti
b4e0 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b me.h>....#include.<unistd.h>....
b500 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 #include.<wayland-client.h>.....
b520 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 ...#ifndef.M_PI...##define.M_PI.
b540 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 3.14159265358979323846....#endif
b560 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f ....#ifndef.M_PI_2...%#define.M_
b580 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 PI_2.1.57079632679489661923....#
b5a0 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 endif.......)static.volatile.sig
b5c0 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 _atomic_t.running.=.1;....static
b5e0 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 .void.on_sig(int.s).{......(void
b600 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 )s;......running.=.0;....}......
b620 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 ..struct.app.{......struct.wl_di
b640 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 splay.*d;......struct.wl_registr
b660 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f y.*reg;......struct.wl_composito
b680 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d r.*comp;......struct.wl_shm.*shm
b6a0 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 ;......struct.xdg_wm_base.*wm;..
b6c0 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 ....struct.wl_surface.*ws;......
b6e0 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 struct.xdg_surface.*xs;......str
b700 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 1f 20 20 73 74 72 75 63 uct.xdg_toplevel.*xt;......struc
b720 74 20 77 6c 5f 63 61 6c 6c 62 61 63 6b 20 2a 66 72 61 6d 65 5f 63 62 3b 00 00 00 0f 20 20 76 6f t.wl_callback.*frame_cb;......vo
b740 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 id.*pixels;......struct.wl_buffe
b760 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 12 20 20 62 6f 6f 6c r.*buf;......int.w,.h;......bool
b780 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 15 20 20 62 6f 6f 6c 20 66 72 61 6d 65 5f 70 65 6e .configured;......bool.frame_pen
b7a0 64 69 6e 67 3b 00 00 00 14 20 20 62 6f 6f 6c 20 64 72 61 77 5f 70 65 6e 64 69 6e 67 3b 00 00 00 ding;......bool.draw_pending;...
b7c0 02 7d 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d .};.......)static.int.create_shm
b7e0 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 _file(size_t.size).{......char.t
b800 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 73 68 6d 2d 58 58 emplate[].=."/tmp/wlclock-shm-XX
b820 58 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d XXXX";......int.fd.=.mkstemp(tem
b840 70 6c 61 74 65 29 3b 00 00 00 0f 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 00 00 00 16 20 20 plate);......if.(fd.<.0).{......
b860 20 20 70 65 72 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 ..perror("mkstemp");........exit
b880 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 (1);......}......unlink(template
b8a0 29 3b 00 00 00 20 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 );......if.(ftruncate(fd,.size).
b8c0 3c 20 30 29 20 7b 00 00 00 18 20 20 20 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 <.0).{........perror("ftruncate"
b8e0 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 );........exit(1);......}......r
b900 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 42 73 74 61 74 69 63 20 76 6f 69 eturn.fd;....}.......Bstatic.voi
b920 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d d.wm_ping(void.*d,.struct.xdg_wm
b940 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 _base.*wm,.uint32_t.s).{......(v
b960 6f 69 64 29 64 3b 00 00 00 1a 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c oid)d;......xdg_wm_base_pong(wm,
b980 20 73 29 3b 00 00 00 01 7d 00 00 00 49 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 .s);....}...Istatic.const.struct
b9a0 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 65 6e 65 .xdg_wm_base_listener.wm_listene
b9c0 72 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 00 41 73 74 r.=.{.ping.=.wm_ping};.......Ast
b9e0 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 atic.void.xs_cfg(void.*d,.struct
ba00 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 .xdg_surface.*xs,.uint32_t.s).{.
ba20 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 23 20 20 78 64 67 .....struct.app.*a.=.d;...#..xdg
ba40 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 29 3b 00 00 _surface_ack_configure(xs,.s);..
ba60 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 19 20 20 61 ....a->configured.=.true;......a
ba80 2d 3e 64 72 61 77 5f 70 65 6e 64 69 6e 67 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 4d 73 ->draw_pending.=.true;....}...Ms
baa0 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c tatic.const.struct.xdg_surface_l
bac0 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 istener.xs_listener.=.{.configur
bae0 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 e.=.xs_cfg};.......Jstatic.void.
bb00 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 xt_cfg(void.*d,.struct.xdg_tople
bb20 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 vel.*xt,.int32_t.w,.int32_t.h,..
bb40 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 .)...................struct.wl_a
bb60 72 72 61 79 20 2a 73 74 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 64 3b 00 00 00 0b 20 20 28 rray.*st).{......(void)d;......(
bb80 76 6f 69 64 29 78 74 3b 00 00 00 0a 20 20 28 76 6f 69 64 29 77 3b 00 00 00 0a 20 20 28 76 6f 69 void)xt;......(void)w;......(voi
bba0 64 29 68 3b 00 00 00 0b 20 20 28 76 6f 69 64 29 73 74 3b 00 00 00 01 7d 00 00 00 38 73 74 61 74 d)h;......(void)st;....}...8stat
bbc0 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 ic.void.xt_close(void.*d,.struct
bbe0 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 00 00 00 0b 20 20 28 76 6f 69 64 29 .xdg_toplevel.*xt).{......(void)
bc00 78 74 3b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 0e 20 xt;......struct.app.*a.=.d;.....
bc20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 4d 73 74 61 74 69 63 20 63 6f 6e .running.=.0;....}...Mstatic.con
bc40 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 st.struct.xdg_toplevel_listener.
bc60 78 74 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 xt_listener.=.{.configure.=.xt_c
bc80 66 67 2c 00 00 00 4c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 fg,...L.........................
bca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
bcc0 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 4e 73 74 61 74 69 .close.=.xt_close};.......Nstati
bce0 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 c.void.registry_handler(void.*da
bd00 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 2c 20 75 69 6e ta,.struct.wl_registry.*reg,.uin
bd20 74 33 32 5f 74 20 69 64 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t32_t.id,...?...................
bd40 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 20 75 69 6e ..........const.char.*iface,.uin
bd60 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 t32_t.ver).{......struct.app.*a.
bd80 3d 20 64 61 74 61 3b 00 00 00 2a 20 20 69 66 20 28 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 =.data;...*..if.(strcmp(iface,."
bda0 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 00 00 00 45 20 20 20 20 61 2d 3e wl_compositor").==.0)...E....a->
bdc0 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c comp.=.wl_registry_bind(reg,.id,
bde0 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 .&wl_compositor_interface,.4);..
be00 00 28 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 .(..else.if.(strcmp(iface,."wl_s
be20 68 6d 22 29 20 3d 3d 20 30 29 00 00 00 3d 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 hm").==.0)...=....a->shm.=.wl_re
be40 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 gistry_bind(reg,.id,.&wl_shm_int
be60 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 2f 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 erface,.1);.../..else.if.(strcmp
be80 28 69 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 7b 00 00 (iface,."xdg_wm_base").==.0).{..
bea0 00 41 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 .A....a->wm.=.wl_registry_bind(r
bec0 65 67 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 eg,.id,.&xdg_wm_base_interface,.
bee0 31 29 3b 00 00 00 35 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 1);...5....xdg_wm_base_add_liste
bf00 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 74 65 6e 65 72 2c 20 61 29 3b 00 00 00 03 ner(a->wm,.&wm_listener,.a);....
bf20 20 20 7d 00 00 00 01 7d 00 00 00 39 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 ..}....}...9static.const.struct.
bf40 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 65 6e 65 wl_registry_listener.reg_listene
bf60 72 20 3d 20 7b 00 00 00 37 20 20 20 20 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 69 73 74 72 79 5f r.=.{...7.....global.=.registry_
bf80 68 61 6e 64 6c 65 72 2c 20 2e 67 6c 6f 62 61 6c 5f 72 65 6d 6f 76 65 20 3d 20 4e 55 4c 4c 7d 3b handler,..global_remove.=.NULL};
bfa0 00 00 00 00 00 00 00 2c 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 .......,static.void.allocate_buf
bfc0 66 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0f 20 20 69 66 20 28 61 2d fer(struct.app.*a).{......if.(a-
bfe0 3e 62 75 66 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 >buf).{........wl_buffer_destroy
c000 28 61 2d 3e 62 75 66 29 3b 00 00 00 27 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c (a->buf);...'....munmap(a->pixel
c020 73 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 03 20 20 7d 00 00 00 18 20 s,.a->w.*.a->h.*.4);......}.....
c040 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 61 2d 3e 77 20 2a 20 34 3b 00 00 00 1b 20 20 69 6e 74 .int.stride.=.a->w.*.4;......int
c060 20 73 69 7a 65 20 3d 20 73 74 72 69 64 65 20 2a 20 61 2d 3e 68 3b 00 00 00 21 20 20 69 6e 74 20 .size.=.stride.*.a->h;...!..int.
c080 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4a 20 fd.=.create_shm_file(size);...J.
c0a0 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 .a->pixels.=.mmap(NULL,.size,.PR
c0c0 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 OT_READ.|.PROT_WRITE,.MAP_SHARED
c0e0 2c 20 66 64 2c 20 30 29 3b 00 00 00 20 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 ,.fd,.0);......if.(a->pixels.==.
c100 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 00 13 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6d 61 MAP_FAILED).{........perror("mma
c120 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 42 20 p");........exit(1);......}...B.
c140 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 .struct.wl_shm_pool.*pool.=.wl_s
c160 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 hm_create_pool(a->shm,.fd,.size)
c180 3b 00 00 00 41 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 ;...A..a->buf.=.wl_shm_pool_crea
c1a0 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 73 te_buffer(pool,.0,.a->w,.a->h,.s
c1c0 74 72 69 64 65 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tride,...=......................
c1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 ...............WL_SHM_FORMAT_ARG
c200 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 B8888);......wl_shm_pool_destroy
c220 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 29 20 20 77 6c 5f (pool);......close(fd);...)..wl_
c240 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c surface_attach(a->ws,.a->buf,.0,
c260 20 30 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 .0);......wl_surface_commit(a->w
c280 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 s);....}.......Istatic.void.draw
c2a0 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 _line(uint32_t.*px,.int.w,.int.h
c2c0 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 00 00 00 2b 20 20 20 ,.int.x0,.int.y0,.int.x1,...+...
c2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 ...................int.y1,.uint3
c300 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 2_t.c).{.../..int.dx.=.abs(x1.-.
c320 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 x0),.sx.=.x0.<.x1.?.1.:.-1;...0.
c340 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 .int.dy.=.-abs(y1.-.y0),.sy.=.y0
c360 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 3d 20 64 .<.y1.?.1.:.-1;......int.err.=.d
c380 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 2f x.+.dy,.e2;......while.(1).{.../
c3a0 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 ....if.(x0.>=.0.&&.x0.<.w.&&.y0.
c3c0 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 1a 20 20 20 20 20 20 70 78 5b 79 30 20 2a >=.0.&&.y0.<.h)..........px[y0.*
c3e0 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 .w.+.x0].=.c;........if.(x0.==.x
c400 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 1.&&.y0.==.y1)..........break;..
c420 00 11 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 ......e2.=.2.*.err;........if.(e
c440 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 2.>=.dy).{..........err.+=.dy;..
c460 00 0f 20 20 20 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 ........x0.+=.sx;........}......
c480 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b ..if.(e2.<=.dx).{..........err.+
c4a0 3d 20 64 78 3b 00 00 00 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 =.dx;..........y0.+=.sy;........
c4c0 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 }......}....}.......Jstatic.void
c4e0 20 64 72 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 .draw_circle(uint32_t.*px,.int.w
c500 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 ,.int.h,.int.cx,.int.cy,.int.r,.
c520 00 00 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 ..%........................uint3
c540 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 2_t.c).{..."..int.x.=.0,.y.=.r,.
c560 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 d.=.3.-.2.*.r;......while.(y.>=.
c580 78 29 20 7b 00 00 00 49 20 20 20 20 69 6e 74 20 70 74 73 5b 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 x).{...I....int.pts[][2].=.{{cx.
c5a0 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 +.x,.cy.+.y},.{cx.-.x,.cy.+.y},.
c5c0 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 49 20 20 20 20 20 20 20 20 20 20 20 {cx.+.x,.cy.-.y},...I...........
c5e0 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b .........{cx.-.x,.cy.-.y},.{cx.+
c600 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 .y,.cy.+.x},.{cx.-.y,.cy.+.x},..
c620 00 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 .8....................{cx.+.y,.c
c640 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 21 20 20 y.-.x},.{cx.-.y,.cy.-.x}};...!..
c660 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 20 7b 00 ..for.(int.i.=.0;.i.<.8;.i++).{.
c680 00 00 2b 20 20 20 20 20 20 69 6e 74 20 70 78 30 20 3d 20 70 74 73 5b 69 5d 5b 30 5d 2c 20 70 79 ..+......int.px0.=.pts[i][0],.py
c6a0 30 20 3d 20 70 74 73 5b 69 5d 5b 31 5d 3b 00 00 00 35 20 20 20 20 20 20 69 66 20 28 70 78 30 20 0.=.pts[i][1];...5......if.(px0.
c6c0 3e 3d 20 30 20 26 26 20 70 78 30 20 3c 20 77 20 26 26 20 70 79 30 20 3e 3d 20 30 20 26 26 20 70 >=.0.&&.px0.<.w.&&.py0.>=.0.&&.p
c6e0 79 30 20 3c 20 68 29 00 00 00 1e 20 20 20 20 20 20 20 20 70 78 5b 70 79 30 20 2a 20 77 20 2b 20 y0.<.h)............px[py0.*.w.+.
c700 70 78 30 5d 20 3d 20 63 3b 00 00 00 05 20 20 20 20 7d 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 px0].=.c;........}........x++;..
c720 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b ......if.(d.>.0).{..........y--;
c740 00 00 00 1f 20 20 20 20 20 20 64 20 3d 20 64 20 2b 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 ..........d.=.d.+.4.*.(x.-.y).+.
c760 31 30 3b 00 00 00 0c 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 18 20 20 20 20 20 20 64 20 3d 10;........}.else.{..........d.=
c780 20 64 20 2b 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 .d.+.4.*.x.+.6;........}......}.
c7a0 00 00 01 7d 00 00 00 00 00 00 00 4f 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 72 65 63 ...}.......Ostatic.void.fill_rec
c7c0 74 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e t(uint32_t.*px,.int.w,.int.h,.in
c7e0 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 73 77 2c 20 69 6e 74 20 73 68 2c 00 00 00 23 20 t.x,.int.y,.int.sw,.int.sh,...#.
c800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 .....................uint32_t.c)
c820 20 7b 00 00 00 1e 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 30 3b 20 6a 20 3c 20 73 68 3b 20 .{......for.(int.j.=.0;.j.<.sh;.
c840 6a 2b 2b 29 00 00 00 12 20 20 20 20 69 66 20 28 79 20 2b 20 6a 20 3c 20 68 29 00 00 00 22 20 20 j++)........if.(y.+.j.<.h)..."..
c860 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 73 77 3b 20 69 2b 2b 29 ....for.(int.i.=.0;.i.<.sw;.i++)
c880 00 00 00 16 20 20 20 20 20 20 20 20 69 66 20 28 78 20 2b 20 69 20 3c 20 77 29 00 00 00 28 20 20 ............if.(x.+.i.<.w)...(..
c8a0 20 20 20 20 20 20 20 20 70 78 5b 28 79 20 2b 20 6a 29 20 2a 20 77 20 2b 20 28 78 20 2b 20 69 29 ........px[(y.+.j).*.w.+.(x.+.i)
c8c0 5d 20 3d 20 63 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3c 73 74 61 74 69 63 20 76 6f 69 64 20 64 ].=.c;....}.......<static.void.d
c8e0 72 61 77 5f 63 6c 6f 63 6b 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 63 6f 6e 73 74 20 73 raw_clock(struct.app.*a,.const.s
c900 74 72 75 63 74 20 74 6d 20 2a 74 6d 29 20 7b 00 00 00 42 20 20 70 72 69 6e 74 66 28 22 5c 72 25 truct.tm.*tm).{...B..printf("\r%
c920 30 32 64 3a 25 30 32 64 3a 25 30 32 64 22 2c 20 74 6d 2d 3e 74 6d 5f 68 6f 75 72 2c 20 74 6d 2d 02d:%02d:%02d",.tm->tm_hour,.tm-
c940 3e 74 6d 5f 6d 69 6e 2c 20 74 6d 2d 3e 74 6d 5f 73 65 63 29 3b 00 00 00 11 20 20 66 66 6c 75 73 >tm_min,.tm->tm_sec);......fflus
c960 68 28 73 74 64 6f 75 74 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 h(stdout);......uint32_t.*px.=.a
c980 2d 3e 70 69 78 65 6c 73 3b 00 00 00 3a 20 20 66 69 6c 6c 5f 72 65 63 74 28 70 78 2c 20 61 2d 3e ->pixels;...:..fill_rect(px,.a->
c9a0 77 2c 20 61 2d 3e 68 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 30 78 46 46 46 w,.a->h,.0,.0,.a->w,.a->h,.0xFFF
c9c0 46 46 46 46 46 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 FFFFF);...#..int.cx.=.a->w./.2,.
c9e0 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e cy.=.a->h./.2;.../..int.r.=.(a->
ca00 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 w.<.a->h.?.a->w.:.a->h)./.2.-.10
ca20 3b 00 00 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e ;...5..draw_circle(px,.a->w,.a->
ca40 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 20 20 20 h,.cx,.cy,.r,.0xFF000000);......
ca60 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 for.(int.i.=.0;.i.<.12;.i++).{..
ca80 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 31 32 2e 30 20 2a 20 32 20 ......double.ang.=.i./.12.0.*.2.
caa0 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 2d 20 20 20 20 69 6e 74 20 78 31 20 3d *.M_PI.-.M_PI_2;...-....int.x1.=
cac0 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 .cx.+.(int)(cos(ang).*.(r.-.10))
cae0 3b 00 00 00 2d 20 20 20 20 69 6e 74 20 79 31 20 3d 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e ;...-....int.y1.=.cy.+.(int)(sin
cb00 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 3b 00 00 00 2c 20 20 20 20 69 6e 74 20 78 32 (ang).*.(r.-.10));...,....int.x2
cb20 20 3d 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 .=.cx.+.(int)(cos(ang).*.(r.-.2)
cb40 29 3b 00 00 00 2c 20 20 20 20 69 6e 74 20 79 32 20 3d 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 );...,....int.y2.=.cy.+.(int)(si
cb60 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 3b 00 00 00 3a 20 20 20 20 64 72 61 77 5f 6c n(ang).*.(r.-.2));...:....draw_l
cb80 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 78 31 2c 20 79 31 2c 20 78 32 2c 20 ine(px,.a->w,.a->h,.x1,.y1,.x2,.
cba0 79 32 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 1a 20 20 64 6f 75 y2,.0xFF000000);......}......dou
cbc0 62 6c 65 20 73 65 63 20 3d 20 74 6d 2d 3e 74 6d 5f 73 65 63 3b 00 00 00 27 20 20 64 6f 75 62 6c ble.sec.=.tm->tm_sec;...'..doubl
cbe0 65 20 6d 69 6e 20 3d 20 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2b 20 73 65 63 20 2f 20 36 30 2e 30 3b e.min.=.tm->tm_min.+.sec./.60.0;
cc00 00 00 00 30 20 20 64 6f 75 62 6c 65 20 68 6f 75 72 20 3d 20 28 74 6d 2d 3e 74 6d 5f 68 6f 75 72 ...0..double.hour.=.(tm->tm_hour
cc20 20 25 20 31 32 29 20 2b 20 6d 69 6e 20 2f 20 36 30 2e 30 3b 00 00 00 2d 20 20 64 6f 75 62 6c 65 .%.12).+.min./.60.0;...-..double
cc40 20 73 61 20 3d 20 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f .sa.=.sec./.60.0.*.2.*.M_PI.-.M_
cc60 50 49 5f 32 3b 00 00 00 2d 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 6d 69 6e 20 2f 20 36 30 2e PI_2;...-..double.ma.=.min./.60.
cc80 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 2e 20 20 64 6f 75 62 0.*.2.*.M_PI.-.M_PI_2;......doub
cca0 6c 65 20 68 61 20 3d 20 68 6f 75 72 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d le.ha.=.hour./.12.0.*.2.*.M_PI.-
ccc0 20 4d 5f 50 49 5f 32 3b 00 00 00 43 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 .M_PI_2;...C..draw_line(px,.a->w
cce0 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 68 ,.a->h,.cx,.cy,.cx.+.(int)(cos(h
cd00 61 29 20 2a 20 72 20 2a 20 30 2e 35 35 29 2c 00 00 00 38 20 20 20 20 20 20 20 20 20 20 20 20 63 a).*.r.*.0.55),...8............c
cd20 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 35 29 2c 20 30 y.+.(int)(sin(ha).*.r.*.0.55),.0
cd40 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 xFF000000);...B..draw_line(px,.a
cd60 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f ->w,.a->h,.cx,.cy,.cx.+.(int)(co
cd80 73 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 38 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 s(ma).*.r.*.0.8),...7...........
cda0 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 38 29 2c 20 .cy.+.(int)(sin(ma).*.r.*.0.8),.
cdc0 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 0xFF000000);...B..draw_line(px,.
cde0 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 a->w,.a->h,.cx,.cy,.cx.+.(int)(c
ce00 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 os(sa).*.r.*.0.9),...7..........
ce20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c ..cy.+.(int)(sin(sa).*.r.*.0.9),
ce40 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 .0xFFFF0000);...5..draw_circle(p
ce60 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 33 2c 20 30 78 46 46 30 30 x,.a->w,.a->h,.cx,.cy,.3,.0xFF00
ce80 30 30 30 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 0000);...)..wl_surface_attach(a-
cea0 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 >ws,.a->buf,.0,.0);......wl_surf
cec0 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 48 73 ace_commit(a->ws);....}.......Hs
cee0 74 61 74 69 63 20 76 6f 69 64 20 66 72 61 6d 65 5f 64 6f 6e 65 28 76 6f 69 64 20 2a 64 61 74 61 tatic.void.frame_done(void.*data
cf00 2c 20 73 74 72 75 63 74 20 77 6c 5f 63 61 6c 6c 62 61 63 6b 20 2a 63 62 2c 20 75 69 6e 74 33 32 ,.struct.wl_callback.*cb,.uint32
cf20 5f 74 20 74 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 61 74 _t.t).{......struct.app.*a.=.dat
cf40 61 3b 00 00 00 1a 20 20 77 6c 5f 63 61 6c 6c 62 61 63 6b 5f 64 65 73 74 72 6f 79 28 63 62 29 3b a;......wl_callback_destroy(cb);
cf60 00 00 00 15 20 20 61 2d 3e 66 72 61 6d 65 5f 63 62 20 3d 20 4e 55 4c 4c 3b 00 00 00 1b 20 20 61 ......a->frame_cb.=.NULL;......a
cf80 2d 3e 66 72 61 6d 65 5f 70 65 6e 64 69 6e 67 20 3d 20 66 61 6c 73 65 3b 00 00 00 18 20 20 69 66 ->frame_pending.=.false;......if
cfa0 20 28 61 2d 3e 64 72 61 77 5f 70 65 6e 64 69 6e 67 29 20 7b 00 00 00 1c 20 20 20 20 61 2d 3e 64 .(a->draw_pending).{........a->d
cfc0 72 61 77 5f 70 65 6e 64 69 6e 67 20 3d 20 66 61 6c 73 65 3b 00 00 00 1b 20 20 20 20 74 69 6d 65 raw_pending.=.false;........time
cfe0 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 11 20 20 20 20 73 74 72 75 63 _t.tt.=.time(NULL);........struc
d000 74 20 74 6d 20 74 6d 3b 00 00 00 1a 20 20 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c t.tm.tm;........localtime_r(&tt,
d020 20 26 74 6d 29 3b 00 00 00 17 20 20 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 61 2c 20 26 74 6d 29 .&tm);........draw_clock(a,.&tm)
d040 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 4f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 ;......}....}...Ostatic.const.st
d060 72 75 63 74 20 77 6c 5f 63 61 6c 6c 62 61 63 6b 5f 6c 69 73 74 65 6e 65 72 20 66 72 61 6d 65 5f ruct.wl_callback_listener.frame_
d080 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 64 6f 6e 65 20 3d 20 66 72 61 6d 65 5f 64 6f 6e 65 7d 3b listener.=.{.done.=.frame_done};
d0a0 00 00 00 00 00 00 00 2b 73 74 61 74 69 63 20 76 6f 69 64 20 73 63 68 65 64 75 6c 65 5f 66 72 61 .......+static.void.schedule_fra
d0c0 6d 65 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 19 20 20 69 66 20 28 61 2d 3e me(struct.app.*a).{......if.(a->
d0e0 66 72 61 6d 65 5f 70 65 6e 64 69 6e 67 29 20 7b 00 00 00 1b 20 20 20 20 61 2d 3e 64 72 61 77 5f frame_pending).{........a->draw_
d100 70 65 6e 64 69 6e 67 20 3d 20 74 72 75 65 3b 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 pending.=.true;........return;..
d120 00 03 20 20 7d 00 00 00 28 20 20 61 2d 3e 66 72 61 6d 65 5f 63 62 20 3d 20 77 6c 5f 73 75 72 66 ....}...(..a->frame_cb.=.wl_surf
d140 61 63 65 5f 66 72 61 6d 65 28 61 2d 3e 77 73 29 3b 00 00 00 3c 20 20 77 6c 5f 63 61 6c 6c 62 61 ace_frame(a->ws);...<..wl_callba
d160 63 6b 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 66 72 61 6d 65 5f 63 62 2c 20 26 66 72 ck_add_listener(a->frame_cb,.&fr
d180 61 6d 65 5f 6c 69 73 74 65 6e 65 72 2c 20 61 29 3b 00 00 00 1a 20 20 61 2d 3e 66 72 61 6d 65 5f ame_listener,.a);......a->frame_
d1a0 70 65 6e 64 69 6e 67 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 pending.=.true;....}........int.
d1c0 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d main(void).{......struct.app.a.=
d1e0 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d 20 34 30 30 3b 00 00 00 0c 20 20 61 2e 68 20 3d .{0};......a.w.=.400;......a.h.=
d200 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 .400;......signal(SIGINT,.on_sig
d220 29 3b 00 00 00 1a 20 20 73 69 67 6e 61 6c 28 53 49 47 54 45 52 4d 2c 20 6f 6e 5f 73 69 67 29 3b );......signal(SIGTERM,.on_sig);
d240 00 00 00 00 00 00 00 28 20 20 69 66 20 28 21 28 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 .......(..if.(!(a.d.=.wl_display
d260 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 29 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 _connect(NULL)))........return.1
d280 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 ;...'..a.reg.=.wl_display_get_re
d2a0 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 35 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 gistry(a.d);...5..wl_registry_ad
d2c0 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c 69 73 74 65 6e 65 72 2c d_listener(a.reg,.&reg_listener,
d2e0 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 .&a);......wl_display_roundtrip(
d300 61 2e 64 29 3b 00 00 00 21 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d a.d);...!..if.(!a.comp.||.!a.shm
d320 20 7c 7c 20 21 61 2e 77 6d 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 00 00 .||.!a.wm)........return.1;.....
d340 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 .....a.ws.=.wl_compositor_create
d360 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 _surface(a.comp);...1..a.xs.=.xd
d380 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 g_wm_base_get_xdg_surface(a.wm,.
d3a0 61 2e 77 73 29 3b 00 00 00 33 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 a.ws);...3..xdg_surface_add_list
d3c0 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 5f 6c 69 73 74 65 6e 65 72 2c 20 26 61 29 3b 00 00 00 ener(a.xs,.&xs_listener,.&a);...
d3e0 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 (..a.xt.=.xdg_surface_get_toplev
d400 65 6c 28 61 2e 78 73 29 3b 00 00 00 34 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f el(a.xs);...4..xdg_toplevel_add_
d420 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 65 6e 65 72 2c 20 26 61 29 listener(a.xt,.&xt_listener,.&a)
d440 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e ;...*..xdg_toplevel_set_title(a.
d460 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f xt,."wlclock");......wl_surface_
d480 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f commit(a.ws);......wl_display_ro
d4a0 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 00 00 00 00 16 20 20 61 6c 6c 6f 63 61 74 65 5f undtrip(a.d);..........allocate_
d4c0 62 75 66 66 65 72 28 26 61 29 3b 00 00 00 00 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 buffer(&a);.......9..int.tfd.=.t
d4e0 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 imerfd_create(CLOCK_MONOTONIC,.T
d500 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 31 20 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 FD_CLOEXEC);...1..struct.itimers
d520 70 65 63 20 69 74 73 20 3d 20 7b 7b 30 2c 20 31 30 30 30 30 30 30 7d 2c 20 7b 31 2c 20 30 7d 7d pec.its.=.{{0,.1000000},.{1,.0}}
d540 3b 00 00 00 26 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 ;...&..timerfd_settime(tfd,.0,.&
d560 69 74 73 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e its,.NULL);..........while.(runn
d580 69 6e 67 29 20 7b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 ing).{...%....wl_display_dispatc
d5a0 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 35 20 20 20 20 69 66 20 28 77 6c 5f 64 69 h_pending(a.d);...5....if.(wl_di
d5c0 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 20 3c 20 30 20 26 26 20 65 72 72 6e 6f 20 21 3d splay_flush(a.d).<.0.&&.errno.!=
d5e0 20 45 41 47 41 49 4e 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 4e 20 20 20 20 .EAGAIN)..........break;...N....
d600 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 66 64 73 5b 32 5d 20 3d 20 7b 7b 2e 66 64 20 3d 20 struct.pollfd.pfds[2].=.{{.fd.=.
d620 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 2e 65 76 65 6e 74 73 20 wl_display_get_fd(a.d),..events.
d640 3d 20 50 4f 4c 4c 49 4e 7d 2c 00 00 00 3c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =.POLLIN},...<..................
d660 20 20 20 20 20 20 20 20 20 20 20 7b 2e 66 64 20 3d 20 74 66 64 2c 20 2e 65 76 65 6e 74 73 20 3d ...........{.fd.=.tfd,..events.=
d680 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 16 20 20 20 20 70 6f 6c 6c 28 70 66 64 73 2c 20 32 2c 20 .POLLIN}};........poll(pfds,.2,.
d6a0 2d 31 29 3b 00 00 00 21 20 20 20 20 69 66 20 28 70 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 -1);...!....if.(pfds[0].revents.
d6c0 26 20 50 4f 4c 4c 49 4e 29 00 00 00 1f 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 &.POLLIN)..........wl_display_di
d6e0 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 23 20 20 20 20 69 66 20 28 70 66 64 73 5b 31 5d 2e spatch(a.d);...#....if.(pfds[1].
d700 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e revents.&.POLLIN).{..........uin
d720 74 36 34 5f 74 20 74 69 63 6b 73 3b 00 00 00 30 20 20 20 20 20 20 69 66 20 28 72 65 61 64 28 74 t64_t.ticks;...0......if.(read(t
d740 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 69 7a 65 6f 66 20 74 69 63 6b 73 29 20 3e 20 30 29 20 7b fd,.&ticks,.sizeof.ticks).>.0).{
d760 00 00 00 1f 20 20 20 20 20 20 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c ............time_t.tt.=.time(NUL
d780 4c 29 3b 00 00 00 15 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 3b 00 00 00 1e L);............struct.tm.tm;....
d7a0 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 29 3b 00 00 ........localtime_r(&tt,.&tm);..
d7c0 00 1c 20 20 20 20 20 20 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 26 61 2c 20 26 74 6d 29 3b 00 00 ..........draw_clock(&a,.&tm);..
d7e0 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 ........}........}......}.......
d800 0c 20 20 69 66 20 28 61 2e 62 75 66 29 00 00 00 1d 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 ...if.(a.buf)........wl_buffer_d
d820 65 73 74 72 6f 79 28 61 2e 62 75 66 29 3b 00 00 00 0b 20 20 69 66 20 28 61 2e 77 73 29 00 00 00 estroy(a.buf);......if.(a.ws)...
d840 1d 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 6f 79 28 61 2e 77 73 29 3b 00 00 .....wl_surface_destroy(a.ws);..
d860 00 0b 20 20 69 66 20 28 61 2e 78 74 29 00 00 00 1f 20 20 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 ....if.(a.xt)........xdg_topleve
d880 6c 5f 64 65 73 74 72 6f 79 28 61 2e 78 74 29 3b 00 00 00 0b 20 20 69 66 20 28 61 2e 78 73 29 00 l_destroy(a.xt);......if.(a.xs).
d8a0 00 00 1e 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 6f 79 28 61 2e 78 73 29 .......xdg_surface_destroy(a.xs)
d8c0 3b 00 00 00 0b 20 20 69 66 20 28 61 2e 77 6d 29 00 00 00 1e 20 20 20 20 78 64 67 5f 77 6d 5f 62 ;......if.(a.wm)........xdg_wm_b
d8e0 61 73 65 5f 64 65 73 74 72 6f 79 28 61 2e 77 6d 29 3b 00 00 00 0d 20 20 69 66 20 28 61 2e 63 6f ase_destroy(a.wm);......if.(a.co
d900 6d 70 29 00 00 00 22 20 20 20 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 64 65 73 74 72 6f 79 mp)..."....wl_compositor_destroy
d920 28 61 2e 63 6f 6d 70 29 3b 00 00 00 0a 20 20 69 66 20 28 61 2e 64 29 00 00 00 1f 20 20 20 20 77 (a.comp);......if.(a.d)........w
d940 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 00 00 00 l_display_disconnect(a.d);......
d960 00 0b 20 20 70 75 74 73 28 22 22 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 ....puts("");......return.0;....
d980 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 35 01 00 00 00 00 00 00 01 00 00 00 00 00 00 }5...............5..............
d9a0 00 00 00 00 00 00 00 00 00 45 22 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 .........E"..............5._....
d9c0 0c 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ................................
d9e0 ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
da00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
da20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
da40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
da60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
da80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
daa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
db00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
db20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 ...............................i
db40 9d 92 09 04 01 00 00 00 00 00 f5 18 00 00 01 18 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 ................................
db60 7d f5 18 00 00 01 19 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 ad 00 00 00 00 00 00 00 }...............................
db80 00 00 00 00 01 00 00 00 1a 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 72 65 63 74 28 75 .........static.void.fill_rect(u
dba0 69 6e 74 f5 18 00 00 00 ae 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 int.............................
dbc0 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 .............................5..
dbe0 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ad 00 00 00 1a 00 00 00 00 00 00 ................................
dc00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 f5 18 00 00 00 00 ad 00 00 00 1a ................................
dc20 00 00 00 00 00 00 00 00 00 00 00 6b 00 00 00 01 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 ...........k....................
dc40 00 00 00 5e 0d 00 00 00 00 00 00 35 81 5f d0 00 00 00 0d 00 00 00 0f 00 00 00 00 00 00 00 00 00 ...^.......5._..................
dc60 00 00 0e 00 00 01 19 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 ................................
dc80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ddc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 92 0a 04 01 00 00 00 06 00 f5 18 00 00 .................i..............
dde0 00 01 00 00 01 28 00 00 01 19 00 00 01 17 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e .....(............#include.<errn
de00 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 o.h>....#include.<fcntl.h>....#i
de20 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c nclude.<math.h>....#include.<pol
de40 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 l.h>....#include.<signal.h>....#
de60 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 include.<stdbool.h>....#include.
de80 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e <stdio.h>....#include.<stdlib.h>
dea0 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c ....#include.<string.h>....#incl
dec0 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 ude.<sys/mman.h>....#include.<sy
dee0 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 s/timerfd.h>....#include.<time.h
df00 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 >....#include.<unistd.h>....#inc
df20 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 26 23 69 6e 63 6c lude.<wayland-client.h>...&#incl
df40 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 ude."xdg-shell-client-protocol.h
df60 22 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 "........#ifndef.M_PI...##define
df80 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 .M_PI.3.14159265358979323846....
dfa0 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 #endif....#ifndef.M_PI_2...%#def
dfc0 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 ine.M_PI_2.1.5707963267948966192
dfe0 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 3....#endif.......)static.volati
e000 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b le.sig_atomic_t.running.=.1;....
e020 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 08 28 static.void.on_sig(int.s).{....(
e040 76 6f 69 64 29 73 3b 00 00 00 0c 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 void)s;....running.=.0;....}....
e060 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 15 73 74 72 75 63 74 20 77 6c 5f 64 69 ....struct.app.{....struct.wl_di
e080 73 70 6c 61 79 20 2a 64 3b 00 00 00 18 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 splay.*d;....struct.wl_registry.
e0a0 2a 72 65 67 3b 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 *reg;....struct.wl_compositor.*c
e0c0 6f 6d 70 3b 00 00 00 13 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 17 73 omp;....struct.wl_shm.*shm;....s
e0e0 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 16 73 74 72 75 63 74 truct.xdg_wm_base.*wm;....struct
e100 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 17 73 74 72 75 63 74 20 78 64 67 5f 73 .wl_surface.*ws;....struct.xdg_s
e120 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 18 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 urface.*xs;....struct.xdg_toplev
e140 65 6c 20 2a 78 74 3b 00 00 00 1d 73 74 72 75 63 74 20 77 6c 5f 63 61 6c 6c 62 61 63 6b 20 2a 66 el.*xt;....struct.wl_callback.*f
e160 72 61 6d 65 5f 63 62 3b 00 00 00 0d 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 16 73 74 72 rame_cb;....void.*pixels;....str
e180 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 09 69 6e 74 20 77 2c 20 68 3b uct.wl_buffer.*buf;....int.w,.h;
e1a0 00 00 00 10 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 13 62 6f 6f 6c 20 66 72 61 ....bool.configured;....bool.fra
e1c0 6d 65 5f 70 65 6e 64 69 6e 67 3b 00 00 00 12 62 6f 6f 6c 20 64 72 61 77 5f 70 65 6e 64 69 6e 67 me_pending;....bool.draw_pending
e1e0 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 ;....};.......)static.int.create
e200 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2c 63 68 61 72 _shm_file(size_t.size).{...,char
e220 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 73 68 6d 2d .template[].=."/tmp/wlclock-shm-
e240 58 58 58 58 58 58 22 3b 00 00 00 1b 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d XXXXXX";....int.fd.=.mkstemp(tem
e260 70 6c 61 74 65 29 3b 00 00 00 0d 69 66 20 28 66 64 20 3c 20 30 29 20 7b 00 00 00 12 70 65 72 72 plate);....if.(fd.<.0).{....perr
e280 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 00 00 00 08 65 78 69 74 28 31 29 3b 00 00 00 01 7d 00 or("mkstemp");....exit(1);....}.
e2a0 00 00 11 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 25 69 66 20 28 66 74 72 75 ...unlink(template);...%if.(ftru
e2c0 6e 63 61 74 65 28 66 64 2c 20 28 6f 66 66 5f 74 29 73 69 7a 65 29 20 3c 20 30 29 20 7b 00 00 00 ncate(fd,.(off_t)size).<.0).{...
e2e0 14 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 00 00 00 08 65 78 69 74 28 31 29 .perror("ftruncate");....exit(1)
e300 3b 00 00 00 01 7d 00 00 00 0a 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 ;....}....return.fd;....}.......
e320 42 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 Bstatic.void.wm_ping(void.*d,.st
e340 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 ruct.xdg_wm_base.*wm,.uint32_t.s
e360 29 20 7b 00 00 00 08 28 76 6f 69 64 29 64 3b 00 00 00 18 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 ).{....(void)d;....xdg_wm_base_p
e380 6f 6e 67 28 77 6d 2c 20 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 63 ong(wm,.s);....}.......Istatic.c
e3a0 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 onst.struct.xdg_wm_base_listener
e3c0 20 77 6d 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d .wm_listener.=.{.ping.=.wm_ping}
e3e0 3b 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 ;.......Astatic.void.xs_cfg(void
e400 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e .*d,.struct.xdg_surface.*xs,.uin
e420 74 33 32 5f 74 20 73 29 20 7b 00 00 00 12 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b t32_t.s).{....struct.app.*a.=.d;
e440 00 00 00 21 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 ...!xdg_surface_ack_configure(xs
e460 2c 20 73 29 3b 00 00 00 15 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 ,.s);....a->configured.=.true;..
e480 00 17 61 2d 3e 64 72 61 77 5f 70 65 6e 64 69 6e 67 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 ..a->draw_pending.=.true;....}..
e4a0 00 00 00 00 00 4d 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 .....Mstatic.const.struct.xdg_su
e4c0 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 63 rface_listener.xs_listener.=.{.c
e4e0 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 onfigure.=.xs_cfg};.......Jstati
e500 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 c.void.xt_cfg(void.*d,.struct.xd
e520 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 g_toplevel.*xt,.int32_t.w,.int32
e540 5f 74 20 68 2c 00 00 00 16 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 29 20 7b 00 _t.h,....struct.wl_array.*st).{.
e560 00 00 2e 28 76 6f 69 64 29 64 3b 20 28 76 6f 69 64 29 78 74 3b 20 28 76 6f 69 64 29 77 3b 20 28 ...(void)d;.(void)xt;.(void)w;.(
e580 76 6f 69 64 29 68 3b 20 28 76 6f 69 64 29 73 74 3b 00 00 00 01 7d 00 00 00 00 00 00 00 38 73 74 void)h;.(void)st;....}.......8st
e5a0 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 atic.void.xt_close(void.*d,.stru
e5c0 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 00 00 00 09 28 76 6f 69 64 29 ct.xdg_toplevel.*xt).{....(void)
e5e0 78 74 3b 00 00 00 12 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 0c 72 75 6e xt;....struct.app.*a.=.d;....run
e600 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4d 73 74 61 74 69 63 20 63 6f 6e ning.=.0;....}.......Mstatic.con
e620 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 st.struct.xdg_toplevel_listener.
e640 78 74 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 xt_listener.=.{.configure.=.xt_c
e660 66 67 2c 00 00 00 13 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 fg,.....close.=.xt_close};......
e680 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 .Nstatic.void.registry_handler(v
e6a0 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 oid.*data,.struct.wl_registry.*r
e6c0 65 67 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 22 63 6f 6e 73 74 20 63 68 61 72 20 2a eg,.uint32_t.id,..."const.char.*
e6e0 69 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 15 73 74 72 75 63 74 iface,.uint32_t.ver).{....struct
e700 20 61 70 70 20 2a 61 20 3d 20 64 61 74 61 3b 00 00 00 28 69 66 20 28 73 74 72 63 6d 70 28 69 66 .app.*a.=.data;...(if.(strcmp(if
e720 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 00 00 00 41 61 ace,."wl_compositor").==.0)...Aa
e740 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 ->comp.=.wl_registry_bind(reg,.i
e760 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b d,.&wl_compositor_interface,.4);
e780 00 00 00 26 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 ...&else.if.(strcmp(iface,."wl_s
e7a0 68 6d 22 29 20 3d 3d 20 30 29 00 00 00 39 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 hm").==.0)...9a->shm.=.wl_regist
e7c0 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 ry_bind(reg,.id,.&wl_shm_interfa
e7e0 63 65 2c 20 31 29 3b 00 00 00 2d 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 66 61 63 65 ce,.1);...-else.if.(strcmp(iface
e800 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 3d 61 2d 3e 77 ,."xdg_wm_base").==.0).{...=a->w
e820 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 78 m.=.wl_registry_bind(reg,.id,.&x
e840 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 31 78 64 67 dg_wm_base_interface,.1);...1xdg
e860 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 77 6d _wm_base_add_listener(a->wm,.&wm
e880 5f 6c 69 73 74 65 6e 65 72 2c 20 61 29 3b 00 00 00 01 7d 00 00 00 01 7d 00 00 00 00 00 00 00 39 _listener,.a);....}....}.......9
e8a0 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f static.const.struct.wl_registry_
e8c0 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 33 2e 67 6c listener.reg_listener.=.{...3.gl
e8e0 6f 62 61 6c 20 3d 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 20 2e 67 6c 6f 62 61 6c obal.=.registry_handler,..global
e900 5f 72 65 6d 6f 76 65 20 3d 20 4e 55 4c 4c 7d 3b 00 00 00 00 00 00 00 2c 73 74 61 74 69 63 20 76 _remove.=.NULL};.......,static.v
e920 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a oid.allocate_buffer(struct.app.*
e940 61 29 20 7b 00 00 00 0d 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 1a 77 6c 5f 62 75 66 66 a).{....if.(a->buf).{....wl_buff
e960 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 2d 6d 75 6e 6d 61 70 28 61 2d er_destroy(a->buf);...-munmap(a-
e980 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 >pixels,.(size_t)(a->w.*.a->h.*.
e9a0 34 29 29 3b 00 00 00 01 7d 00 00 00 16 69 6e 74 20 73 74 72 69 64 65 20 3d 20 61 2d 3e 77 20 2a 4));....}....int.stride.=.a->w.*
e9c0 20 34 3b 00 00 00 26 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 28 73 74 .4;...&size_t.size.=.(size_t)(st
e9e0 72 69 64 65 20 2a 20 61 2d 3e 68 29 3b 00 00 00 1f 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 ride.*.a->h);....int.fd.=.create
ea00 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 48 61 2d 3e 70 69 78 65 6c 73 20 3d 20 _shm_file(size);...Ha->pixels.=.
ea20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f mmap(NULL,.size,.PROT_READ.|.PRO
ea40 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1e T_WRITE,.MAP_SHARED,.fd,.0);....
ea60 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 if.(a->pixels.==.MAP_FAILED).{..
ea80 00 0f 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 00 00 00 08 65 78 69 74 28 31 29 3b 00 00 00 ..perror("mmap");....exit(1);...
eaa0 01 7d 00 00 00 49 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d .}...Istruct.wl_shm_pool.*pool.=
eac0 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 .wl_shm_create_pool(a->shm,.fd,.
eae0 28 69 6e 74 33 32 5f 74 29 73 69 7a 65 29 3b 00 00 00 3f 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 (int32_t)size);...?a->buf.=.wl_s
eb00 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 hm_pool_create_buffer(pool,.0,.a
eb20 2d 3e 77 2c 20 61 2d 3e 68 2c 20 73 74 72 69 64 65 2c 00 00 00 18 57 4c 5f 53 48 4d 5f 46 4f 52 ->w,.a->h,.stride,....WL_SHM_FOR
eb40 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1a 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 MAT_ARGB8888);....wl_shm_pool_de
eb60 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0a 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 01 7d 00 stroy(pool);....close(fd);....}.
eb80 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e ......Istatic.void.draw_line(uin
eba0 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c t32_t.*px,.int.w,.int.h,.int.x0,
ebc0 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 00 00 00 15 69 6e 74 20 79 31 2c 20 75 69 6e 74 .int.y0,.int.x1,....int.y1,.uint
ebe0 33 32 5f 74 20 63 29 20 7b 00 00 00 2d 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 32_t.c).{...-int.dx.=.abs(x1.-.x
ec00 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 2e 69 6e 0),.sx.=.x0.<.x1.?.1.:.-1;....in
ec20 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 t.dy.=.-abs(y1.-.y0),.sy.=.y0.<.
ec40 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 16 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 y1.?.1.:.-1;....int.err.=.dx.+.d
ec60 79 2c 20 65 32 3b 00 00 00 0b 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 2b 69 66 20 28 78 30 20 y,.e2;....while.(1).{...+if.(x0.
ec80 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 >=.0.&&.x0.<.w.&&.y0.>=.0.&&.y0.
eca0 3c 20 68 29 00 00 00 14 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 19 <.h)....px[y0.*.w.+.x0].=.c;....
ecc0 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 00 00 06 62 72 65 if.(x0.==.x1.&&.y0.==.y1)....bre
ece0 61 6b 3b 00 00 00 0d 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 0f 69 66 20 28 65 32 20 3e ak;....e2.=.2.*.err;....if.(e2.>
ed00 3d 20 64 79 29 20 7b 00 00 00 0a 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 09 78 30 20 2b 3d 20 73 =.dy).{....err.+=.dy;....x0.+=.s
ed20 78 3b 00 00 00 01 7d 00 00 00 0f 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 0a 65 72 x;....}....if.(e2.<=.dx).{....er
ed40 72 20 2b 3d 20 64 78 3b 00 00 00 09 79 30 20 2b 3d 20 73 79 3b 00 00 00 01 7d 00 00 00 01 7d 00 r.+=.dx;....y0.+=.sy;....}....}.
ed60 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 69 72 ...}.......Jstatic.void.draw_cir
ed80 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 cle(uint32_t.*px,.int.w,.int.h,.
eda0 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 0d 75 69 6e 74 33 32 int.cx,.int.cy,.int.r,....uint32
edc0 5f 74 20 63 29 20 7b 00 00 00 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d _t.c).{....int.x.=.0,.y.=.r,.d.=
ede0 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 10 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 .3.-.2.*.r;....while.(y.>=.x).{.
ee00 00 00 46 69 6e 74 20 70 74 73 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 ..Fint.pts[8][2].=.{{cx.+.x,.cy.
ee20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c +.y},.{cx.-.x,.cy.+.y},.{cx.+.x,
ee40 20 63 79 20 2d 20 79 7d 2c 00 00 00 35 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b .cy.-.y},...5{cx.-.x,.cy.-.y},.{
ee60 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 cx.+.y,.cy.+.x},.{cx.-.y,.cy.+.x
ee80 7d 2c 00 00 00 24 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c },...${cx.+.y,.cy.-.x},.{cx.-.y,
eea0 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1d 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 .cy.-.x}};....for.(int.i.=.0;.i.
eec0 3c 20 38 3b 20 69 2b 2b 29 20 7b 00 00 00 25 69 6e 74 20 70 78 30 20 3d 20 70 74 73 5b 69 5d 5b <.8;.i++).{...%int.px0.=.pts[i][
eee0 30 5d 2c 20 70 79 30 20 3d 20 70 74 73 5b 69 5d 5b 31 5d 3b 00 00 00 2f 69 66 20 28 70 78 30 20 0],.py0.=.pts[i][1];.../if.(px0.
ef00 3e 3d 20 30 20 26 26 20 70 78 30 20 3c 20 77 20 26 26 20 70 79 30 20 3e 3d 20 30 20 26 26 20 70 >=.0.&&.px0.<.w.&&.py0.>=.0.&&.p
ef20 79 30 20 3c 20 68 29 00 00 00 16 70 78 5b 70 79 30 20 2a 20 77 20 2b 20 70 78 30 5d 20 3d 20 63 y0.<.h)....px[py0.*.w.+.px0].=.c
ef40 3b 00 00 00 01 7d 00 00 00 04 78 2b 2b 3b 00 00 00 0c 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 ;....}....x++;....if.(d.>.0).{..
ef60 00 04 79 2d 2d 3b 00 00 00 19 64 20 3d 20 64 20 2b 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 ..y--;....d.=.d.+.4.*.(x.-.y).+.
ef80 31 30 3b 00 00 00 08 7d 20 65 6c 73 65 20 7b 00 00 00 12 64 20 3d 20 64 20 2b 20 34 20 2a 20 78 10;....}.else.{....d.=.d.+.4.*.x
efa0 20 2b 20 36 3b 00 00 00 01 7d 00 00 00 01 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4f 73 74 61 74 .+.6;....}....}....}.......Ostat
efc0 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 72 65 63 74 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 ic.void.fill_rect(uint32_t.*px,.
efe0 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 int.w,.int.h,.int.x,.int.y,.int.
f000 73 77 2c 20 69 6e 74 20 73 68 2c 00 00 00 0d 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 1c sw,.int.sh,....uint32_t.c).{....
f020 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 30 3b 20 6a 20 3c 20 73 68 3b 20 6a 2b 2b 29 00 00 00 0e for.(int.j.=.0;.j.<.sh;.j++)....
f040 69 66 20 28 79 20 2b 20 6a 20 3c 20 68 29 00 00 00 1c 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 if.(y.+.j.<.h)....for.(int.i.=.0
f060 3b 20 69 20 3c 20 73 77 3b 20 69 2b 2b 29 00 00 00 0e 69 66 20 28 78 20 2b 20 69 20 3c 20 77 29 ;.i.<.sw;.i++)....if.(x.+.i.<.w)
f080 00 00 00 1e 70 78 5b 28 79 20 2b 20 6a 29 20 2a 20 77 20 2b 20 28 78 20 2b 20 69 29 5d 20 3d 20 ....px[(y.+.j).*.w.+.(x.+.i)].=.
f0a0 63 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3c 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f c;....}.......<static.void.draw_
f0c0 63 6c 6f 63 6b 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 63 6f 6e 73 74 20 73 74 72 75 63 clock(struct.app.*a,.const.struc
f0e0 74 20 74 6d 20 2a 74 6d 29 20 7b 00 00 00 19 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d t.tm.*tm).{....uint32_t.*px.=.a-
f100 3e 70 69 78 65 6c 73 3b 00 00 00 38 66 69 6c 6c 5f 72 65 63 74 28 70 78 2c 20 61 2d 3e 77 2c 20 >pixels;...8fill_rect(px,.a->w,.
f120 61 2d 3e 68 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 30 78 46 46 46 46 46 46 a->h,.0,.0,.a->w,.a->h,.0xFFFFFF
f140 46 46 29 3b 00 00 00 21 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 FF);...!int.cx.=.a->w./.2,.cy.=.
f160 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2d 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e a->h./.2;...-int.r.=.(a->w.<.a->
f180 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 33 64 72 h.?.a->w.:.a->h)./.2.-.10;...3dr
f1a0 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 aw_circle(px,.a->w,.a->h,.cx,.cy
f1c0 2c 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 1e 66 6f 72 20 28 69 6e 74 20 69 20 ,.r,.0xFF000000);....for.(int.i.
f1e0 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2a 64 6f 75 62 6c 65 20 61 6e =.0;.i.<.12;.i++).{...*double.an
f200 67 20 3d 20 69 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 g.=.i./.12.0.*.2.*.M_PI.-.M_PI_2
f220 3b 00 00 00 29 69 6e 74 20 78 31 20 3d 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 ;...)int.x1.=.cx.+.(int)(cos(ang
f240 29 20 2a 20 28 72 20 2d 20 31 30 29 29 3b 00 00 00 29 69 6e 74 20 79 31 20 3d 20 63 79 20 2b 20 ).*.(r.-.10));...)int.y1.=.cy.+.
f260 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 3b 00 00 00 28 69 (int)(sin(ang).*.(r.-.10));...(i
f280 6e 74 20 78 32 20 3d 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 nt.x2.=.cx.+.(int)(cos(ang).*.(r
f2a0 20 2d 20 32 29 29 3b 00 00 00 28 69 6e 74 20 79 32 20 3d 20 63 79 20 2b 20 28 69 6e 74 29 28 73 .-.2));...(int.y2.=.cy.+.(int)(s
f2c0 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 3b 00 00 00 36 64 72 61 77 5f 6c 69 6e 65 in(ang).*.(r.-.2));...6draw_line
f2e0 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 2c (px,.a->w,.a->h,.x1,.y1,.x2,.y2,
f300 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 01 7d 00 00 00 18 64 6f 75 62 6c 65 20 73 65 63 .0xFF000000);....}....double.sec
f320 20 3d 20 74 6d 2d 3e 74 6d 5f 73 65 63 3b 00 00 00 25 64 6f 75 62 6c 65 20 6d 69 6e 20 3d 20 74 .=.tm->tm_sec;...%double.min.=.t
f340 6d 2d 3e 74 6d 5f 6d 69 6e 20 2b 20 73 65 63 20 2f 20 36 30 2e 30 3b 00 00 00 2e 64 6f 75 62 6c m->tm_min.+.sec./.60.0;....doubl
f360 65 20 68 6f 75 72 20 3d 20 28 74 6d 2d 3e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 6d 69 e.hour.=.(tm->tm_hour.%.12).+.mi
f380 6e 20 2f 20 36 30 2e 30 3b 00 00 00 2b 64 6f 75 62 6c 65 20 73 61 20 3d 20 73 65 63 20 2f 20 36 n./.60.0;...+double.sa.=.sec./.6
f3a0 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 2b 64 6f 75 62 0.0.*.2.*.M_PI.-.M_PI_2;...+doub
f3c0 6c 65 20 6d 61 20 3d 20 6d 69 6e 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 le.ma.=.min./.60.0.*.2.*.M_PI.-.
f3e0 4d 5f 50 49 5f 32 3b 00 00 00 2c 64 6f 75 62 6c 65 20 68 61 20 3d 20 68 6f 75 72 20 2f 20 31 32 M_PI_2;...,double.ha.=.hour./.12
f400 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 41 64 72 61 77 5f .0.*.2.*.M_PI.-.M_PI_2;...Adraw_
f420 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 line(px,.a->w,.a->h,.cx,.cy,.cx.
f440 2b 20 28 69 6e 74 29 28 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 35 29 2c 00 00 00 2c +.(int)(cos(ha).*.r.*.0.55),...,
f460 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 35 29 2c 20 cy.+.(int)(sin(ha).*.r.*.0.55),.
f480 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 40 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 0xFF000000);...@draw_line(px,.a-
f4a0 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 >w,.a->h,.cx,.cy,.cx.+.(int)(cos
f4c0 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 38 29 2c 00 00 00 2b 63 79 20 2b 20 28 69 6e 74 29 28 73 (ma).*.r.*.0.8),...+cy.+.(int)(s
f4e0 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 38 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 in(ma).*.r.*.0.8),.0xFF000000);.
f500 00 00 40 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c ..@draw_line(px,.a->w,.a->h,.cx,
f520 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e .cy,.cx.+.(int)(cos(sa).*.r.*.0.
f540 39 29 2c 00 00 00 2b 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 9),...+cy.+.(int)(sin(sa).*.r.*.
f560 30 2e 39 29 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 33 64 72 61 77 5f 63 69 72 63 6c 0.9),.0xFFFF0000);...3draw_circl
f580 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 33 2c 20 30 78 46 e(px,.a->w,.a->h,.cx,.cy,.3,.0xF
f5a0 46 30 30 30 30 30 30 29 3b 00 00 00 27 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 F000000);...'wl_surface_attach(a
f5c0 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 2b 77 6c 5f 73 75 72 66 61 ->ws,.a->buf,.0,.0);...+wl_surfa
f5e0 63 65 5f 64 61 6d 61 67 65 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e ce_damage(a->ws,.0,.0,.a->w,.a->
f600 68 29 3b 00 00 00 19 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b h);....wl_surface_commit(a->ws);
f620 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 ....}........int.main(void).{...
f640 13 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0a 61 2e 77 20 3d 20 34 30 .struct.app.a.=.{0};....a.w.=.40
f660 30 3b 00 00 00 0a 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 17 73 69 67 6e 61 6c 28 53 49 47 49 4e 0;....a.h.=.400;....signal(SIGIN
f680 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 18 73 69 67 6e 61 6c 28 53 49 47 54 45 52 4d 2c 20 6f T,.on_sig);....signal(SIGTERM,.o
f6a0 6e 5f 73 69 67 29 3b 00 00 00 26 69 66 20 28 21 28 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 n_sig);...&if.(!(a.d.=.wl_displa
f6c0 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 29 29 00 00 00 09 72 65 74 75 72 6e 20 31 3b 00 00 y_connect(NULL)))....return.1;..
f6e0 00 25 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 .%a.reg.=.wl_display_get_registr
f700 79 28 61 2e 64 29 3b 00 00 00 33 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 y(a.d);...3wl_registry_add_liste
f720 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c 69 73 74 65 6e 65 72 2c 20 26 61 29 3b 00 00 ner(a.reg,.&reg_listener,.&a);..
f740 00 1a 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 1f ..wl_display_roundtrip(a.d);....
f760 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 00 if.(!a.comp.||.!a.shm.||.!a.wm).
f780 00 00 09 72 65 74 75 72 6e 20 31 3b 00 00 00 2c 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 ...return.1;...,a.ws.=.wl_compos
f7a0 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 2f itor_create_surface(a.comp);.../
f7c0 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 a.xs.=.xdg_wm_base_get_xdg_surfa
f7e0 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 31 78 64 67 5f 73 75 72 66 61 63 65 5f 61 ce(a.wm,.a.ws);...1xdg_surface_a
f800 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 5f 6c 69 73 74 65 6e 65 72 2c 20 dd_listener(a.xs,.&xs_listener,.
f820 26 61 29 3b 00 00 00 26 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 &a);...&a.xt.=.xdg_surface_get_t
f840 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 32 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 oplevel(a.xs);...2xdg_toplevel_a
f860 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 65 6e 65 72 2c 20 dd_listener(a.xt,.&xt_listener,.
f880 26 61 29 3b 00 00 00 28 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 &a);...(xdg_toplevel_set_title(a
f8a0 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 18 77 6c 5f 73 75 72 66 61 63 65 5f 63 .xt,."wlclock");....wl_surface_c
f8c0 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 1a 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 ommit(a.ws);....wl_display_round
f8e0 74 72 69 70 28 61 2e 64 29 3b 00 00 00 14 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 26 61 trip(a.d);....allocate_buffer(&a
f900 29 3b 00 00 00 37 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 );...7int.tfd.=.timerfd_create(C
f920 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 LOCK_MONOTONIC,.TFD_CLOEXEC);...
f940 29 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 20 69 74 73 20 3d 20 7b 7b 31 2c 20 30 7d )struct.itimerspec.its.=.{{1,.0}
f960 2c 20 7b 31 2c 20 30 7d 7d 3b 00 00 00 24 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 ,.{1,.0}};...$timerfd_settime(tf
f980 64 2c 20 30 2c 20 26 69 74 73 2c 20 4e 55 4c 4c 29 3b 00 00 00 11 77 68 69 6c 65 20 28 72 75 6e d,.0,.&its,.NULL);....while.(run
f9a0 6e 69 6e 67 29 20 7b 00 00 00 29 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 ning).{...)while.(wl_display_pre
f9c0 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 00 00 00 21 77 6c 5f 64 69 73 70 6c pare_read(a.d).!=.0)...!wl_displ
f9e0 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 33 69 66 20 ay_dispatch_pending(a.d);...3if.
fa00 28 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 20 3c 20 30 20 26 26 20 65 72 (wl_display_flush(a.d).<.0.&&.er
fa20 72 6e 6f 20 21 3d 20 45 41 47 41 49 4e 29 20 7b 00 00 00 1c 77 6c 5f 64 69 73 70 6c 61 79 5f 63 rno.!=.EAGAIN).{....wl_display_c
fa40 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 06 62 72 65 61 6b 3b 00 00 00 01 7d 00 ancel_read(a.d);....break;....}.
fa60 00 00 4a 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 66 64 73 5b 32 5d 20 3d 20 7b 7b 2e 66 64 ..Jstruct.pollfd.pfds[2].=.{{.fd
fa80 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 2e 65 76 65 6e .=.wl_display_get_fd(a.d),..even
faa0 74 73 20 3d 20 50 4f 4c 4c 49 4e 7d 2c 00 00 00 1f 7b 2e 66 64 20 3d 20 74 66 64 2c 20 2e 65 76 ts.=.POLLIN},....{.fd.=.tfd,..ev
fac0 65 6e 74 73 20 3d 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1c 69 66 20 28 70 6f 6c 6c 28 70 66 64 ents.=.POLLIN}};....if.(poll(pfd
fae0 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 00 00 00 1c 77 6c 5f 64 69 73 70 6c 61 79 5f 63 s,.2,.-1).<.0).{....wl_display_c
fb00 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 1d 69 66 20 28 65 72 72 6e 6f 20 3d 3d ancel_read(a.d);....if.(errno.==
fb20 20 45 49 4e 54 52 29 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 06 62 72 65 61 6b 3b 00 00 00 01 7d .EINTR).continue;....break;....}
fb40 00 00 00 1d 69 66 20 28 70 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e ....if.(pfds[0].revents.&.POLLIN
fb60 29 00 00 00 1c 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 )....wl_display_read_events(a.d)
fb80 3b 00 00 00 04 65 6c 73 65 00 00 00 1c 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 ;....else....wl_display_cancel_r
fba0 65 61 64 28 61 2e 64 29 3b 00 00 00 21 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 ead(a.d);...!wl_display_dispatch
fbc0 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1f 69 66 20 28 70 66 64 73 5b 31 5d 2e 72 65 _pending(a.d);....if.(pfds[1].re
fbe0 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 0f 75 69 6e 74 36 34 5f 74 20 74 69 vents.&.POLLIN).{....uint64_t.ti
fc00 63 6b 73 3b 00 00 00 2a 69 66 20 28 72 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 69 cks;...*if.(read(tfd,.&ticks,.si
fc20 7a 65 6f 66 20 74 69 63 6b 73 29 20 3e 20 30 29 20 7b 00 00 00 17 74 69 6d 65 5f 74 20 74 74 20 zeof.ticks).>.0).{....time_t.tt.
fc40 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 11 73 74 72 75 63 74 20 74 6d 20 74 6d 5f 62 75 =.time(NULL);....struct.tm.tm_bu
fc60 66 3b 00 00 00 1a 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 5f 62 75 66 29 3b f;....localtime_r(&tt,.&tm_buf);
fc80 00 00 00 18 64 72 61 77 5f 63 6c 6f 63 6b 28 26 61 2c 20 26 74 6d 5f 62 75 66 29 3b 00 00 00 01 ....draw_clock(&a,.&tm_buf);....
fca0 7d 00 00 00 01 7d 00 00 00 01 7d 00 00 00 24 69 66 20 28 61 2e 62 75 66 29 20 77 6c 5f 62 75 66 }....}....}...$if.(a.buf).wl_buf
fcc0 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2e 62 75 66 29 3b 00 00 00 38 69 66 20 28 61 2e 70 69 78 fer_destroy(a.buf);...8if.(a.pix
fce0 65 6c 73 29 20 6d 75 6e 6d 61 70 28 61 2e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 els).munmap(a.pixels,.(size_t)(a
fd00 2e 77 20 2a 20 61 2e 68 20 2a 20 34 29 29 3b 00 00 00 25 69 66 20 28 61 2e 78 74 29 20 78 64 67 .w.*.a.h.*.4));...%if.(a.xt).xdg
fd20 5f 74 6f 70 6c 65 76 65 6c 5f 64 65 73 74 72 6f 79 28 61 2e 78 74 29 3b 00 00 00 24 69 66 20 28 _toplevel_destroy(a.xt);...$if.(
fd40 61 2e 78 73 29 20 78 64 67 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 6f 79 28 61 2e 78 73 29 3b a.xs).xdg_surface_destroy(a.xs);
fd60 00 00 00 23 69 66 20 28 61 2e 77 73 29 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 6f 79 ...#if.(a.ws).wl_surface_destroy
fd80 28 61 2e 77 73 29 3b 00 00 00 24 69 66 20 28 61 2e 77 6d 29 20 78 64 67 5f 77 6d 5f 62 61 73 65 (a.ws);...$if.(a.wm).xdg_wm_base
fda0 5f 64 65 73 74 72 6f 79 28 61 2e 77 6d 29 3b 00 00 00 21 69 66 20 28 61 2e 73 68 6d 29 20 77 6c _destroy(a.wm);...!if.(a.shm).wl
fdc0 5f 73 68 6d 5f 64 65 73 74 72 6f 79 28 61 2e 73 68 6d 29 3b 00 00 00 2a 69 66 20 28 61 2e 63 6f _shm_destroy(a.shm);...*if.(a.co
fde0 6d 70 29 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 64 65 73 74 72 6f 79 28 61 2e 63 6f 6d 70 mp).wl_compositor_destroy(a.comp
fe00 29 3b 00 00 00 26 69 66 20 28 61 2e 72 65 67 29 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 64 65 73 );...&if.(a.reg).wl_registry_des
fe20 74 72 6f 79 28 61 2e 72 65 67 29 3b 00 00 00 24 69 66 20 28 61 2e 64 29 20 77 6c 5f 64 69 73 70 troy(a.reg);...$if.(a.d).wl_disp
fe40 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 63 6c 6f 73 65 28 74 66 lay_disconnect(a.d);....close(tf
fe60 64 29 3b 00 00 00 09 72 65 74 75 72 6e 20 30 3b 35 81 f5 18 00 00 00 00 01 00 00 00 09 00 00 00 d);....return.0;5...............
fe80 16 01 00 00 00 00 00 00 25 01 00 00 02 00 00 00 29 00 00 00 00 00 00 00 2a 1d 00 00 00 00 00 00 ........%.......).......*.......
fea0 09 21 00 00 00 00 00 00 35 81 5f d0 00 00 00 0e 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 0f .!......5._.....................
fec0 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ff00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ff20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ff40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ff60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ff80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ffa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ffc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ffe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 92 65 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 ..............i..e..............
10040 00 00 02 00 00 00 00 00 00 01 28 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f ..........(....#define._POSIX_C_
10060 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d SOURCE.200809L...&#include."xdg-
10080 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 shell-client-protocol.h"....#inc
100a0 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 lude.<errno.h>....#include.<fcnt
100c0 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e l.h>....#include.<math.h>....#in
100e0 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e clude.<poll.h>....#include.<sign
10100 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 al.h>....#include.<stdbool.h>...
10120 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 .#include.<stdio.h>....#include.
10140 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 <stdlib.h>....#include.<string.h
10160 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 >....#include.<sys/mman.h>....#i
10180 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 nclude.<sys/timerfd.h>....#inclu
101a0 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e de.<time.h>....#include.<unistd.
101c0 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 h>....#include.<wayland-client.h
101e0 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 >........#ifndef.M_PI...##define
10200 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 .M_PI.3.14159265358979323846....
10220 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 #endif....#ifndef.M_PI_2...%#def
10240 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 ine.M_PI_2.1.5707963267948966192
10260 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 3....#endif.......)static.volati
10280 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b le.sig_atomic_t.running.=.1;....
102a0 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 static.void.on_sig(int.s).{.....
102c0 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d .(void)s;......running.=.0;....}
102e0 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 ........struct.app.{......struct
10300 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 .wl_display.*d;......struct.wl_r
10320 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d egistry.*reg;......struct.wl_com
10340 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 positor.*comp;......struct.wl_sh
10360 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 m.*shm;......struct.xdg_wm_base.
10380 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b *wm;......struct.wl_surface.*ws;
103a0 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 ......struct.xdg_surface.*xs;...
103c0 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 1f 20 ...struct.xdg_toplevel.*xt;.....
103e0 20 73 74 72 75 63 74 20 77 6c 5f 63 61 6c 6c 62 61 63 6b 20 2a 66 72 61 6d 65 5f 63 62 3b 00 00 .struct.wl_callback.*frame_cb;..
10400 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c ....void.*pixels;......struct.wl
10420 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 12 _buffer.*buf;......int.w,.h;....
10440 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 15 20 20 62 6f 6f 6c 20 66 72 61 ..bool.configured;......bool.fra
10460 6d 65 5f 70 65 6e 64 69 6e 67 3b 00 00 00 14 20 20 62 6f 6f 6c 20 64 72 61 77 5f 70 65 6e 64 69 me_pending;......bool.draw_pendi
10480 6e 67 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 ng;....};.......)static.int.crea
104a0 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 te_shm_file(size_t.size).{......
104c0 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d char.template[].=."/tmp/wlclock-
104e0 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 shm-XXXXXX";......int.fd.=.mkste
10500 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 0f 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b mp(template);......if.(fd.<.0).{
10520 00 00 00 16 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 00 00 00 0c 20 20 ........perror("mkstemp");......
10540 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 ..exit(1);......}......unlink(te
10560 6d 70 6c 61 74 65 29 3b 00 00 00 27 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 mplate);...'..if.(ftruncate(fd,.
10580 28 6f 66 66 5f 74 29 73 69 7a 65 29 20 3c 20 30 29 20 7b 00 00 00 18 20 20 20 20 70 65 72 72 6f (off_t)size).<.0).{........perro
105a0 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 r("ftruncate");........exit(1);.
105c0 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 .....}......return.fd;....}.....
105e0 00 00 42 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 2c 20 ..Bstatic.void.wm_ping(void.*d,.
10600 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 struct.xdg_wm_base.*wm,.uint32_t
10620 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 64 3b 00 00 00 1a 20 20 78 64 67 5f 77 6d 5f .s).{......(void)d;......xdg_wm_
10640 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 base_pong(wm,.s);....}.......Ist
10660 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 atic.const.struct.xdg_wm_base_li
10680 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d stener.wm_listener.=.{.ping.=.wm
106a0 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 _ping};.......Astatic.void.xs_cf
106c0 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 g(void.*d,.struct.xdg_surface.*x
106e0 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 s,.uint32_t.s).{......struct.app
10700 20 2a 61 20 3d 20 64 3b 00 00 00 23 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f .*a.=.d;...#..xdg_surface_ack_co
10720 6e 66 69 67 75 72 65 28 78 73 2c 20 73 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 nfigure(xs,.s);......a->configur
10740 65 64 20 3d 20 74 72 75 65 3b 00 00 00 19 20 20 61 2d 3e 64 72 61 77 5f 70 65 6e 64 69 6e 67 20 ed.=.true;......a->draw_pending.
10760 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4d 73 74 61 74 69 63 20 63 6f 6e 73 74 =.true;....}.......Mstatic.const
10780 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 5f .struct.xdg_surface_listener.xs_
107a0 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d listener.=.{.configure.=.xs_cfg}
107c0 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 ;.......Jstatic.void.xt_cfg(void
107e0 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e .*d,.struct.xdg_toplevel.*xt,.in
10800 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 29 20 20 20 20 20 20 20 20 20 t32_t.w,.int32_t.h,...).........
10820 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 29 20 7b ..........struct.wl_array.*st).{
10840 00 00 00 0a 20 20 28 76 6f 69 64 29 64 3b 00 00 00 0b 20 20 28 76 6f 69 64 29 78 74 3b 00 00 00 ......(void)d;......(void)xt;...
10860 0a 20 20 28 76 6f 69 64 29 77 3b 00 00 00 0a 20 20 28 76 6f 69 64 29 68 3b 00 00 00 0b 20 20 28 ...(void)w;......(void)h;......(
10880 76 6f 69 64 29 73 74 3b 00 00 00 01 7d 00 00 00 00 00 00 00 38 73 74 61 74 69 63 20 76 6f 69 64 void)st;....}.......8static.void
108a0 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f .xt_close(void.*d,.struct.xdg_to
108c0 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 00 00 00 0b 20 20 28 76 6f 69 64 29 78 74 3b 00 00 00 14 plevel.*xt).{......(void)xt;....
108e0 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e ..struct.app.*a.=.d;......runnin
10900 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4d 73 74 61 74 69 63 20 63 6f 6e 73 74 20 g.=.0;....}.......Mstatic.const.
10920 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f struct.xdg_toplevel_listener.xt_
10940 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c listener.=.{.configure.=.xt_cfg,
10960 00 00 00 4c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...L............................
10980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 63 6c ..............................cl
109a0 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 4e 73 74 61 74 69 63 20 76 ose.=.xt_close};.......Nstatic.v
109c0 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c oid.registry_handler(void.*data,
109e0 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 2c 20 75 69 6e 74 33 32 .struct.wl_registry.*reg,.uint32
10a00 5f 74 20 69 64 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _t.id,...?......................
10a20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 20 75 69 6e 74 33 32 .......const.char.*iface,.uint32
10a40 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 _t.ver).{......struct.app.*a.=.d
10a60 61 74 61 3b 00 00 00 2a 20 20 69 66 20 28 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f ata;...*..if.(strcmp(iface,."wl_
10a80 63 6f 6d 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 00 00 00 45 20 20 20 20 61 2d 3e 63 6f 6d compositor").==.0)...E....a->com
10aa0 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 p.=.wl_registry_bind(reg,.id,.&w
10ac0 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 28 20 l_compositor_interface,.4);...(.
10ae0 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 .else.if.(strcmp(iface,."wl_shm"
10b00 29 20 3d 3d 20 30 29 00 00 00 3d 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 ).==.0)...=....a->shm.=.wl_regis
10b20 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 try_bind(reg,.id,.&wl_shm_interf
10b40 61 63 65 2c 20 31 29 3b 00 00 00 2f 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 66 ace,.1);.../..else.if.(strcmp(if
10b60 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 41 20 ace,."xdg_wm_base").==.0).{...A.
10b80 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c ...a->wm.=.wl_registry_bind(reg,
10ba0 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b .id,.&xdg_wm_base_interface,.1);
10bc0 00 00 00 35 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 ...5....xdg_wm_base_add_listener
10be0 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 74 65 6e 65 72 2c 20 61 29 3b 00 00 00 03 20 20 7d (a->wm,.&wm_listener,.a);......}
10c00 00 00 00 01 7d 00 00 00 00 00 00 00 39 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 ....}.......9static.const.struct
10c20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 65 6e .wl_registry_listener.reg_listen
10c40 65 72 20 3d 20 7b 00 00 00 37 20 20 20 20 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 69 73 74 72 79 er.=.{...7.....global.=.registry
10c60 5f 68 61 6e 64 6c 65 72 2c 20 2e 67 6c 6f 62 61 6c 5f 72 65 6d 6f 76 65 20 3d 20 4e 55 4c 4c 7d _handler,..global_remove.=.NULL}
10c80 3b 00 00 00 00 00 00 00 2c 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 ;.......,static.void.allocate_bu
10ca0 66 66 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0f 20 20 69 66 20 28 61 ffer(struct.app.*a).{......if.(a
10cc0 2d 3e 62 75 66 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f ->buf).{........wl_buffer_destro
10ce0 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 31 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 y(a->buf);...1....munmap(a->pixe
10d00 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 ls,.(size_t)(a->w.*.a->h.*.4));.
10d20 00 00 03 20 20 7d 00 00 00 18 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 61 2d 3e 77 20 2a 20 .....}......int.stride.=.a->w.*.
10d40 34 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 28 73 4;...(..size_t.size.=.(size_t)(s
10d60 74 72 69 64 65 20 2a 20 61 2d 3e 68 29 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 tride.*.a->h);...!..int.fd.=.cre
10d80 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 ate_shm_file(size);...J..a->pixe
10da0 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 ls.=.mmap(NULL,.size,.PROT_READ.
10dc0 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 |.PROT_WRITE,.MAP_SHARED,.fd,.0)
10de0 3b 00 00 00 20 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c ;......if.(a->pixels.==.MAP_FAIL
10e00 45 44 29 20 7b 00 00 00 13 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 00 00 00 0c ED).{........perror("mmap");....
10e20 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 4b 20 20 73 74 72 75 63 74 20 ....exit(1);......}...K..struct.
10e40 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 wl_shm_pool.*pool.=.wl_shm_creat
10e60 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 28 69 6e 74 33 32 5f 74 29 73 69 7a 65 e_pool(a->shm,.fd,.(int32_t)size
10e80 29 3b 00 00 00 41 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 );...A..a->buf.=.wl_shm_pool_cre
10ea0 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 ate_buffer(pool,.0,.a->w,.a->h,.
10ec0 73 74 72 69 64 65 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 stride,...=.....................
10ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 ................WL_SHM_FORMAT_AR
10f00 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f GB8888);......wl_shm_pool_destro
10f20 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 01 7d 00 00 00 y(pool);......close(fd);....}...
10f40 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 ....Istatic.void.draw_line(uint3
10f60 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 2_t.*px,.int.w,.int.h,.int.x0,.i
10f80 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt.y0,.int.x1,...+..............
10fa0 20 20 20 20 20 20 20 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 ........int.y1,.uint32_t.c).{...
10fc0 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 /..int.dx.=.abs(x1.-.x0),.sx.=.x
10fe0 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 0.<.x1.?.1.:.-1;...0..int.dy.=.-
11000 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a abs(y1.-.y0),.sy.=.y0.<.y1.?.1.:
11020 20 2d 31 3b 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b .-1;......int.err.=.dx.+.dy,.e2;
11040 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 ......while.(1).{.../....if.(x0.
11060 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 >=.0.&&.x0.<.w.&&.y0.>=.0.&&.y0.
11080 3c 20 68 29 00 00 00 1a 20 20 20 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 <.h)..........px[y0.*.w.+.x0].=.
110a0 63 3b 00 00 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 c;........if.(x0.==.x1.&&.y0.==.
110c0 79 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 11 20 20 20 20 65 32 20 3d 20 y1)..........break;........e2.=.
110e0 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 2.*.err;........if.(e2.>=.dy).{.
11100 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 .........err.+=.dy;..........x0.
11120 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d +=.sx;........}........if.(e2.<=
11140 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 .dx).{..........err.+=.dx;......
11160 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 ....y0.+=.sy;........}......}...
11180 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c .}.......Jstatic.void.draw_circl
111a0 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e e(uint32_t.*px,.int.w,.int.h,.in
111c0 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 25 20 20 20 20 20 20 20 20 t.cx,.int.cy,.int.r,...%........
111e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 ................uint32_t.c).{...
11200 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a "..int.x.=.0,.y.=.r,.d.=.3.-.2.*
11220 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 4a 20 20 20 .r;......while.(y.>=.x).{...J...
11240 20 69 6e 74 20 70 74 73 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 .int.pts[8][2].=.{{cx.+.x,.cy.+.
11260 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 y},.{cx.-.x,.cy.+.y},.{cx.+.x,.c
11280 79 20 2d 20 79 7d 2c 00 00 00 4a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y.-.y},...J.....................
112a0 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 {cx.-.x,.cy.-.y},.{cx.+.y,.cy.+.
112c0 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 39 20 20 20 20 20 20 20 x},.{cx.-.y,.cy.+.x},...9.......
112e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 ..............{cx.+.y,.cy.-.x},.
11300 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 {cx.-.y,.cy.-.x}};...!....for.(i
11320 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 20 7b 00 00 00 2b 20 20 20 20 20 nt.i.=.0;.i.<.8;.i++).{...+.....
11340 20 69 6e 74 20 70 78 30 20 3d 20 70 74 73 5b 69 5d 5b 30 5d 2c 20 70 79 30 20 3d 20 70 74 73 5b .int.px0.=.pts[i][0],.py0.=.pts[
11360 69 5d 5b 31 5d 3b 00 00 00 35 20 20 20 20 20 20 69 66 20 28 70 78 30 20 3e 3d 20 30 20 26 26 20 i][1];...5......if.(px0.>=.0.&&.
11380 70 78 30 20 3c 20 77 20 26 26 20 70 79 30 20 3e 3d 20 30 20 26 26 20 70 79 30 20 3c 20 68 29 00 px0.<.w.&&.py0.>=.0.&&.py0.<.h).
113a0 00 00 1e 20 20 20 20 20 20 20 20 70 78 5b 70 79 30 20 2a 20 77 20 2b 20 70 78 30 5d 20 3d 20 63 ...........px[py0.*.w.+.px0].=.c
113c0 3b 00 00 00 05 20 20 20 20 7d 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 10 20 20 20 20 69 66 ;........}........x++;........if
113e0 20 28 64 20 3e 20 30 29 20 7b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 1f 20 20 20 20 .(d.>.0).{..........y--;........
11400 20 20 64 20 3d 20 64 20 2b 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0c 20 ..d.=.d.+.4.*.(x.-.y).+.10;.....
11420 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 18 20 20 20 20 20 20 64 20 3d 20 64 20 2b 20 34 20 2a ...}.else.{..........d.=.d.+.4.*
11440 20 78 20 2b 20 36 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 .x.+.6;........}......}....}....
11460 00 00 00 4f 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 72 65 63 74 28 75 69 6e 74 33 32 ...Ostatic.void.fill_rect(uint32
11480 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 2c 20 69 6e 74 _t.*px,.int.w,.int.h,.int.x,.int
114a0 20 79 2c 20 69 6e 74 20 73 77 2c 20 69 6e 74 20 73 68 2c 00 00 00 23 20 20 20 20 20 20 20 20 20 .y,.int.sw,.int.sh,...#.........
114c0 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 1e 20 20 .............uint32_t.c).{......
114e0 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 30 3b 20 6a 20 3c 20 73 68 3b 20 6a 2b 2b 29 00 00 00 12 for.(int.j.=.0;.j.<.sh;.j++)....
11500 20 20 20 20 69 66 20 28 79 20 2b 20 6a 20 3c 20 68 29 00 00 00 22 20 20 20 20 20 20 66 6f 72 20 ....if.(y.+.j.<.h)..."......for.
11520 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 73 77 3b 20 69 2b 2b 29 00 00 00 16 20 20 20 20 (int.i.=.0;.i.<.sw;.i++)........
11540 20 20 20 20 69 66 20 28 78 20 2b 20 69 20 3c 20 77 29 00 00 00 28 20 20 20 20 20 20 20 20 20 20 ....if.(x.+.i.<.w)...(..........
11560 70 78 5b 28 79 20 2b 20 6a 29 20 2a 20 77 20 2b 20 28 78 20 2b 20 69 29 5d 20 3d 20 63 3b 00 00 px[(y.+.j).*.w.+.(x.+.i)].=.c;..
11580 00 01 7d 00 00 00 00 00 00 00 3c 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 6c 6f 63 ..}.......<static.void.draw_cloc
115a0 6b 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 74 6d k(struct.app.*a,.const.struct.tm
115c0 20 2a 74 6d 29 20 7b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 .*tm).{......uint32_t.*px.=.a->p
115e0 69 78 65 6c 73 3b 00 00 00 3a 20 20 66 69 6c 6c 5f 72 65 63 74 28 70 78 2c 20 61 2d 3e 77 2c 20 ixels;...:..fill_rect(px,.a->w,.
11600 61 2d 3e 68 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 30 78 46 46 46 46 46 46 a->h,.0,.0,.a->w,.a->h,.0xFFFFFF
11620 46 46 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 FF);...#..int.cx.=.a->w./.2,.cy.
11640 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c =.a->h./.2;.../..int.r.=.(a->w.<
11660 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 .a->h.?.a->w.:.a->h)./.2.-.10;..
11680 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 .5..draw_circle(px,.a->w,.a->h,.
116a0 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 20 20 20 66 6f 72 cx,.cy,.r,.0xFF000000);......for
116c0 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 .(int.i.=.0;.i.<.12;.i++).{.....
116e0 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d ...double.ang.=.i./.12.0.*.2.*.M
11700 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 2d 20 20 20 20 69 6e 74 20 78 31 20 3d 20 63 78 _PI.-.M_PI_2;...-....int.x1.=.cx
11720 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 3b 00 00 .+.(int)(cos(ang).*.(r.-.10));..
11740 00 2d 20 20 20 20 69 6e 74 20 79 31 20 3d 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e .-....int.y1.=.cy.+.(int)(sin(an
11760 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 3b 00 00 00 2c 20 20 20 20 69 6e 74 20 78 32 20 3d 20 g).*.(r.-.10));...,....int.x2.=.
11780 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 3b 00 cx.+.(int)(cos(ang).*.(r.-.2));.
117a0 00 00 2c 20 20 20 20 69 6e 74 20 79 32 20 3d 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 ..,....int.y2.=.cy.+.(int)(sin(a
117c0 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 3b 00 00 00 3a 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 ng).*.(r.-.2));...:....draw_line
117e0 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 78 31 2c 20 79 31 2c 20 78 32 2c 20 79 32 2c (px,.a->w,.a->h,.x1,.y1,.x2,.y2,
11800 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 1a 20 20 64 6f 75 62 6c 65 .0xFF000000);......}......double
11820 20 73 65 63 20 3d 20 74 6d 2d 3e 74 6d 5f 73 65 63 3b 00 00 00 27 20 20 64 6f 75 62 6c 65 20 6d .sec.=.tm->tm_sec;...'..double.m
11840 69 6e 20 3d 20 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2b 20 73 65 63 20 2f 20 36 30 2e 30 3b 00 00 00 in.=.tm->tm_min.+.sec./.60.0;...
11860 30 20 20 64 6f 75 62 6c 65 20 68 6f 75 72 20 3d 20 28 74 6d 2d 3e 74 6d 5f 68 6f 75 72 20 25 20 0..double.hour.=.(tm->tm_hour.%.
11880 31 32 29 20 2b 20 6d 69 6e 20 2f 20 36 30 2e 30 3b 00 00 00 2d 20 20 64 6f 75 62 6c 65 20 73 61 12).+.min./.60.0;...-..double.sa
118a0 20 3d 20 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f .=.sec./.60.0.*.2.*.M_PI.-.M_PI_
118c0 32 3b 00 00 00 2d 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 6d 69 6e 20 2f 20 36 30 2e 30 20 2a 2;...-..double.ma.=.min./.60.0.*
118e0 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 2e 20 20 64 6f 75 62 6c 65 20 .2.*.M_PI.-.M_PI_2;......double.
11900 68 61 20 3d 20 68 6f 75 72 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f ha.=.hour./.12.0.*.2.*.M_PI.-.M_
11920 50 49 5f 32 3b 00 00 00 43 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 PI_2;...C..draw_line(px,.a->w,.a
11940 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 68 61 29 20 ->h,.cx,.cy,.cx.+.(int)(cos(ha).
11960 2a 20 72 20 2a 20 30 2e 35 35 29 2c 00 00 00 38 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b *.r.*.0.55),...8............cy.+
11980 20 28 69 6e 74 29 28 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 35 29 2c 20 30 78 46 46 .(int)(sin(ha).*.r.*.0.55),.0xFF
119a0 30 30 30 30 30 30 29 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 000000);...B..draw_line(px,.a->w
119c0 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 6d ,.a->h,.cx,.cy,.cx.+.(int)(cos(m
119e0 61 29 20 2a 20 72 20 2a 20 30 2e 38 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 63 79 a).*.r.*.0.8),...7............cy
11a00 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 38 29 2c 20 30 78 46 .+.(int)(sin(ma).*.r.*.0.8),.0xF
11a20 46 30 30 30 30 30 30 29 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e F000000);...B..draw_line(px,.a->
11a40 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 w,.a->h,.cx,.cy,.cx.+.(int)(cos(
11a60 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 63 sa).*.r.*.0.9),...7............c
11a80 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 30 78 y.+.(int)(sin(sa).*.r.*.0.9),.0x
11aa0 46 46 46 46 30 30 30 30 29 3b 00 00 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 FFFF0000);...5..draw_circle(px,.
11ac0 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 33 2c 20 30 78 46 46 30 30 30 30 30 a->w,.a->h,.cx,.cy,.3,.0xFF00000
11ae0 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 0);...)..wl_surface_attach(a->ws
11b00 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 2d 20 20 77 6c 5f 73 75 72 66 61 63 65 ,.a->buf,.0,.0);...-..wl_surface
11b20 5f 64 61 6d 61 67 65 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 _damage(a->ws,.0,.0,.a->w,.a->h)
11b40 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b ;......wl_surface_commit(a->ws);
11b60 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 ....}........int.main(void).{...
11b80 15 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 ...struct.app.a.=.{0};......a.w.
11ba0 3d 20 34 30 30 3b 00 00 00 0c 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e =.400;......a.h.=.400;......sign
11bc0 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 1a 20 20 73 69 67 6e 61 6c 28 al(SIGINT,.on_sig);......signal(
11be0 53 49 47 54 45 52 4d 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 28 20 20 69 66 20 28 21 28 61 2e 64 SIGTERM,.on_sig);...(..if.(!(a.d
11c00 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 29 29 00 00 00 .=.wl_display_connect(NULL)))...
11c20 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 .....return.1;...'..a.reg.=.wl_d
11c40 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 35 20 20 77 isplay_get_registry(a.d);...5..w
11c60 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 l_registry_add_listener(a.reg,.&
11c80 72 65 67 5f 6c 69 73 74 65 6e 65 72 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c reg_listener,.&a);......wl_displ
11ca0 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 21 20 20 69 66 20 28 21 61 2e 63 ay_roundtrip(a.d);...!..if.(!a.c
11cc0 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 00 00 00 0d 20 20 20 20 72 omp.||.!a.shm.||.!a.wm)........r
11ce0 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 eturn.1;......a.ws.=.wl_composit
11d00 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 or_create_surface(a.comp);...1..
11d20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 a.xs.=.xdg_wm_base_get_xdg_surfa
11d40 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 33 20 20 78 64 67 5f 73 75 72 66 61 63 65 ce(a.wm,.a.ws);...3..xdg_surface
11d60 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 5f 6c 69 73 74 65 6e 65 72 _add_listener(a.xs,.&xs_listener
11d80 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 ,.&a);...(..a.xt.=.xdg_surface_g
11da0 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 34 20 20 78 64 67 5f 74 6f 70 6c et_toplevel(a.xs);...4..xdg_topl
11dc0 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 evel_add_listener(a.xt,.&xt_list
11de0 65 6e 65 72 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 ener,.&a);...*..xdg_toplevel_set
11e00 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c _title(a.xt,."wlclock");......wl
11e20 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 1c 20 20 77 6c 5f 64 _surface_commit(a.ws);......wl_d
11e40 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 16 20 20 61 6c 6c 6f isplay_roundtrip(a.d);......allo
11e60 63 61 74 65 5f 62 75 66 66 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 cate_buffer(&a);...9..int.tfd.=.
11e80 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 timerfd_create(CLOCK_MONOTONIC,.
11ea0 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 2b 20 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 TFD_CLOEXEC);...+..struct.itimer
11ec0 73 70 65 63 20 69 74 73 20 3d 20 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 3b 00 00 00 26 spec.its.=.{{1,.0},.{1,.0}};...&
11ee0 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 69 74 73 2c 20 ..timerfd_settime(tfd,.0,.&its,.
11f00 4e 55 4c 4c 29 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 NULL);......while.(running).{...
11f20 2d 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 -....while.(wl_display_prepare_r
11f40 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 00 00 00 27 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c ead(a.d).!=.0)...'......wl_displ
11f60 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 37 20 20 20 ay_dispatch_pending(a.d);...7...
11f80 20 69 66 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 20 3c 20 30 20 26 .if.(wl_display_flush(a.d).<.0.&
11fa0 26 20 65 72 72 6e 6f 20 21 3d 20 45 41 47 41 49 4e 29 20 7b 00 00 00 22 20 20 20 20 20 20 77 6c &.errno.!=.EAGAIN).{..."......wl
11fc0 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 0c 20 20 _display_cancel_read(a.d);......
11fe0 20 20 20 20 62 72 65 61 6b 3b 00 00 00 05 20 20 20 20 7d 00 00 00 4e 20 20 20 20 73 74 72 75 63 ....break;........}...N....struc
12000 74 20 70 6f 6c 6c 66 64 20 70 66 64 73 5b 32 5d 20 3d 20 7b 7b 2e 66 64 20 3d 20 77 6c 5f 64 69 t.pollfd.pfds[2].=.{{.fd.=.wl_di
12020 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 2e 65 76 65 6e 74 73 20 3d 20 50 4f 4c splay_get_fd(a.d),..events.=.POL
12040 4c 49 4e 7d 2c 00 00 00 3c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 LIN},...<.......................
12060 20 20 20 20 20 20 7b 2e 66 64 20 3d 20 74 66 64 2c 20 2e 65 76 65 6e 74 73 20 3d 20 50 4f 4c 4c ......{.fd.=.tfd,..events.=.POLL
12080 49 4e 7d 7d 3b 00 00 00 20 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 70 66 64 73 2c 20 32 2c 20 2d IN}};........if.(poll(pfds,.2,.-
120a0 31 29 20 3c 20 30 29 20 7b 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 1).<.0).{..."......wl_display_ca
120c0 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 19 20 20 20 20 20 20 69 66 20 28 65 72 72 ncel_read(a.d);..........if.(err
120e0 6e 6f 20 3d 3d 20 45 49 4e 54 52 29 00 00 00 11 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 no.==.EINTR)............continue
12100 3b 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 20 ;..........break;........}...!..
12120 20 20 69 66 20 28 70 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 00 ..if.(pfds[0].revents.&.POLLIN).
12140 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 .."......wl_display_read_events(
12160 61 2e 64 29 3b 00 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 a.d);........else..."......wl_di
12180 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 splay_cancel_read(a.d);...%....w
121a0 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b l_display_dispatch_pending(a.d);
121c0 00 00 00 23 20 20 20 20 69 66 20 28 70 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f ...#....if.(pfds[1].revents.&.PO
121e0 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b LLIN).{..........uint64_t.ticks;
12200 00 00 00 30 20 20 20 20 20 20 69 66 20 28 72 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 ...0......if.(read(tfd,.&ticks,.
12220 73 69 7a 65 6f 66 20 74 69 63 6b 73 29 20 3e 20 30 29 20 7b 00 00 00 1f 20 20 20 20 20 20 20 20 sizeof.ticks).>.0).{............
12240 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 19 20 20 20 20 20 time_t.tt.=.time(NULL);.........
12260 20 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 5f 62 75 66 3b 00 00 00 22 20 20 20 20 20 20 20 20 ...struct.tm.tm_buf;..."........
12280 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 5f 62 75 66 29 3b 00 00 00 20 20 20 localtime_r(&tt,.&tm_buf);......
122a0 20 20 20 20 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 26 61 2c 20 26 74 6d 5f 62 75 66 29 3b 00 00 ......draw_clock(&a,.&tm_buf);..
122c0 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 0c 20 20 69 ........}........}......}......i
122e0 66 20 28 61 2e 62 75 66 29 00 00 00 1d 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 f.(a.buf)........wl_buffer_destr
12300 6f 79 28 61 2e 62 75 66 29 3b 00 00 00 0f 20 20 69 66 20 28 61 2e 70 69 78 65 6c 73 29 00 00 00 oy(a.buf);......if.(a.pixels)...
12320 2e 20 20 20 20 6d 75 6e 6d 61 70 28 61 2e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 .....munmap(a.pixels,.(size_t)(a
12340 2e 77 20 2a 20 61 2e 68 20 2a 20 34 29 29 3b 00 00 00 0b 20 20 69 66 20 28 61 2e 78 74 29 00 00 .w.*.a.h.*.4));......if.(a.xt)..
12360 00 1f 20 20 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 64 65 73 74 72 6f 79 28 61 2e 78 74 29 ......xdg_toplevel_destroy(a.xt)
12380 3b 00 00 00 0b 20 20 69 66 20 28 61 2e 78 73 29 00 00 00 1e 20 20 20 20 78 64 67 5f 73 75 72 66 ;......if.(a.xs)........xdg_surf
123a0 61 63 65 5f 64 65 73 74 72 6f 79 28 61 2e 78 73 29 3b 00 00 00 0b 20 20 69 66 20 28 61 2e 77 73 ace_destroy(a.xs);......if.(a.ws
123c0 29 00 00 00 1d 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 6f 79 28 61 2e 77 73 )........wl_surface_destroy(a.ws
123e0 29 3b 00 00 00 0b 20 20 69 66 20 28 61 2e 77 6d 29 00 00 00 1e 20 20 20 20 78 64 67 5f 77 6d 5f );......if.(a.wm)........xdg_wm_
12400 62 61 73 65 5f 64 65 73 74 72 6f 79 28 61 2e 77 6d 29 3b 00 00 00 0c 20 20 69 66 20 28 61 2e 73 base_destroy(a.wm);......if.(a.s
12420 68 6d 29 00 00 00 1a 20 20 20 20 77 6c 5f 73 68 6d 5f 64 65 73 74 72 6f 79 28 61 2e 73 68 6d 29 hm)........wl_shm_destroy(a.shm)
12440 3b 00 00 00 0d 20 20 69 66 20 28 61 2e 63 6f 6d 70 29 00 00 00 22 20 20 20 20 77 6c 5f 63 6f 6d ;......if.(a.comp)..."....wl_com
12460 70 6f 73 69 74 6f 72 5f 64 65 73 74 72 6f 79 28 61 2e 63 6f 6d 70 29 3b 00 00 00 0c 20 20 69 66 positor_destroy(a.comp);......if
12480 20 28 61 2e 72 65 67 29 00 00 00 1f 20 20 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 64 65 73 74 .(a.reg)........wl_registry_dest
124a0 72 6f 79 28 61 2e 72 65 67 29 3b 00 00 00 0a 20 20 69 66 20 28 61 2e 64 29 00 00 00 1f 20 20 20 roy(a.reg);......if.(a.d).......
124c0 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0d .wl_display_disconnect(a.d);....
124e0 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 ..close(tfd);......return.0;....
12500 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 28 01 00 00 00 00 00 00 01 00 00 00 00 00 00 }5...............(..............
12520 00 00 00 00 00 00 00 00 00 3e 21 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 .........>!..............5._....
12540 0f 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ................................
12560 ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
125a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
125c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
125e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
126a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 ...............................i
126c0 9d 92 65 04 01 00 00 00 00 00 f5 18 00 00 00 b9 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 ..e.............................
126e0 7d f5 18 00 00 00 ba 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 a3 00 00 00 00 00 00 00 }...............................
12700 00 00 00 00 01 00 00 00 22 20 20 2f 2a 20 54 4f 20 4c 4f 43 4b 20 53 49 5a 45 3a 20 53 65 74 20 ........"../*.TO.LOCK.SIZE:.Set.
12720 6d 69 6e 20 61 6e 64 20 6d 61 78 f5 18 00 00 00 a4 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 min.and.max.....................
12740 00 00 7c 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 07 20 20 20 20 61 2d 3e f5 18 00 00 00 7d ..|....................a->.....}
12760 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ................................
12780 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 ....................5...........
127a0 00 00 00 00 00 00 00 00 00 00 00 00 7c 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............|...................
127c0 00 00 00 00 00 10 00 00 00 00 00 00 f5 18 00 00 00 00 7c 00 00 00 07 00 00 00 00 00 00 00 00 00 ..................|.............
127e0 00 00 27 00 00 00 22 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 ..'...".........................
12800 00 00 f5 18 00 00 00 00 a3 00 00 00 22 00 00 00 00 00 00 00 00 00 00 00 16 00 00 00 01 00 00 00 ............"...................
12820 00 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 03 00 00 00 00 00 00 35 81 5f d0 00 00 00 10 ........................5._.....
12840 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 11 00 00 00 ba 00 00 00 00 00 00 00 00 ff ff ff ff ................................
12860 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
128a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
128c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
128e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
129a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d ..............................i.
129c0 92 66 04 01 00 00 00 07 00 f5 18 00 00 00 01 00 00 00 d8 00 00 00 ba 00 00 00 b1 00 00 00 12 23 .f.............................#
129e0 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 include.<errno.h>....#include.<f
12a00 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 cntl.h>....#include.<math.h>....
12a20 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 #include.<poll.h>....#include.<s
12a40 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e ignal.h>....#include.<stdbool.h>
12a60 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 ....#include.<stdio.h>....#inclu
12a80 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e de.<stdlib.h>....#include.<strin
12aa0 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 g.h>....#include.<sys/mman.h>...
12ac0 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e .#include.<sys/timerfd.h>....#in
12ae0 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 clude.<time.h>....#include.<unis
12b00 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e td.h>....#include.<wayland-clien
12b20 74 2e 68 3e 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 t.h>...&#include."xdg-shell-clie
12b40 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f nt-protocol.h"........#ifndef.M_
12b60 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 PI...##define.M_PI.3.14159265358
12b80 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 979323846....#endif....#ifndef.M
12ba0 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 _PI_2...%#define.M_PI_2.1.570796
12bc0 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 32679489661923....#endif.......)
12be0 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e static.volatile.sig_atomic_t.run
12c00 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 ning.=.1;....static.void.on_sig(
12c20 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e int.s).{......(void)s;......runn
12c40 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 ing.=.0;....}........struct.app.
12c60 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a {......struct.wl_display.*d;....
12c80 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 ..struct.wl_registry.*reg;......
12ca0 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 struct.wl_compositor.*comp;.....
12cc0 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 .struct.wl_shm.*shm;......struct
12ce0 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c .xdg_wm_base.*wm;......struct.wl
12d00 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 _surface.*ws;......struct.xdg_su
12d20 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 rface.*xs;......struct.xdg_tople
12d40 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 vel.*xt;......void.*pixels;.....
12d60 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 .struct.wl_buffer.*buf;......int
12d80 20 77 2c 20 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 02 .w,.h;......bool.configured;....
12da0 7d 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f };.......)static.int.create_shm_
12dc0 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 file(size_t.size).{......char.te
12de0 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 73 68 6d 2d 58 58 58 mplate[].=."/tmp/wlclock-shm-XXX
12e00 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 XXX";......int.fd.=.mkstemp(temp
12e20 6c 61 74 65 29 3b 00 00 00 16 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 65 78 69 74 28 31 29 3b late);......if.(fd.<.0).exit(1);
12e40 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 2e 20 20 69 66 20 ......unlink(template);......if.
12e60 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 28 6f 66 66 5f 74 29 73 69 7a 65 29 20 3c 20 30 29 (ftruncate(fd,.(off_t)size).<.0)
12e80 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 .exit(1);......return.fd;....}..
12ea0 00 00 00 00 00 2c 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 .....,static.void.allocate_buffe
12ec0 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0f 20 20 69 66 20 28 61 2d 3e 62 r(struct.app.*a).{......if.(a->b
12ee0 75 66 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 uf).{........wl_buffer_destroy(a
12f00 2d 3e 62 75 66 29 3b 00 00 00 31 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c ->buf);...1....munmap(a->pixels,
12f20 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 03 .(size_t)(a->w.*.a->h.*.4));....
12f40 20 20 7d 00 00 00 18 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 61 2d 3e 77 20 2a 20 34 3b 00 ..}......int.stride.=.a->w.*.4;.
12f60 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 28 73 74 72 69 ..(..size_t.size.=.(size_t)(stri
12f80 64 65 20 2a 20 61 2d 3e 68 29 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 de.*.a->h);...!..int.fd.=.create
12fa0 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 _shm_file(size);...J..a->pixels.
12fc0 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 =.mmap(NULL,.size,.PROT_READ.|.P
12fe0 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 ROT_WRITE,.MAP_SHARED,.fd,.0);..
13000 00 4b 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 .K..struct.wl_shm_pool.*pool.=.w
13020 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 28 69 l_shm_create_pool(a->shm,.fd,.(i
13040 6e 74 33 32 5f 74 29 73 69 7a 65 29 3b 00 00 00 5a 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 nt32_t)size);...Z..a->buf.=.wl_s
13060 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 hm_pool_create_buffer(pool,.0,.a
13080 2d 3e 77 2c 20 61 2d 3e 68 2c 20 73 74 72 69 64 65 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 ->w,.a->h,.stride,.WL_SHM_FORMAT
130a0 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 _ARGB8888);......wl_shm_pool_des
130c0 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 01 7d troy(pool);......close(fd);....}
130e0 00 00 00 00 00 00 00 5f 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 ......._static.void.draw_line(ui
13100 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 nt32_t.*px,.int.w,.int.h,.int.x0
13120 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 ,.int.y0,.int.x1,.int.y1,.uint32
13140 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 _t.c).{.../..int.dx.=.abs(x1.-.x
13160 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 0),.sx.=.x0.<.x1.?.1.:.-1;...0..
13180 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 int.dy.=.-abs(y1.-.y0),.sy.=.y0.
131a0 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 <.y1.?.1.:.-1;......int.err.=.dx
131c0 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 44 20 .+.dy,.e2;......while.(1).{...D.
131e0 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e ...if.(x0.>=.0.&&.x0.<.w.&&.y0.>
13200 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d =.0.&&.y0.<.h).px[y0.*.w.+.x0].=
13220 20 63 3b 00 00 00 24 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d .c;...$....if.(x0.==.x1.&&.y0.==
13240 20 79 31 29 20 62 72 65 61 6b 3b 00 00 00 11 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b .y1).break;........e2.=.2.*.err;
13260 00 00 00 2a 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 20 65 72 72 20 2b 3d 20 64 ...*....if.(e2.>=.dy).{.err.+=.d
13280 79 3b 20 78 30 20 2b 3d 20 73 78 3b 20 7d 00 00 00 2a 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 y;.x0.+=.sx;.}...*....if.(e2.<=.
132a0 64 78 29 20 7b 20 65 72 72 20 2b 3d 20 64 78 3b 20 79 30 20 2b 3d 20 73 79 3b 20 7d 00 00 00 03 dx).{.err.+=.dx;.y0.+=.sy;.}....
132c0 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 58 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 ..}....}.......Xstatic.void.draw
132e0 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 _circle(uint32_t.*px,.int.w,.int
13300 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 .h,.int.cx,.int.cy,.int.r,.uint3
13320 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 2_t.c).{..."..int.x.=.0,.y.=.r,.
13340 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 d.=.3.-.2.*.r;......while.(y.>=.
13360 78 29 20 7b 00 00 00 4c 20 20 20 20 69 6e 74 20 70 74 73 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 x).{...L....int.pts[8][2].=.{{cx
13380 2b 78 2c 20 63 79 2b 79 7d 2c 20 7b 63 78 2d 78 2c 20 63 79 2b 79 7d 2c 20 7b 63 78 2b 78 2c 20 +x,.cy+y},.{cx-x,.cy+y},.{cx+x,.
133a0 63 79 2d 79 7d 2c 20 7b 63 78 2d 78 2c 20 63 79 2d 79 7d 2c 00 00 00 4d 20 20 20 20 20 20 20 20 cy-y},.{cx-x,.cy-y},...M........
133c0 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 2b 79 2c 20 63 79 2b 78 7d 2c 20 7b 63 78 2d 79 .............{cx+y,.cy+x},.{cx-y
133e0 2c 20 63 79 2b 78 7d 2c 20 7b 63 78 2b 79 2c 20 63 79 2d 78 7d 2c 20 7b 63 78 2d 79 2c 20 63 79 ,.cy+x},.{cx+y,.cy-x},.{cx-y,.cy
13400 2d 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c -x}};........for.(int.i.=.0;.i.<
13420 20 38 3b 20 69 2b 2b 29 00 00 00 4d 20 20 20 20 20 20 69 66 20 28 70 74 73 5b 69 5d 5b 30 5d 20 .8;.i++)...M......if.(pts[i][0].
13440 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 74 73 5b 69 5d 5b >=.0.&&.pts[i][0].<.w.&&.pts[i][
13460 31 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 2a 20 20 20 1].>=.0.&&.pts[i][1].<.h)...*...
13480 20 20 20 20 20 70 78 5b 70 74 73 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 74 73 5b 69 5d 5b 30 .....px[pts[i][1].*.w.+.pts[i][0
134a0 5d 5d 20 3d 20 63 3b 00 00 00 43 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 20 64 20 2b 3d ]].=.c;...C....if.(d.>.0).{.d.+=
134c0 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 20 79 2d 2d 3b 20 7d 20 65 6c 73 65 20 64 .4.*.(x.-.y).+.10;.y--;.}.else.d
134e0 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 .+=.4.*.x.+.6;........x++;......
13500 7d 00 00 00 01 7d 00 00 00 00 00 00 00 27 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 }....}.......'static.void.draw_c
13520 6c 6f 63 6b 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 19 20 20 69 66 20 28 21 lock(struct.app.*a).{......if.(!
13540 61 2d 3e 70 69 78 65 6c 73 29 20 72 65 74 75 72 6e 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 a->pixels).return;......time_t.t
13560 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 13 20 20 73 74 72 75 63 74 20 74 6d 20 74 t.=.time(NULL);......struct.tm.t
13580 6d 5f 62 75 66 3b 00 00 00 1c 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d m_buf;......localtime_r(&tt,.&tm
135a0 5f 62 75 66 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 _buf);......uint32_t.*px.=.a->pi
135c0 78 65 6c 73 3b 00 00 00 2e 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 66 66 2c 20 28 73 69 7a xels;......memset(px,.0xff,.(siz
135e0 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 23 20 20 69 6e 74 e_t)(a->w.*.a->h.*.4));...#..int
13600 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 .cx.=.a->w./.2,.cy.=.a->h./.2;..
13620 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 ./..int.r.=.(a->w.<.a->h.?.a->w.
13640 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 35 20 20 64 72 61 77 5f 63 69 72 63 :.a->h)./.2.-.10;...5..draw_circ
13660 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 le(px,.a->w,.a->h,.cx,.cy,.r,.0x
13680 46 46 30 30 30 30 30 30 29 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 FF000000);......for.(int.i.=.0;.
136a0 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 i.<.12;.i++).{........double.ang
136c0 20 3d 20 69 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b .=.i./.12.0.*.2.*.M_PI.-.M_PI_2;
136e0 00 00 00 5f 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 ..._....draw_line(px,.a->w,.a->h
13700 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 ,.cx.+.(int)(cos(ang).*.(r.-.10)
13720 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 ),.cy.+.(int)(sin(ang).*.(r.-.10
13740 29 29 2c 00 00 00 5a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 28 69 6e 74 29 28 )),...Z..............cx.+.(int)(
13760 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 cos(ang).*.(r.-.2)),.cy.+.(int)(
13780 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 sin(ang).*.(r.-.2)),.0xFF000000)
137a0 3b 00 00 00 03 20 20 7d 00 00 00 37 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 5f 62 75 66 ;......}...7..double.sa.=.tm_buf
137c0 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 .tm_sec./.60.0.*.2.*.M_PI.-.M_PI
137e0 5f 32 3b 00 00 00 50 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 5f 62 75 66 2e 74 6d 5f _2;...P..double.ma.=.(tm_buf.tm_
13800 6d 69 6e 20 2b 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 min.+.tm_buf.tm_sec./.60.0)./.60
13820 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 5a 20 20 64 6f 75 .0.*.2.*.M_PI.-.M_PI_2;...Z..dou
13840 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 5f 62 75 66 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 ble.ha.=.((tm_buf.tm_hour.%.12).
13860 2b 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 +.(tm_buf.tm_min./.60.0))./.12.0
13880 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 6e 20 20 64 72 61 77 5f .*.2.*.M_PI.-.M_PI_2;...n..draw_
138a0 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 line(px,.a->w,.a->h,.cx,.cy,.cx.
138c0 2b 20 28 69 6e 74 29 28 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 20 63 79 20 2b +.(int)(cos(ha).*.r.*.0.5),.cy.+
138e0 20 28 69 6e 74 29 28 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 20 30 78 46 46 30 .(int)(sin(ha).*.r.*.0.5),.0xFF0
13900 30 30 30 30 30 29 3b 00 00 00 6e 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 00000);...n..draw_line(px,.a->w,
13920 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 6d 61 .a->h,.cx,.cy,.cx.+.(int)(cos(ma
13940 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 6d 61 29 ).*.r.*.0.7),.cy.+.(int)(sin(ma)
13960 20 2a 20 72 20 2a 20 30 2e 37 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 6e 20 20 64 .*.r.*.0.7),.0xFF000000);...n..d
13980 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c raw_line(px,.a->w,.a->h,.cx,.cy,
139a0 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 .cx.+.(int)(cos(sa).*.r.*.0.9),.
139c0 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 30 cy.+.(int)(sin(sa).*.r.*.0.9),.0
139e0 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 xFFFF0000);...)..wl_surface_atta
13a00 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 2d 20 20 77 6c ch(a->ws,.a->buf,.0,.0);...-..wl
13a20 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e _surface_damage(a->ws,.0,.0,.a->
13a40 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 w,.a->h);......wl_surface_commit
13a60 28 61 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 61 73 74 61 74 69 63 20 76 6f 69 64 (a->ws);....}.......astatic.void
13a80 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c .xt_cfg(void.*d,.struct.xdg_topl
13aa0 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 20 evel.*xt,.int32_t.w,.int32_t.h,.
13ac0 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 29 20 7b 00 00 00 14 20 20 73 74 72 75 struct.wl_array.*st).{......stru
13ae0 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 ct.app.*a.=.d;...3..if.(w.>.0.&&
13b00 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e .h.>.0.&&.(w.!=.a->w.||.h.!=.a->
13b20 68 29 29 20 7b 00 00 00 17 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 20 61 2d 3e 68 20 3d 20 68 3b h)).{........a->w.=.w;.a->h.=.h;
13b40 00 00 00 17 20 20 20 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 61 29 3b 00 00 00 03 20 ........allocate_buffer(a);.....
13b60 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 .}....}.......Astatic.void.xs_cf
13b80 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 g(void.*d,.struct.xdg_surface.*x
13ba0 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 s,.uint32_t.s).{......struct.app
13bc0 20 2a 61 20 3d 20 64 3b 00 00 00 23 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f .*a.=.d;...#..xdg_surface_ack_co
13be0 6e 66 69 67 75 72 65 28 78 73 2c 20 73 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 nfigure(xs,.s);......a->configur
13c00 65 64 20 3d 20 74 72 75 65 3b 00 00 00 10 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 61 29 3b 00 00 ed.=.true;......draw_clock(a);..
13c20 00 01 7d 00 00 00 00 00 00 00 62 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 ..}.......bstatic.const.struct.x
13c40 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 20 3d 20 7b dg_toplevel_listener.xt_list.=.{
13c60 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 20 2e 63 6c 6f 73 65 20 3d 20 28 76 .configure.=.xt_cfg,..close.=.(v
13c80 6f 69 64 2a 29 6f 6e 5f 73 69 67 7d 3b 00 00 00 49 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 oid*)on_sig};...Istatic.const.st
13ca0 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 73 ruct.xdg_surface_listener.xs_lis
13cc0 74 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 00 00 00 t.=.{.configure.=.xs_cfg};......
13ce0 00 71 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 .qstatic.void.registry_handler(v
13d00 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 oid.*data,.struct.wl_registry.*r
13d20 65 67 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 eg,.uint32_t.id,.const.char.*ifa
13d40 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 ce,.uint32_t.ver).{......struct.
13d60 61 70 70 20 2a 61 20 3d 20 64 61 74 61 3b 00 00 00 68 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 app.*a.=.data;...h..if.(!strcmp(
13d80 69 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 20 61 2d 3e 63 6f 6d 70 iface,."wl_compositor")).a->comp
13da0 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c .=.wl_registry_bind(reg,.id,.&wl
13dc0 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 5e 20 20 _compositor_interface,.4);...^..
13de0 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 else.if.(!strcmp(iface,."wl_shm"
13e00 29 29 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 )).a->shm.=.wl_registry_bind(reg
13e20 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 2b ,.id,.&wl_shm_interface,.1);...+
13e40 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 78 64 67 5f 77 ..else.if.(!strcmp(iface,."xdg_w
13e60 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 41 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 m_base")).{...A....a->wm.=.wl_re
13e80 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 gistry_bind(reg,.id,.&xdg_wm_bas
13ea0 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 68 20 20 20 20 78 64 67 5f 77 6d 5f 62 e_interface,.1);...h....xdg_wm_b
13ec0 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 28 73 74 72 75 63 74 ase_add_listener(a->wm,.&(struct
13ee0 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 29 7b 2e 70 69 6e 67 20 3d 20 28 .xdg_wm_base_listener){.ping.=.(
13f00 76 6f 69 64 2a 29 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 7d 2c 20 61 29 3b 00 00 00 03 void*)xdg_wm_base_pong},.a);....
13f20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b ..}....}........int.main(void).{
13f40 00 00 00 26 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 2e 77 20 3d 20 34 30 30 2c 20 ...&..struct.app.a.=.{.w.=.400,.
13f60 2e 68 20 3d 20 34 30 30 7d 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f .h.=.400};......signal(SIGINT,.o
13f80 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f n_sig);...!..a.d.=.wl_display_co
13fa0 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 nnect(NULL);...'..a.reg.=.wl_dis
13fc0 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 58 20 20 77 6c 5f play_get_registry(a.d);...X..wl_
13fe0 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 28 73 registry_add_listener(a.reg,.&(s
14000 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 29 7b 72 65 67 69 truct.wl_registry_listener){regi
14020 73 74 72 79 5f 68 61 6e 64 6c 65 72 7d 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 stry_handler},.&a);......wl_disp
14040 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 lay_roundtrip(a.d);......a.ws.=.
14060 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 wl_compositor_create_surface(a.c
14080 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 omp);...1..a.xs.=.xdg_wm_base_ge
140a0 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 2f 20 20 t_xdg_surface(a.wm,.a.ws);.../..
140c0 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 xdg_surface_add_listener(a.xs,.&
140e0 78 73 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 xs_list,.&a);...(..a.xt.=.xdg_su
14100 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 30 20 20 78 rface_get_toplevel(a.xs);...0..x
14120 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 dg_toplevel_add_listener(a.xt,.&
14140 78 74 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f xt_list,.&a);...*..xdg_toplevel_
14160 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 00 00 set_title(a.xt,."wlclock");.....
14180 00 00 37 20 20 2f 2a 20 54 4f 20 4c 4f 43 4b 20 53 49 5a 45 3a 20 53 65 74 20 6d 69 6e 20 61 6e ..7../*.TO.LOCK.SIZE:.Set.min.an
141a0 64 20 6d 61 78 20 74 6f 20 74 68 65 20 73 61 6d 65 20 76 61 6c 75 65 73 2e 20 00 00 00 52 20 20 d.max.to.the.same.values.....R..
141c0 20 20 20 54 4f 20 41 4c 4c 4f 57 20 52 45 53 49 5a 49 4e 47 3a 20 52 65 6d 6f 76 65 20 74 68 65 ...TO.ALLOW.RESIZING:.Remove.the
141e0 73 65 20 74 77 6f 20 6c 69 6e 65 73 20 6f 72 20 73 65 74 20 74 68 65 6d 20 74 6f 20 64 69 66 66 se.two.lines.or.set.them.to.diff
14200 65 72 65 6e 74 20 72 61 6e 67 65 73 2e 20 2a 2f 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 erent.ranges..*/...,..xdg_toplev
14220 65 6c 5f 73 65 74 5f 6d 69 6e 5f 73 69 7a 65 28 61 2e 78 74 2c 20 34 30 30 2c 20 34 30 30 29 3b el_set_min_size(a.xt,.400,.400);
14240 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 61 78 5f 73 69 7a 65 28 ...,..xdg_toplevel_set_max_size(
14260 61 2e 78 74 2c 20 34 30 30 2c 20 34 30 30 29 3b 00 00 00 00 00 00 00 1a 20 20 77 6c 5f 73 75 72 a.xt,.400,.400);..........wl_sur
14280 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c face_commit(a.ws);......wl_displ
142a0 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 16 20 20 61 6c 6c 6f 63 61 74 65 ay_roundtrip(a.d);......allocate
142c0 5f 62 75 66 66 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 _buffer(&a);...9..int.tfd.=.time
142e0 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f rfd_create(CLOCK_MONOTONIC,.TFD_
14300 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 CLOEXEC);...F..timerfd_settime(t
14320 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 fd,.0,.&(struct.itimerspec){{1,.
14340 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 0},.{1,.0}},.NULL);......while.(
14360 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 running).{........wl_display_flu
14380 73 68 28 61 2e 64 29 3b 00 00 00 4e 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 66 sh(a.d);...N....struct.pollfd.pf
143a0 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 ds[2].=.{{wl_display_get_fd(a.d)
143c0 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 25 20 20 ,.POLLIN},.{tfd,.POLLIN}};...%..
143e0 20 20 69 66 20 28 70 6f 6c 6c 28 70 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 62 72 65 ..if.(poll(pfds,.2,.-1).<.0).bre
14400 61 6b 3b 00 00 00 3b 20 20 20 20 69 66 20 28 70 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 ak;...;....if.(pfds[0].revents.&
14420 20 50 4f 4c 4c 49 4e 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 .POLLIN).wl_display_dispatch(a.d
14440 29 3b 35 81 f5 18 00 00 00 00 01 00 00 00 09 00 00 00 b0 00 00 00 21 00 00 00 d5 00 00 00 05 00 );5...................!.........
14460 00 00 29 00 00 00 00 00 00 00 30 18 00 00 00 00 00 00 dd 19 00 00 00 00 00 00 35 81 5f d0 00 00 ..).......0...............5._...
14480 00 11 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 12 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ................................
144a0 ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
145a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
145c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
145e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14600 69 9d 92 93 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 df 00 00 00 i...............................
14620 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c .#define._POSIX_C_SOURCE.200809L
14640 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 ...&#include."xdg-shell-client-p
14660 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e rotocol.h"....#include.<errno.h>
14680 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 ....#include.<fcntl.h>....#inclu
146a0 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e de.<math.h>....#include.<poll.h>
146c0 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c ....#include.<signal.h>....#incl
146e0 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 ude.<stdbool.h>....#include.<std
14700 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 io.h>....#include.<stdlib.h>....
14720 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 #include.<string.h>....#include.
14740 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 <sys/mman.h>....#include.<sys/ti
14760 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 merfd.h>....#include.<time.h>...
14780 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 .#include.<unistd.h>....#include
147a0 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 .<wayland-client.h>........#ifnd
147c0 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 ef.M_PI...##define.M_PI.3.141592
147e0 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 65358979323846....#endif....#ifn
14800 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 def.M_PI_2...%#define.M_PI_2.1.5
14820 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 7079632679489661923....#endif...
14840 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f ....)static.volatile.sig_atomic_
14860 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e t.running.=.1;....static.void.on
14880 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 _sig(int.s).{......(void)s;.....
148a0 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 .running.=.0;....}........struct
148c0 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 .app.{......struct.wl_display.*d
148e0 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 ;......struct.wl_registry.*reg;.
14900 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b .....struct.wl_compositor.*comp;
14920 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 ......struct.wl_shm.*shm;......s
14940 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 truct.xdg_wm_base.*wm;......stru
14960 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 ct.wl_surface.*ws;......struct.x
14980 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f dg_surface.*xs;......struct.xdg_
149a0 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b toplevel.*xt;......void.*pixels;
149c0 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b ......struct.wl_buffer.*buf;....
149e0 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 ..int.w,.h;......bool.configured
14a00 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 ;....};.......)static.int.create
14a20 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 _shm_file(size_t.size).{......ch
14a40 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 73 68 ar.template[].=."/tmp/wlclock-sh
14a60 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 m-XXXXXX";......int.fd.=.mkstemp
14a80 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c (template);......if.(fd.<.0)....
14aa0 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 ....exit(1);......unlink(templat
14ac0 65 29 3b 00 00 00 25 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 28 6f 66 66 5f e);...%..if.(ftruncate(fd,.(off_
14ae0 74 29 73 69 7a 65 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c t)size).<.0)........exit(1);....
14b00 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2c 73 74 61 74 69 63 20 ..return.fd;....}.......,static.
14b20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 73 74 72 75 63 74 20 61 70 70 20 void.allocate_buffer(struct.app.
14b40 2a 61 29 20 7b 00 00 00 0f 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 1e 20 20 20 20 *a).{......if.(a->buf).{........
14b60 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 31 20 20 wl_buffer_destroy(a->buf);...1..
14b80 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e ..munmap(a->pixels,.(size_t)(a->
14ba0 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 03 20 20 7d 00 00 00 18 20 20 69 6e 74 20 w.*.a->h.*.4));......}......int.
14bc0 73 74 72 69 64 65 20 3d 20 61 2d 3e 77 20 2a 20 34 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 stride.=.a->w.*.4;...(..size_t.s
14be0 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 28 73 74 72 69 64 65 20 2a 20 61 2d 3e 68 29 3b 00 00 ize.=.(size_t)(stride.*.a->h);..
14c00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a .!..int.fd.=.create_shm_file(siz
14c20 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 e);...J..a->pixels.=.mmap(NULL,.
14c40 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 size,.PROT_READ.|.PROT_WRITE,.MA
14c60 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 4b 20 20 73 74 72 75 63 74 20 77 6c P_SHARED,.fd,.0);...K..struct.wl
14c80 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f _shm_pool.*pool.=.wl_shm_create_
14ca0 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 28 69 6e 74 33 32 5f 74 29 73 69 7a 65 29 3b pool(a->shm,.fd,.(int32_t)size);
14cc0 00 00 00 41 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 ...A..a->buf.=.wl_shm_pool_creat
14ce0 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 73 74 e_buffer(pool,.0,.a->w,.a->h,.st
14d00 72 69 64 65 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ride,...=.......................
14d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 ..............WL_SHM_FORMAT_ARGB
14d40 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 8888);......wl_shm_pool_destroy(
14d60 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 01 7d 00 00 00 00 00 pool);......close(fd);....}.....
14d80 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f ..Istatic.void.draw_line(uint32_
14da0 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 t.*px,.int.w,.int.h,.int.x0,.int
14dc0 20 79 30 2c 20 69 6e 74 20 78 31 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .y0,.int.x1,...+................
14de0 20 20 20 20 20 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 ......int.y1,.uint32_t.c).{.../.
14e00 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 .int.dx.=.abs(x1.-.x0),.sx.=.x0.
14e20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 <.x1.?.1.:.-1;...0..int.dy.=.-ab
14e40 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d s(y1.-.y0),.sy.=.y0.<.y1.?.1.:.-
14e60 31 3b 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 1;......int.err.=.dx.+.dy,.e2;..
14e80 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e 3d ....while.(1).{.../....if.(x0.>=
14ea0 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 .0.&&.x0.<.w.&&.y0.>=.0.&&.y0.<.
14ec0 68 29 00 00 00 1a 20 20 20 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b h)..........px[y0.*.w.+.x0].=.c;
14ee0 00 00 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 ........if.(x0.==.x1.&&.y0.==.y1
14f00 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 11 20 20 20 20 65 32 20 3d 20 32 20 )..........break;........e2.=.2.
14f20 2a 20 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 *.err;........if.(e2.>=.dy).{...
14f40 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 2b 3d .......err.+=.dy;..........x0.+=
14f60 20 73 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 .sx;........}........if.(e2.<=.d
14f80 78 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 20 20 x).{..........err.+=.dx;........
14fa0 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d ..y0.+=.sy;........}......}....}
14fc0 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c 65 28 .......Jstatic.void.draw_circle(
14fe0 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 uint32_t.*px,.int.w,.int.h,.int.
15000 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 25 20 20 20 20 20 20 20 20 20 20 cx,.int.cy,.int.r,...%..........
15020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 ..............uint32_t.c).{...".
15040 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 .int.x.=.0,.y.=.r,.d.=.3.-.2.*.r
15060 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 4a 20 20 20 20 69 ;......while.(y.>=.x).{...J....i
15080 6e 74 20 70 74 73 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d nt.pts[8][2].=.{{cx.+.x,.cy.+.y}
150a0 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 ,.{cx.-.x,.cy.+.y},.{cx.+.x,.cy.
150c0 2d 20 79 7d 2c 00 00 00 4a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 -.y},...J.....................{c
150e0 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d x.-.x,.cy.-.y},.{cx.+.y,.cy.+.x}
15100 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 39 20 20 20 20 20 20 20 20 20 ,.{cx.-.y,.cy.+.x},...9.........
15120 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 ............{cx.+.y,.cy.-.x},.{c
15140 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 x.-.y,.cy.-.x}};........for.(int
15160 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 4d 20 20 20 20 20 20 69 66 20 .i.=.0;.i.<.8;.i++)...M......if.
15180 28 70 74 73 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 30 5d 20 3c 20 77 (pts[i][0].>=.0.&&.pts[i][0].<.w
151a0 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 .&&.pts[i][1].>=.0.&&.pts[i][1].
151c0 3c 20 68 29 00 00 00 2a 20 20 20 20 20 20 20 20 70 78 5b 70 74 73 5b 69 5d 5b 31 5d 20 2a 20 77 <.h)...*........px[pts[i][1].*.w
151e0 20 2b 20 70 74 73 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 .+.pts[i][0]].=.c;........if.(d.
15200 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 >.0).{..........d.+=.4.*.(x.-.y)
15220 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c .+.10;..........y--;........}.el
15240 73 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 se..........d.+=.4.*.x.+.6;.....
15260 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 27 73 74 61 74 69 ...x++;......}....}.......'stati
15280 63 20 76 6f 69 64 20 64 72 61 77 5f 63 6c 6f 63 6b 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 c.void.draw_clock(struct.app.*a)
152a0 20 7b 00 00 00 11 20 20 69 66 20 28 21 61 2d 3e 70 69 78 65 6c 73 29 00 00 00 0b 20 20 20 20 72 .{......if.(!a->pixels)........r
152c0 65 74 75 72 6e 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c eturn;......time_t.tt.=.time(NUL
152e0 4c 29 3b 00 00 00 13 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 5f 62 75 66 3b 00 00 00 1c 20 20 L);......struct.tm.tm_buf;......
15300 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 5f 62 75 66 29 3b 00 00 00 1b 20 20 localtime_r(&tt,.&tm_buf);......
15320 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 2e 20 20 6d uint32_t.*px.=.a->pixels;......m
15340 65 6d 73 65 74 28 70 78 2c 20 30 78 66 66 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 emset(px,.0xff,.(size_t)(a->w.*.
15360 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f a->h.*.4));...#..int.cx.=.a->w./
15380 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 .2,.cy.=.a->h./.2;.../..int.r.=.
153a0 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 (a->w.<.a->h.?.a->w.:.a->h)./.2.
153c0 2d 20 31 30 3b 00 00 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c -.10;...5..draw_circle(px,.a->w,
153e0 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 .a->h,.cx,.cy,.r,.0xFF000000);..
15400 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 ....for.(int.i.=.0;.i.<.12;.i++)
15420 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 31 32 2e 30 20 .{........double.ang.=.i./.12.0.
15440 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 3e 20 20 20 20 64 72 61 77 *.2.*.M_PI.-.M_PI_2;...>....draw
15460 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 28 69 6e 74 29 _line(px,.a->w,.a->h,.cx.+.(int)
15480 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 00 00 00 4e 20 20 20 20 20 20 (cos(ang).*.(r.-.10)),...N......
154a0 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 ........cy.+.(int)(sin(ang).*.(r
154c0 20 2d 20 31 30 29 29 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 .-.10)),.cx.+.(int)(cos(ang).*.(
154e0 72 20 2d 20 32 29 29 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 r.-.2)),...:..............cy.+.(
15500 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 20 30 78 46 46 30 30 int)(sin(ang).*.(r.-.2)),.0xFF00
15520 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 37 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 0000);......}...7..double.sa.=.t
15540 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d m_buf.tm_sec./.60.0.*.2.*.M_PI.-
15560 20 4d 5f 50 49 5f 32 3b 00 00 00 50 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 5f 62 75 .M_PI_2;...P..double.ma.=.(tm_bu
15580 66 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 f.tm_min.+.tm_buf.tm_sec./.60.0)
155a0 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d ./.60.0.*.2.*.M_PI.-.M_PI_2;....
155c0 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 4a 20 20 20 20 20 20 28 28 74 6d 5f 62 75 66 2e ..double.ha.=...J......((tm_buf.
155e0 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2f tm_hour.%.12).+.(tm_buf.tm_min./
15600 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 00 00 00 0d 20 .60.0))./.12.0.*.2.*.M_PI.-.....
15620 20 20 20 20 20 4d 5f 50 49 5f 32 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 .....M_PI_2;...B..draw_line(px,.
15640 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 a->w,.a->h,.cx,.cy,.cx.+.(int)(c
15660 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 os(ha).*.r.*.0.5),...7..........
15680 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c ..cy.+.(int)(sin(ha).*.r.*.0.5),
156a0 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c .0xFF000000);...B..draw_line(px,
156c0 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 .a->w,.a->h,.cx,.cy,.cx.+.(int)(
156e0 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 cos(ma).*.r.*.0.7),...7.........
15700 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 ...cy.+.(int)(sin(ma).*.r.*.0.7)
15720 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 ,.0xFF000000);...B..draw_line(px
15740 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 ,.a->w,.a->h,.cx,.cy,.cx.+.(int)
15760 28 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 (cos(sa).*.r.*.0.9),...7........
15780 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 ....cy.+.(int)(sin(sa).*.r.*.0.9
157a0 29 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f ),.0xFFFF0000);...)..wl_surface_
157c0 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 2d attach(a->ws,.a->buf,.0,.0);...-
157e0 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c ..wl_surface_damage(a->ws,.0,.0,
15800 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f .a->w,.a->h);......wl_surface_co
15820 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 mmit(a->ws);....}.......Jstatic.
15840 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f void.xt_cfg(void.*d,.struct.xdg_
15860 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 toplevel.*xt,.int32_t.w,.int32_t
15880 20 68 2c 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 .h,...)...................struct
158a0 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 .wl_array.*st).{......struct.app
158c0 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 .*a.=.d;...3..if.(w.>.0.&&.h.>.0
158e0 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 .&&.(w.!=.a->w.||.h.!=.a->h)).{.
15900 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d 20 68 .......a->w.=.w;........a->h.=.h
15920 3b 00 00 00 17 20 20 20 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 61 29 3b 00 00 00 03 ;........allocate_buffer(a);....
15940 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 ..}....}.......Astatic.void.xs_c
15960 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a fg(void.*d,.struct.xdg_surface.*
15980 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 xs,.uint32_t.s).{......struct.ap
159a0 70 20 2a 61 20 3d 20 64 3b 00 00 00 23 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 p.*a.=.d;...#..xdg_surface_ack_c
159c0 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 onfigure(xs,.s);......a->configu
159e0 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 10 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 61 29 3b 00 red.=.true;......draw_clock(a);.
15a00 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 ...}.......Istatic.const.struct.
15a20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 20 3d 20 xdg_toplevel_listener.xt_list.=.
15a40 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 00 00 00 4e 20 20 20 20 20 20 20 {.configure.=.xt_cfg,...N.......
15a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 28 76 6f 69 64 20 2a 29 6f ...............close.=.(void.*)o
15aa0 6e 5f 73 69 67 7d 3b 00 00 00 49 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 n_sig};...Istatic.const.struct.x
15ac0 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 73 74 20 3d 20 7b 2e dg_surface_listener.xs_list.=.{.
15ae0 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 00 00 00 00 4e 73 74 61 74 configure.=.xs_cfg};.......Nstat
15b00 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 ic.void.registry_handler(void.*d
15b20 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 2c 20 75 69 ata,.struct.wl_registry.*reg,.ui
15b40 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt32_t.id,...?..................
15b60 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 20 75 69 ...........const.char.*iface,.ui
15b80 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 nt32_t.ver).{......struct.app.*a
15ba0 20 3d 20 64 61 74 61 3b 00 00 00 26 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c .=.data;...&..if.(!strcmp(iface,
15bc0 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 45 20 20 20 20 61 2d 3e 63 6f 6d ."wl_compositor"))...E....a->com
15be0 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 p.=.wl_registry_bind(reg,.id,.&w
15c00 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 24 20 l_compositor_interface,.4);...$.
15c20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d .else.if.(!strcmp(iface,."wl_shm
15c40 22 29 29 00 00 00 3d 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f "))...=....a->shm.=.wl_registry_
15c60 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c bind(reg,.id,.&wl_shm_interface,
15c80 20 31 29 3b 00 00 00 2b 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 .1);...+..else.if.(!strcmp(iface
15ca0 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 41 20 20 20 20 61 2d 3e 77 6d ,."xdg_wm_base")).{...A....a->wm
15cc0 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 78 64 .=.wl_registry_bind(reg,.id,.&xd
15ce0 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 1d 20 20 20 20 g_wm_base_interface,.1);........
15d00 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 00 00 00 50 20 20 20 xdg_wm_base_add_listener(...P...
15d20 20 20 20 20 20 61 2d 3e 77 6d 2c 20 26 28 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 .....a->wm,.&(struct.xdg_wm_base
15d40 5f 6c 69 73 74 65 6e 65 72 29 7b 2e 70 69 6e 67 20 3d 20 28 76 6f 69 64 20 2a 29 78 64 67 5f 77 _listener){.ping.=.(void.*)xdg_w
15d60 6d 5f 62 61 73 65 5f 70 6f 6e 67 7d 2c 00 00 00 0b 20 20 20 20 20 20 20 20 61 29 3b 00 00 00 03 m_base_pong},............a);....
15d80 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b ..}....}........int.main(void).{
15da0 00 00 00 26 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 2e 77 20 3d 20 34 30 30 2c 20 ...&..struct.app.a.=.{.w.=.400,.
15dc0 2e 68 20 3d 20 34 30 30 7d 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f .h.=.400};......signal(SIGINT,.o
15de0 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f n_sig);...!..a.d.=.wl_display_co
15e00 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 nnect(NULL);...'..a.reg.=.wl_dis
15e20 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 1b 20 20 77 6c 5f play_get_registry(a.d);......wl_
15e40 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 00 00 00 43 20 20 20 20 20 20 registry_add_listener(...C......
15e60 61 2e 72 65 67 2c 20 26 28 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 a.reg,.&(struct.wl_registry_list
15e80 65 6e 65 72 29 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 7d 2c 20 26 61 29 3b 00 00 00 ener){registry_handler},.&a);...
15ea0 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 ...wl_display_roundtrip(a.d);...
15ec0 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 ...a.ws.=.wl_compositor_create_s
15ee0 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f urface(a.comp);...1..a.xs.=.xdg_
15f00 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e wm_base_get_xdg_surface(a.wm,.a.
15f20 77 73 29 3b 00 00 00 2f 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e ws);.../..xdg_surface_add_listen
15f40 65 72 28 61 2e 78 73 2c 20 26 78 73 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 er(a.xs,.&xs_list,.&a);...(..a.x
15f60 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 t.=.xdg_surface_get_toplevel(a.x
15f80 73 29 3b 00 00 00 30 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e s);...0..xdg_toplevel_add_listen
15fa0 65 72 28 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 er(a.xt,.&xt_list,.&a);...*..xdg
15fc0 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f _toplevel_set_title(a.xt,."wlclo
15fe0 63 6b 22 29 3b 00 00 00 00 00 00 00 36 20 20 2f 2a 20 54 4f 20 4c 4f 43 4b 20 53 49 5a 45 3a 20 ck");.......6../*.TO.LOCK.SIZE:.
16000 53 65 74 20 6d 69 6e 20 61 6e 64 20 6d 61 78 20 74 6f 20 74 68 65 20 73 61 6d 65 20 76 61 6c 75 Set.min.and.max.to.the.same.valu
16020 65 73 2e 00 00 00 4f 20 20 20 20 20 54 4f 20 41 4c 4c 4f 57 20 52 45 53 49 5a 49 4e 47 3a 20 52 es....O.....TO.ALLOW.RESIZING:.R
16040 65 6d 6f 76 65 20 74 68 65 73 65 20 74 77 6f 20 6c 69 6e 65 73 20 6f 72 20 73 65 74 20 74 68 65 emove.these.two.lines.or.set.the
16060 6d 20 74 6f 20 64 69 66 66 65 72 65 6e 74 20 72 61 6e 67 65 73 2e 00 00 00 05 20 20 20 2a 2f 00 m.to.different.ranges........*/.
16080 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 69 6e 5f 73 69 7a 65 28 61 ..,..xdg_toplevel_set_min_size(a
160a0 2e 78 74 2c 20 34 30 30 2c 20 34 30 30 29 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 .xt,.400,.400);...,..xdg_topleve
160c0 6c 5f 73 65 74 5f 6d 61 78 5f 73 69 7a 65 28 61 2e 78 74 2c 20 34 30 30 2c 20 34 30 30 29 3b 00 l_set_max_size(a.xt,.400,.400);.
160e0 00 00 00 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 .........wl_surface_commit(a.ws)
16100 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 ;......wl_display_roundtrip(a.d)
16120 3b 00 00 00 16 20 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 26 61 29 3b 00 00 00 39 20 ;......allocate_buffer(&a);...9.
16140 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f .int.tfd.=.timerfd_create(CLOCK_
16160 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 MONOTONIC,.TFD_CLOEXEC);...F..ti
16180 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 merfd_settime(tfd,.0,.&(struct.i
161a0 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c timerspec){{1,.0},.{1,.0}},.NULL
161c0 29 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 1a 20 20 20 );......while.(running).{.......
161e0 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 4e 20 20 20 20 73 .wl_display_flush(a.d);...N....s
16200 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 truct.pollfd.pfds[2].=.{{wl_disp
16220 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 lay_get_fd(a.d),.POLLIN},.{tfd,.
16240 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1e 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 70 66 64 73 2c 20 POLLIN}};........if.(poll(pfds,.
16260 32 2c 20 2d 31 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 21 20 2,.-1).<.0)..........break;...!.
16280 20 20 20 69 66 20 28 70 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 ...if.(pfds[0].revents.&.POLLIN)
162a0 00 00 00 1f 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e ..........wl_display_dispatch(a.
162c0 64 29 3b 00 00 00 23 20 20 20 20 69 66 20 28 70 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 d);...#....if.(pfds[1].revents.&
162e0 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 .POLLIN).{..........uint64_t.tic
16300 6b 73 3b 00 00 00 27 20 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 ks;...'......read(tfd,.&ticks,.s
16320 69 7a 65 6f 66 28 74 69 63 6b 73 29 29 3b 00 00 00 15 20 20 20 20 20 20 64 72 61 77 5f 63 6c 6f izeof(ticks));..........draw_clo
16340 63 6b 28 26 61 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 0b 20 20 72 65 74 ck(&a);........}......}......ret
16360 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 df 00 00 00 00 urn.0;....}5....................
16380 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b1 1a 00 00 00 00 00 00 01 00 00 00 00 ................................
163a0 00 00 00 35 81 5f d0 00 00 00 12 00 00 00 14 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 01 00 ...5._..........................
163c0 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
164a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
164c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
164e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16520 00 00 00 00 00 00 00 00 00 69 9d 92 94 04 01 00 00 00 00 00 f5 18 00 00 00 b9 00 00 00 00 00 00 .........i......................
16540 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 ba 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 ..........}.....................
16560 00 00 78 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1c 20 20 73 74 72 75 63 74 20 61 70 70 20 ..x..................struct.app.
16580 2a 61 20 3d 20 64 3b 20 28 76 6f 69 64 29 78 f5 18 00 00 00 79 00 00 00 00 00 00 00 00 00 00 00 *a.=.d;.(void)x.....y...........
165a0 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 ................................
165c0 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........5......................
165e0 00 78 00 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 .x..............................
16600 00 f5 18 00 00 00 00 78 00 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 41 00 00 00 01 00 00 00 00 .......x...............A........
16620 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 09 00 00 00 00 00 00 35 81 5f d0 00 00 00 13 00 ...............j.......5._......
16640 00 00 15 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 ba 00 00 00 00 00 00 00 00 ff ff ff ff 00 ................................
16660 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 92 .............................i..
167c0 95 04 01 00 00 00 08 00 f5 18 00 00 00 01 00 00 00 e3 00 00 00 ba 00 00 00 b3 00 00 00 12 23 69 ..............................#i
167e0 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 nclude.<errno.h>....#include.<fc
16800 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 ntl.h>....#include.<math.h>....#
16820 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 include.<poll.h>....#include.<si
16840 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 gnal.h>....#include.<stdbool.h>.
16860 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 ...#include.<stdio.h>....#includ
16880 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 e.<stdlib.h>....#include.<string
168a0 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 .h>....#include.<sys/mman.h>....
168c0 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 #include.<sys/timerfd.h>....#inc
168e0 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 lude.<time.h>....#include.<unist
16900 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 d.h>....#include.<wayland-client
16920 2e 68 3e 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e .h>...&#include."xdg-shell-clien
16940 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 t-protocol.h"........#ifndef.M_P
16960 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 I...##define.M_PI.3.141592653589
16980 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 79323846....#endif....#ifndef.M_
169a0 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 PI_2...%#define.M_PI_2.1.5707963
169c0 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 2679489661923....#endif.......)s
169e0 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e tatic.volatile.sig_atomic_t.runn
16a00 69 6e 67 20 3d 20 31 3b 00 00 00 33 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 ing.=.1;...3static.void.on_sig(i
16a20 6e 74 20 73 29 20 7b 20 28 76 6f 69 64 29 73 3b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 nt.s).{.(void)s;.running.=.0;.}.
16a40 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 .......struct.app.{......struct.
16a60 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 wl_display.*d;......struct.wl_re
16a80 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 gistry.*reg;......struct.wl_comp
16aa0 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d ositor.*comp;......struct.wl_shm
16ac0 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a .*shm;......struct.xdg_wm_base.*
16ae0 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 wm;......struct.wl_surface.*ws;.
16b00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a .....struct.xdg_surface.*xs;....
16b20 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 ..struct.xdg_toplevel.*xt;......
16b40 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 void.*pixels;......struct.wl_buf
16b60 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 12 20 20 62 6f fer.*buf;......int.w,.h;......bo
16b80 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 29 73 74 61 74 ol.configured;....};.......)stat
16ba0 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 ic.int.create_shm_file(size_t.si
16bc0 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 ze).{......char.template[].=."/t
16be0 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 mp/wlclock-shm-XXXXXX";......int
16c00 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 16 20 20 69 66 .fd.=.mkstemp(template);......if
16c20 20 28 66 64 20 3c 20 30 29 20 65 78 69 74 28 31 29 3b 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 .(fd.<.0).exit(1);......unlink(t
16c40 65 6d 70 6c 61 74 65 29 3b 00 00 00 3d 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c emplate);...=..if.(ftruncate(fd,
16c60 20 28 6f 66 66 5f 74 29 73 69 7a 65 29 20 3c 20 30 29 20 7b 20 63 6c 6f 73 65 28 66 64 29 3b 20 .(off_t)size).<.0).{.close(fd);.
16c80 65 78 69 74 28 31 29 3b 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 exit(1);.}......return.fd;....}.
16ca0 00 00 00 00 00 00 2c 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 ......,static.void.allocate_buff
16cc0 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 16 20 20 69 66 20 28 21 61 2d er(struct.app.*a).{......if.(!a-
16ce0 3e 73 68 6d 29 20 72 65 74 75 72 6e 3b 00 00 00 0f 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b >shm).return;......if.(a->buf).{
16d00 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 ........wl_buffer_destroy(a->buf
16d20 29 3b 00 00 00 31 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a );...1....munmap(a->pixels,.(siz
16d40 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 03 20 20 7d 00 00 e_t)(a->w.*.a->h.*.4));......}..
16d60 00 18 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 61 2d 3e 77 20 2a 20 34 3b 00 00 00 28 20 20 ....int.stride.=.a->w.*.4;...(..
16d80 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 28 73 74 72 69 64 65 20 2a 20 size_t.size.=.(size_t)(stride.*.
16da0 61 2d 3e 68 29 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f a->h);...!..int.fd.=.create_shm_
16dc0 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 file(size);...J..a->pixels.=.mma
16de0 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 p(NULL,.size,.PROT_READ.|.PROT_W
16e00 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 4b 20 20 73 RITE,.MAP_SHARED,.fd,.0);...K..s
16e20 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d truct.wl_shm_pool.*pool.=.wl_shm
16e40 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 28 69 6e 74 33 32 5f _create_pool(a->shm,.fd,.(int32_
16e60 74 29 73 69 7a 65 29 3b 00 00 00 5a 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f t)size);...Z..a->buf.=.wl_shm_po
16e80 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 ol_create_buffer(pool,.0,.a->w,.
16ea0 61 2d 3e 68 2c 20 73 74 72 69 64 65 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 a->h,.stride,.WL_SHM_FORMAT_ARGB
16ec0 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 8888);......wl_shm_pool_destroy(
16ee0 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 01 7d 00 00 00 00 00 pool);......close(fd);....}.....
16f00 00 00 5f 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f .._static.void.draw_line(uint32_
16f20 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 t.*px,.int.w,.int.h,.int.x0,.int
16f40 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 .y0,.int.x1,.int.y1,.uint32_t.c)
16f60 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 .{.../..int.dx.=.abs(x1.-.x0),.s
16f80 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 x.=.x0.<.x1.?.1.:.-1;...0..int.d
16fa0 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 y.=.-abs(y1.-.y0),.sy.=.y0.<.y1.
16fc0 3f 20 31 20 3a 20 2d 31 3b 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 ?.1.:.-1;......int.err.=.dx.+.dy
16fe0 2c 20 65 32 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 44 20 20 20 20 69 66 ,.e2;......while.(1).{...D....if
17000 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 .(x0.>=.0.&&.x0.<.w.&&.y0.>=.0.&
17020 26 20 79 30 20 3c 20 68 29 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 &.y0.<.h).px[y0.*.w.+.x0].=.c;..
17040 00 24 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 20 .$....if.(x0.==.x1.&&.y0.==.y1).
17060 62 72 65 61 6b 3b 00 00 00 11 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 2a 20 break;........e2.=.2.*.err;...*.
17080 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 20 65 72 72 20 2b 3d 20 64 79 3b 20 78 30 ...if.(e2.>=.dy).{.err.+=.dy;.x0
170a0 20 2b 3d 20 73 78 3b 20 7d 00 00 00 2a 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b .+=.sx;.}...*....if.(e2.<=.dx).{
170c0 20 65 72 72 20 2b 3d 20 64 78 3b 20 79 30 20 2b 3d 20 73 79 3b 20 7d 00 00 00 03 20 20 7d 00 00 .err.+=.dx;.y0.+=.sy;.}......}..
170e0 00 01 7d 00 00 00 00 00 00 00 58 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 ..}.......Xstatic.void.draw_circ
17100 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 le(uint32_t.*px,.int.w,.int.h,.i
17120 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 nt.cx,.int.cy,.int.r,.uint32_t.c
17140 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 ).{..."..int.x.=.0,.y.=.r,.d.=.3
17160 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 .-.2.*.r;......while.(y.>=.x).{.
17180 00 00 4c 20 20 20 20 69 6e 74 20 70 74 73 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 2b 78 2c 20 63 ..L....int.pts[8][2].=.{{cx+x,.c
171a0 79 2b 79 7d 2c 20 7b 63 78 2d 78 2c 20 63 79 2b 79 7d 2c 20 7b 63 78 2b 78 2c 20 63 79 2d 79 7d y+y},.{cx-x,.cy+y},.{cx+x,.cy-y}
171c0 2c 20 7b 63 78 2d 78 2c 20 63 79 2d 79 7d 2c 00 00 00 4d 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.{cx-x,.cy-y},...M.............
171e0 20 20 20 20 20 20 20 20 7b 63 78 2b 79 2c 20 63 79 2b 78 7d 2c 20 7b 63 78 2d 79 2c 20 63 79 2b ........{cx+y,.cy+x},.{cx-y,.cy+
17200 78 7d 2c 20 7b 63 78 2b 79 2c 20 63 79 2d 78 7d 2c 20 7b 63 78 2d 79 2c 20 63 79 2d 78 7d 7d 3b x},.{cx+y,.cy-x},.{cx-y,.cy-x}};
17220 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 ........for.(int.i.=.0;.i.<.8;.i
17240 2b 2b 29 00 00 00 4d 20 20 20 20 20 20 69 66 20 28 70 74 73 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 ++)...M......if.(pts[i][0].>=.0.
17260 26 26 20 70 74 73 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3e 3d &&.pts[i][0].<.w.&&.pts[i][1].>=
17280 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 2a 20 20 20 20 20 20 20 20 .0.&&.pts[i][1].<.h)...*........
172a0 70 78 5b 70 74 73 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 74 73 5b 69 5d 5b 30 5d 5d 20 3d 20 px[pts[i][1].*.w.+.pts[i][0]].=.
172c0 63 3b 00 00 00 43 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 20 64 20 2b 3d 20 34 20 2a 20 c;...C....if.(d.>.0).{.d.+=.4.*.
172e0 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 20 79 2d 2d 3b 20 7d 20 65 6c 73 65 20 64 20 2b 3d 20 34 (x.-.y).+.10;.y--;.}.else.d.+=.4
17300 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 .*.x.+.6;........x++;......}....
17320 7d 00 00 00 00 00 00 00 27 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 6c 6f 63 6b 28 }.......'static.void.draw_clock(
17340 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2b 20 20 69 66 20 28 21 61 2d 3e 70 69 struct.app.*a).{...+..if.(!a->pi
17360 78 65 6c 73 20 7c 7c 20 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 29 20 72 65 74 75 72 6e 3b 00 xels.||.!a->configured).return;.
17380 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 13 .....time_t.tt.=.time(NULL);....
173a0 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 5f 62 75 66 3b 00 00 00 1c 20 20 6c 6f 63 61 6c 74 69 ..struct.tm.tm_buf;......localti
173c0 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 5f 62 75 66 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f me_r(&tt,.&tm_buf);......uint32_
173e0 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 2e 20 20 6d 65 6d 73 65 74 28 70 t.*px.=.a->pixels;......memset(p
17400 78 2c 20 30 78 66 66 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 x,.0xff,.(size_t)(a->w.*.a->h.*.
17420 34 29 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 4));...#..int.cx.=.a->w./.2,.cy.
17440 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c =.a->h./.2;.../..int.r.=.(a->w.<
17460 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 .a->h.?.a->w.:.a->h)./.2.-.10;..
17480 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 .5..draw_circle(px,.a->w,.a->h,.
174a0 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 20 20 20 66 6f 72 cx,.cy,.r,.0xFF000000);......for
174c0 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 .(int.i.=.0;.i.<.12;.i++).{.....
174e0 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d ...double.ang.=.i./.12.0.*.2.*.M
17500 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 5f 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 _PI.-.M_PI_2;..._....draw_line(p
17520 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e x,.a->w,.a->h,.cx.+.(int)(cos(an
17540 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 g).*.(r.-.10)),.cy.+.(int)(sin(a
17560 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 00 00 00 5a 20 20 20 20 20 20 20 20 20 20 20 20 ng).*.(r.-.10)),...Z............
17580 20 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 ..cx.+.(int)(cos(ang).*.(r.-.2))
175a0 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 ,.cy.+.(int)(sin(ang).*.(r.-.2))
175c0 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 37 20 20 64 6f 75 62 6c ,.0xFF000000);......}...7..doubl
175e0 65 20 73 61 20 3d 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 e.sa.=.tm_buf.tm_sec./.60.0.*.2.
17600 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 50 20 20 64 6f 75 62 6c 65 20 6d 61 20 *.M_PI.-.M_PI_2;...P..double.ma.
17620 3d 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 =.(tm_buf.tm_min.+.tm_buf.tm_sec
17640 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 ./.60.0)./.60.0.*.2.*.M_PI.-.M_P
17660 49 5f 32 3b 00 00 00 5a 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 5f 62 75 66 2e 74 I_2;...Z..double.ha.=.((tm_buf.t
17680 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2f 20 m_hour.%.12).+.(tm_buf.tm_min./.
176a0 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 60.0))./.12.0.*.2.*.M_PI.-.M_PI_
176c0 32 3b 00 00 00 6e 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2;...n..draw_line(px,.a->w,.a->h
176e0 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 68 61 29 20 2a 20 72 ,.cx,.cy,.cx.+.(int)(cos(ha).*.r
17700 20 2a 20 30 2e 35 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 68 61 29 20 2a 20 72 20 .*.0.5),.cy.+.(int)(sin(ha).*.r.
17720 2a 20 30 2e 35 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 6e 20 20 64 72 61 77 5f 6c *.0.5),.0xFF000000);...n..draw_l
17740 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b ine(px,.a->w,.a->h,.cx,.cy,.cx.+
17760 20 28 69 6e 74 29 28 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 20 63 79 20 2b 20 .(int)(cos(ma).*.r.*.0.7),.cy.+.
17780 28 69 6e 74 29 28 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 20 30 78 46 46 30 30 (int)(sin(ma).*.r.*.0.7),.0xFF00
177a0 30 30 30 30 29 3b 00 00 00 6e 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 0000);...n..draw_line(px,.a->w,.
177c0 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 73 61 29 a->h,.cx,.cy,.cx.+.(int)(cos(sa)
177e0 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 73 61 29 20 .*.r.*.0.9),.cy.+.(int)(sin(sa).
17800 2a 20 72 20 2a 20 30 2e 39 29 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 29 20 20 77 6c *.r.*.0.9),.0xFFFF0000);...)..wl
17820 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 _surface_attach(a->ws,.a->buf,.0
17840 2c 20 30 29 3b 00 00 00 2d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 28 61 2d 3e ,.0);...-..wl_surface_damage(a->
17860 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 ws,.0,.0,.a->w,.a->h);......wl_s
17880 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 urface_commit(a->ws);....}......
178a0 00 61 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 .astatic.void.xt_cfg(void.*d,.st
178c0 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 ruct.xdg_toplevel.*xt,.int32_t.w
178e0 2c 20 69 6e 74 33 32 5f 74 20 68 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 ,.int32_t.h,.struct.wl_array.*st
17900 29 20 7b 00 00 00 28 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 20 28 76 6f 69 ).{...(..struct.app.*a.=.d;.(voi
17920 64 29 78 74 3b 20 28 76 6f 69 64 29 73 74 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 d)xt;.(void)st;...3..if.(w.>.0.&
17940 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d &.h.>.0.&&.(w.!=.a->w.||.h.!=.a-
17960 3e 68 29 29 20 7b 00 00 00 17 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 20 61 2d 3e 68 20 3d 20 68 >h)).{........a->w.=.w;.a->h.=.h
17980 3b 00 00 00 23 20 20 20 20 69 66 20 28 61 2d 3e 73 68 6d 29 20 61 6c 6c 6f 63 61 74 65 5f 62 75 ;...#....if.(a->shm).allocate_bu
179a0 66 66 65 72 28 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 ffer(a);......}....}.......Astat
179c0 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 ic.void.xs_cfg(void.*d,.struct.x
179e0 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 dg_surface.*xs,.uint32_t.s).{...
17a00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 23 20 20 78 64 67 5f 73 ...struct.app.*a.=.d;...#..xdg_s
17a20 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 29 3b 00 00 00 17 urface_ack_configure(xs,.s);....
17a40 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 2c 20 20 69 66 20 ..a->configured.=.true;...,..if.
17a60 28 21 61 2d 3e 62 75 66 20 26 26 20 61 2d 3e 73 68 6d 29 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 (!a->buf.&&.a->shm).allocate_buf
17a80 66 65 72 28 61 29 3b 00 00 00 10 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 61 29 3b 00 00 00 01 7d fer(a);......draw_clock(a);....}
17aa0 00 00 00 00 00 00 00 5d 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 .......]static.void.wm_ping(void
17ac0 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e .*d,.struct.xdg_wm_base.*wm,.uin
17ae0 74 33 32 5f 74 20 73 29 20 7b 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 t32_t.s).{.xdg_wm_base_pong(wm,.
17b00 73 29 3b 20 7d 00 00 00 00 00 00 00 71 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 s);.}.......qstatic.void.registr
17b20 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f y_handler(void.*data,.struct.wl_
17b40 72 65 67 69 73 74 72 79 20 2a 72 65 67 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 registry.*reg,.uint32_t.id,.cons
17b60 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 t.char.*iface,.uint32_t.ver).{..
17b80 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 61 74 61 3b 00 00 00 68 20 20 69 ....struct.app.*a.=.data;...h..i
17ba0 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 f.(!strcmp(iface,."wl_compositor
17bc0 22 29 29 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 ")).a->comp.=.wl_registry_bind(r
17be0 65 67 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 eg,.id,.&wl_compositor_interface
17c00 2c 20 34 29 3b 00 00 00 5e 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 ,.4);...^..else.if.(!strcmp(ifac
17c20 65 2c 20 22 77 6c 5f 73 68 6d 22 29 29 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 e,."wl_shm")).a->shm.=.wl_regist
17c40 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 ry_bind(reg,.id,.&wl_shm_interfa
17c60 63 65 2c 20 31 29 3b 00 00 00 2b 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 ce,.1);...+..else.if.(!strcmp(if
17c80 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 41 20 20 20 20 61 2d ace,."xdg_wm_base")).{...A....a-
17ca0 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 >wm.=.wl_registry_bind(reg,.id,.
17cc0 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 41 20 &xdg_wm_base_interface,.1);...A.
17ce0 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 ...static.const.struct.xdg_wm_ba
17d00 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 20 3d 20 7b 77 6d 5f 70 69 6e 67 7d 3b se_listener.wm_list.=.{wm_ping};
17d20 00 00 00 31 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 ...1....xdg_wm_base_add_listener
17d40 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 74 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 (a->wm,.&wm_list,.a);......}....
17d60 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 26 20 20 73 }........int.main(void).{...&..s
17d80 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 2e 77 20 3d 20 34 30 30 2c 20 2e 68 20 3d 20 34 30 truct.app.a.=.{.w.=.400,..h.=.40
17da0 30 7d 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 0};......signal(SIGINT,.on_sig);
17dc0 00 00 00 32 20 20 69 66 20 28 21 28 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e ...2..if.(!(a.d.=.wl_display_con
17de0 6e 65 63 74 28 4e 55 4c 4c 29 29 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 nect(NULL))).return.1;...'..a.re
17e00 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 g.=.wl_display_get_registry(a.d)
17e20 3b 00 00 00 49 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 ;...I..static.const.struct.wl_re
17e40 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 20 3d 20 7b 72 65 67 69 gistry_listener.reg_list.=.{regi
17e60 73 74 72 79 5f 68 61 6e 64 6c 65 72 7d 3b 00 00 00 31 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f stry_handler};...1..wl_registry_
17e80 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c 69 73 74 2c 20 26 add_listener(a.reg,.&reg_list,.&
17ea0 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e a);......wl_display_roundtrip(a.
17ec0 64 29 3b 00 00 00 2b 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c d);...+..if.(!a.comp.||.!a.shm.|
17ee0 7c 20 21 61 2e 77 6d 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 00 00 00 00 2e 20 20 61 2e 77 73 |.!a.wm).return.1;..........a.ws
17f00 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 .=.wl_compositor_create_surface(
17f20 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 a.comp);...1..a.xs.=.xdg_wm_base
17f40 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 _get_xdg_surface(a.wm,.a.ws);...
17f60 3e 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 >..static.const.struct.xdg_surfa
17f80 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 73 74 20 3d 20 7b 78 73 5f 63 66 67 7d 3b 00 ce_listener.xs_list.=.{xs_cfg};.
17fa0 00 00 2f 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e ../..xdg_surface_add_listener(a.
17fc0 78 73 2c 20 26 78 73 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 xs,.&xs_list,.&a);...(..a.xt.=.x
17fe0 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 dg_surface_get_toplevel(a.xs);..
18000 00 4e 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c .N..static.const.struct.xdg_topl
18020 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 20 3d 20 7b 78 74 5f 63 66 67 2c evel_listener.xt_list.=.{xt_cfg,
18040 20 28 76 6f 69 64 2a 29 6f 6e 5f 73 69 67 7d 3b 00 00 00 30 20 20 78 64 67 5f 74 6f 70 6c 65 76 .(void*)on_sig};...0..xdg_toplev
18060 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 2c 20 el_add_listener(a.xt,.&xt_list,.
18080 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 &a);...*..xdg_toplevel_set_title
180a0 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 00 00 00 00 2c 20 20 78 64 67 5f (a.xt,."wlclock");.......,..xdg_
180c0 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 69 6e 5f 73 69 7a 65 28 61 2e 78 74 2c 20 34 30 30 2c toplevel_set_min_size(a.xt,.400,
180e0 20 34 30 30 29 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 61 78 .400);...,..xdg_toplevel_set_max
18100 5f 73 69 7a 65 28 61 2e 78 74 2c 20 34 30 30 2c 20 34 30 30 29 3b 00 00 00 00 00 00 00 1a 20 20 _size(a.xt,.400,.400);..........
18120 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 39 20 20 69 6e wl_surface_commit(a.ws);...9..in
18140 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e t.tfd.=.timerfd_create(CLOCK_MON
18160 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 OTONIC,.TFD_CLOEXEC);...F..timer
18180 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d fd_settime(tfd,.0,.&(struct.itim
181a0 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 erspec){{1,.0},.{1,.0}},.NULL);.
181c0 00 00 00 00 00 00 35 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c 5f 64 69 ......5..while.(running.&&.wl_di
181e0 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 20 21 3d 20 2d 31 29 20 7b 00 00 00 4e splay_dispatch(a.d).!=.-1).{...N
18200 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c ....struct.pollfd.pfds[2].=.{{wl
18220 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b _display_get_fd(a.d),.POLLIN},.{
18240 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 25 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 70 tfd,.POLLIN}};...%....if.(poll(p
18260 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 62 72 65 61 6b 3b 00 00 00 23 20 20 20 20 69 fds,.2,.-1).<.0).break;...#....i
18280 66 20 28 70 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 f.(pfds[1].revents.&.POLLIN).{..
182a0 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b 00 00 00 3f 20 20 20 20 20 ........uint64_t.ticks;...?.....
182c0 20 69 66 20 28 72 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 69 7a 65 6f 66 28 74 69 .if.(read(tfd,.&ticks,.sizeof(ti
182e0 63 6b 73 29 29 20 3e 20 30 29 20 64 72 61 77 5f 63 6c 6f 63 6b 28 26 61 29 3b 35 81 f5 18 00 00 cks)).>.0).draw_clock(&a);5.....
18300 00 00 01 00 00 00 09 00 00 00 b2 00 00 00 2f 00 00 00 e0 00 00 00 07 00 00 00 29 00 00 00 00 00 ............../...........).....
18320 00 00 ed 18 00 00 00 00 00 00 72 1a 00 00 00 00 00 00 35 81 5f d0 00 00 00 14 00 00 00 16 00 00 ..........r.......5._...........
18340 00 00 00 00 00 00 00 00 00 15 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 ................................
18360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
183a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
183c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
183e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
184a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 9e bc 04 01 00 00 ........................i.......
184c0 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 e8 00 00 00 1f 23 64 65 66 69 6e 65 .........................#define
184e0 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 00 26 23 69 6e 63 ._POSIX_C_SOURCE.200809L...&#inc
18500 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e lude."xdg-shell-client-protocol.
18520 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 h"....#include.<errno.h>....#inc
18540 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 lude.<fcntl.h>....#include.<math
18560 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 .h>....#include.<poll.h>....#inc
18580 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 lude.<signal.h>....#include.<std
185a0 62 6f 6f 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 bool.h>....#include.<stdio.h>...
185c0 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 .#include.<stdlib.h>....#include
185e0 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 .<string.h>....#include.<sys/mma
18600 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e n.h>....#include.<sys/timerfd.h>
18620 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 ....#include.<time.h>....#includ
18640 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e e.<unistd.h>....#include.<waylan
18660 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 d-client.h>........#ifndef.M_PI.
18680 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 ..##define.M_PI.3.14159265358979
186a0 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 323846....#endif....#ifndef.M_PI
186c0 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 _2...%#define.M_PI_2.1.570796326
186e0 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 79489661923....#endif.......)sta
18700 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e tic.volatile.sig_atomic_t.runnin
18720 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 g.=.1;....static.void.on_sig(int
18740 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 .s).{......(void)s;......running
18760 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 .=.0;....}........struct.app.{..
18780 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 ....struct.wl_display.*d;......s
187a0 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 truct.wl_registry.*reg;......str
187c0 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 uct.wl_compositor.*comp;......st
187e0 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 ruct.wl_shm.*shm;......struct.xd
18800 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 g_wm_base.*wm;......struct.wl_su
18820 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 rface.*ws;......struct.xdg_surfa
18840 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c ce.*xs;......struct.xdg_toplevel
18860 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 .*xt;......void.*pixels;......st
18880 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c ruct.wl_buffer.*buf;......int.w,
188a0 20 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 02 7d 3b 00 .h;......bool.configured;....};.
188c0 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c ......)static.int.create_shm_fil
188e0 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c e(size_t.size).{......char.templ
18900 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 73 68 6d 2d 58 58 58 58 58 58 ate[].=."/tmp/wlclock-shm-XXXXXX
18920 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 ";......int.fd.=.mkstemp(templat
18940 65 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 e);......if.(fd.<.0)........exit
18960 28 31 29 3b 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 27 20 (1);......unlink(template);...'.
18980 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 28 6f 66 66 5f 74 29 73 69 7a 65 29 20 .if.(ftruncate(fd,.(off_t)size).
189a0 3c 20 30 29 20 7b 00 00 00 0e 20 20 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0c 20 20 20 20 <.0).{........close(fd);........
189c0 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 exit(1);......}......return.fd;.
189e0 00 00 01 7d 00 00 00 00 00 00 00 2c 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 ...}.......,static.void.allocate
18a00 5f 62 75 66 66 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0e 20 20 69 66 _buffer(struct.app.*a).{......if
18a20 20 28 21 61 2d 3e 73 68 6d 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0f 20 20 69 .(!a->shm)........return;......i
18a40 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 f.(a->buf).{........wl_buffer_de
18a60 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 31 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e stroy(a->buf);...1....munmap(a->
18a80 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 pixels,.(size_t)(a->w.*.a->h.*.4
18aa0 29 29 3b 00 00 00 03 20 20 7d 00 00 00 18 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 61 2d 3e ));......}......int.stride.=.a->
18ac0 77 20 2a 20 34 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f w.*.4;...(..size_t.size.=.(size_
18ae0 74 29 28 73 74 72 69 64 65 20 2a 20 61 2d 3e 68 29 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d t)(stride.*.a->h);...!..int.fd.=
18b00 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e .create_shm_file(size);...J..a->
18b20 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 pixels.=.mmap(NULL,.size,.PROT_R
18b40 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 EAD.|.PROT_WRITE,.MAP_SHARED,.fd
18b60 2c 20 30 29 3b 00 00 00 4b 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 ,.0);...K..struct.wl_shm_pool.*p
18b80 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c ool.=.wl_shm_create_pool(a->shm,
18ba0 20 66 64 2c 20 28 69 6e 74 33 32 5f 74 29 73 69 7a 65 29 3b 00 00 00 41 20 20 61 2d 3e 62 75 66 .fd,.(int32_t)size);...A..a->buf
18bc0 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f .=.wl_shm_pool_create_buffer(poo
18be0 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 73 74 72 69 64 65 2c 00 00 00 3d 20 20 20 l,.0,.a->w,.a->h,.stride,...=...
18c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
18c20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 ..WL_SHM_FORMAT_ARGB8888);......
18c40 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 wl_shm_pool_destroy(pool);......
18c60 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f close(fd);....}.......Istatic.vo
18c80 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 id.draw_line(uint32_t.*px,.int.w
18ca0 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c ,.int.h,.int.x0,.int.y0,.int.x1,
18cc0 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 79 31 ...+......................int.y1
18ce0 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 ,.uint32_t.c).{.../..int.dx.=.ab
18d00 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d s(x1.-.x0),.sx.=.x0.<.x1.?.1.:.-
18d20 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 1;...0..int.dy.=.-abs(y1.-.y0),.
18d40 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 18 20 20 69 6e 74 20 sy.=.y0.<.y1.?.1.:.-1;......int.
18d60 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 err.=.dx.+.dy,.e2;......while.(1
18d80 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 ).{.../....if.(x0.>=.0.&&.x0.<.w
18da0 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 1a 20 20 20 20 20 20 .&&.y0.>=.0.&&.y0.<.h)..........
18dc0 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 1d 20 20 20 20 69 66 20 28 px[y0.*.w.+.x0].=.c;........if.(
18de0 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 20 62 x0.==.x1.&&.y0.==.y1)..........b
18e00 72 65 61 6b 3b 00 00 00 11 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 reak;........e2.=.2.*.err;......
18e20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b ..if.(e2.>=.dy).{..........err.+
18e40 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 =.dy;..........x0.+=.sx;........
18e60 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 }........if.(e2.<=.dx).{........
18e80 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 ..err.+=.dx;..........y0.+=.sy;.
18ea0 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 .......}......}....}.......Jstat
18ec0 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 ic.void.draw_circle(uint32_t.*px
18ee0 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 ,.int.w,.int.h,.int.cx,.int.cy,.
18f00 69 6e 74 20 72 2c 00 00 00 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 int.r,...%......................
18f20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 ..uint32_t.c).{..."..int.x.=.0,.
18f40 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 y.=.r,.d.=.3.-.2.*.r;......while
18f60 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 4a 20 20 20 20 69 6e 74 20 70 74 73 5b 38 5d 5b 32 5d .(y.>=.x).{...J....int.pts[8][2]
18f80 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 .=.{{cx.+.x,.cy.+.y},.{cx.-.x,.c
18fa0 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 4a 20 20 20 y.+.y},.{cx.+.x,.cy.-.y},...J...
18fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 ..................{cx.-.x,.cy.-.
18fe0 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 y},.{cx.+.y,.cy.+.x},.{cx.-.y,.c
19000 79 20 2b 20 78 7d 2c 00 00 00 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y.+.x},...9.....................
19020 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 {cx.+.y,.cy.-.x},.{cx.-.y,.cy.-.
19040 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 x}};........for.(int.i.=.0;.i.<.
19060 38 3b 20 69 2b 2b 29 00 00 00 4d 20 20 20 20 20 20 69 66 20 28 70 74 73 5b 69 5d 5b 30 5d 20 3e 8;.i++)...M......if.(pts[i][0].>
19080 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 74 73 5b 69 5d 5b 31 =.0.&&.pts[i][0].<.w.&&.pts[i][1
190a0 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 2a 20 20 20 20 ].>=.0.&&.pts[i][1].<.h)...*....
190c0 20 20 20 20 70 78 5b 70 74 73 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 74 73 5b 69 5d 5b 30 5d ....px[pts[i][1].*.w.+.pts[i][0]
190e0 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 ].=.c;........if.(d.>.0).{......
19100 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 ....d.+=.4.*.(x.-.y).+.10;......
19120 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 ....y--;........}.else..........
19140 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 d.+=.4.*.x.+.6;........x++;.....
19160 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 27 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f .}....}.......'static.void.draw_
19180 63 6c 6f 63 6b 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 23 20 20 69 66 20 28 clock(struct.app.*a).{...#..if.(
191a0 21 61 2d 3e 70 69 78 65 6c 73 20 7c 7c 20 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 !a->pixels.||.!a->configured)...
191c0 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 .....return;......time_t.tt.=.ti
191e0 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 13 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 5f 62 75 66 3b me(NULL);......struct.tm.tm_buf;
19200 00 00 00 1c 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 5f 62 75 66 29 3b ......localtime_r(&tt,.&tm_buf);
19220 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 ......uint32_t.*px.=.a->pixels;.
19240 00 00 2e 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 66 66 2c 20 28 73 69 7a 65 5f 74 29 28 61 .....memset(px,.0xff,.(size_t)(a
19260 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 ->w.*.a->h.*.4));...#..int.cx.=.
19280 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e a->w./.2,.cy.=.a->h./.2;.../..in
192a0 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 t.r.=.(a->w.<.a->h.?.a->w.:.a->h
192c0 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c )./.2.-.10;...5..draw_circle(px,
192e0 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 .a->w,.a->h,.cx,.cy,.r,.0xFF0000
19300 30 30 29 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 00);......for.(int.i.=.0;.i.<.12
19320 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f ;.i++).{........double.ang.=.i./
19340 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 3e 20 20 .12.0.*.2.*.M_PI.-.M_PI_2;...>..
19360 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b ..draw_line(px,.a->w,.a->h,.cx.+
19380 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 00 00 00 4e .(int)(cos(ang).*.(r.-.10)),...N
193a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 ..............cy.+.(int)(sin(ang
193c0 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e ).*.(r.-.10)),.cx.+.(int)(cos(an
193e0 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g).*.(r.-.2)),...:..............
19400 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 20 cy.+.(int)(sin(ang).*.(r.-.2)),.
19420 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 37 20 20 64 6f 75 62 6c 65 20 0xFF000000);......}...7..double.
19440 73 61 20 3d 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 sa.=.tm_buf.tm_sec./.60.0.*.2.*.
19460 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 50 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 M_PI.-.M_PI_2;...P..double.ma.=.
19480 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f (tm_buf.tm_min.+.tm_buf.tm_sec./
194a0 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f .60.0)./.60.0.*.2.*.M_PI.-.M_PI_
194c0 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 4a 20 20 20 20 20 20 28 28 74 2;......double.ha.=...J......((t
194e0 6d 5f 62 75 66 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 5f 62 75 66 2e 74 6d m_buf.tm_hour.%.12).+.(tm_buf.tm
19500 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 _min./.60.0))./.12.0.*.2.*.M_PI.
19520 2d 00 00 00 0d 20 20 20 20 20 20 4d 5f 50 49 5f 32 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e -..........M_PI_2;...B..draw_lin
19540 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 e(px,.a->w,.a->h,.cx,.cy,.cx.+.(
19560 69 6e 74 29 28 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 00 00 00 37 20 20 20 20 int)(cos(ha).*.r.*.0.5),...7....
19580 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 68 61 29 20 2a 20 72 20 2a ........cy.+.(int)(sin(ha).*.r.*
195a0 20 30 2e 35 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 .0.5),.0xFF000000);...B..draw_li
195c0 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 ne(px,.a->w,.a->h,.cx,.cy,.cx.+.
195e0 28 69 6e 74 29 28 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 00 00 00 37 20 20 20 (int)(cos(ma).*.r.*.0.7),...7...
19600 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 6d 61 29 20 2a 20 72 20 .........cy.+.(int)(sin(ma).*.r.
19620 2a 20 30 2e 37 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 42 20 20 64 72 61 77 5f 6c *.0.7),.0xFF000000);...B..draw_l
19640 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b ine(px,.a->w,.a->h,.cx,.cy,.cx.+
19660 20 28 69 6e 74 29 28 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 00 00 00 37 20 20 .(int)(cos(sa).*.r.*.0.9),...7..
19680 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 73 61 29 20 2a 20 72 ..........cy.+.(int)(sin(sa).*.r
196a0 20 2a 20 30 2e 39 29 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 .*.0.9),.0xFFFF0000);...)..wl_su
196c0 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 rface_attach(a->ws,.a->buf,.0,.0
196e0 29 3b 00 00 00 2d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 28 61 2d 3e 77 73 2c );...-..wl_surface_damage(a->ws,
19700 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 .0,.0,.a->w,.a->h);......wl_surf
19720 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 ace_commit(a->ws);....}.......Js
19740 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 tatic.void.xt_cfg(void.*d,.struc
19760 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 t.xdg_toplevel.*xt,.int32_t.w,.i
19780 6e 74 33 32 5f 74 20 68 2c 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt32_t.h,...)...................
197a0 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 29 20 7b 00 00 00 14 20 20 73 74 72 75 struct.wl_array.*st).{......stru
197c0 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 0b 20 20 28 76 6f 69 64 29 78 74 3b 00 00 00 ct.app.*a.=.d;......(void)xt;...
197e0 0b 20 20 28 76 6f 69 64 29 73 74 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 ...(void)st;...3..if.(w.>.0.&&.h
19800 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 .>.0.&&.(w.!=.a->w.||.h.!=.a->h)
19820 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 ).{........a->w.=.w;........a->h
19840 20 3d 20 68 3b 00 00 00 0f 20 20 20 20 69 66 20 28 61 2d 3e 73 68 6d 29 00 00 00 19 20 20 20 20 .=.h;........if.(a->shm)........
19860 20 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 ..allocate_buffer(a);......}....
19880 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 }.......Astatic.void.xs_cfg(void
198a0 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e .*d,.struct.xdg_surface.*xs,.uin
198c0 74 33 32 5f 74 20 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 t32_t.s).{......struct.app.*a.=.
198e0 64 3b 00 00 00 23 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 d;...#..xdg_surface_ack_configur
19900 65 28 78 73 2c 20 73 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 e(xs,.s);......a->configured.=.t
19920 72 75 65 3b 00 00 00 18 20 20 69 66 20 28 21 61 2d 3e 62 75 66 20 26 26 20 61 2d 3e 73 68 6d 29 rue;......if.(!a->buf.&&.a->shm)
19940 00 00 00 17 20 20 20 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 61 29 3b 00 00 00 10 20 ........allocate_buffer(a);.....
19960 20 64 72 61 77 5f 63 6c 6f 63 6b 28 61 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 42 73 74 61 74 .draw_clock(a);....}.......Bstat
19980 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 ic.void.wm_ping(void.*d,.struct.
199a0 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 xdg_wm_base.*wm,.uint32_t.s).{..
199c0 00 1a 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 29 3b 00 00 00 01 ....xdg_wm_base_pong(wm,.s);....
199e0 7d 00 00 00 00 00 00 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 }.......Nstatic.void.registry_ha
19a00 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 ndler(void.*data,.struct.wl_regi
19a20 73 74 72 79 20 2a 72 65 67 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 3f 20 20 20 20 20 stry.*reg,.uint32_t.id,...?.....
19a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 ........................const.ch
19a60 61 72 20 2a 69 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 ar.*iface,.uint32_t.ver).{......
19a80 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 61 74 61 3b 00 00 00 26 20 20 69 66 20 28 21 struct.app.*a.=.data;...&..if.(!
19aa0 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 strcmp(iface,."wl_compositor")).
19ac0 00 00 45 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e ..E....a->comp.=.wl_registry_bin
19ae0 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 d(reg,.id,.&wl_compositor_interf
19b00 61 63 65 2c 20 34 29 3b 00 00 00 24 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 ace,.4);...$..else.if.(!strcmp(i
19b20 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3d 20 20 20 20 61 2d 3e 73 68 6d 20 3d face,."wl_shm"))...=....a->shm.=
19b40 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 73 .wl_registry_bind(reg,.id,.&wl_s
19b60 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 2b 20 20 65 6c 73 65 20 69 66 20 28 hm_interface,.1);...+..else.if.(
19b80 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b !strcmp(iface,."xdg_wm_base")).{
19ba0 00 00 00 41 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 ...A....a->wm.=.wl_registry_bind
19bc0 28 72 65 67 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 (reg,.id,.&xdg_wm_base_interface
19be0 2c 20 31 29 3b 00 00 00 41 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 ,.1);...A....static.const.struct
19c00 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 20 3d 20 .xdg_wm_base_listener.wm_list.=.
19c20 7b 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 31 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 {wm_ping};...1....xdg_wm_base_ad
19c40 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 74 2c 20 61 29 3b 00 d_listener(a->wm,.&wm_list,.a);.
19c60 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 .....}....}........int.main(void
19c80 29 20 7b 00 00 00 26 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 2e 77 20 3d 20 34 30 ).{...&..struct.app.a.=.{.w.=.40
19ca0 30 2c 20 2e 68 20 3d 20 34 30 30 7d 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 0,..h.=.400};......signal(SIGINT
19cc0 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 28 20 20 69 66 20 28 21 28 61 2e 64 20 3d 20 77 6c 5f 64 ,.on_sig);...(..if.(!(a.d.=.wl_d
19ce0 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 29 29 00 00 00 0d 20 20 20 20 72 65 isplay_connect(NULL)))........re
19d00 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f turn.1;...'..a.reg.=.wl_display_
19d20 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 49 20 20 73 74 61 74 69 63 20 63 get_registry(a.d);...I..static.c
19d40 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 onst.struct.wl_registry_listener
19d60 20 72 65 67 5f 6c 69 73 74 20 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 7d 3b 00 .reg_list.=.{registry_handler};.
19d80 00 00 31 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e ..1..wl_registry_add_listener(a.
19da0 72 65 67 2c 20 26 72 65 67 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 reg,.&reg_list,.&a);......wl_dis
19dc0 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 21 20 20 69 66 20 28 21 61 play_roundtrip(a.d);...!..if.(!a
19de0 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 00 00 00 0d 20 20 20 .comp.||.!a.shm.||.!a.wm).......
19e00 20 72 65 74 75 72 6e 20 31 3b 00 00 00 00 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f .return.1;..........a.ws.=.wl_co
19e20 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b mpositor_create_surface(a.comp);
19e40 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 ...1..a.xs.=.xdg_wm_base_get_xdg
19e60 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 3e 20 20 73 74 61 74 69 _surface(a.wm,.a.ws);...>..stati
19e80 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 c.const.struct.xdg_surface_liste
19ea0 6e 65 72 20 78 73 5f 6c 69 73 74 20 3d 20 7b 78 73 5f 63 66 67 7d 3b 00 00 00 2f 20 20 78 64 67 ner.xs_list.=.{xs_cfg};.../..xdg
19ec0 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 5f _surface_add_listener(a.xs,.&xs_
19ee0 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 list,.&a);...(..a.xt.=.xdg_surfa
19f00 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 4f 20 20 73 74 61 74 ce_get_toplevel(a.xs);...O..stat
19f20 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 ic.const.struct.xdg_toplevel_lis
19f40 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 20 3d 20 7b 78 74 5f 63 66 67 2c 20 28 76 6f 69 64 20 2a tener.xt_list.=.{xt_cfg,.(void.*
19f60 29 6f 6e 5f 73 69 67 7d 3b 00 00 00 30 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f )on_sig};...0..xdg_toplevel_add_
19f80 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 listener(a.xt,.&xt_list,.&a);...
19fa0 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 *..xdg_toplevel_set_title(a.xt,.
19fc0 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 00 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 "wlclock");.......,..xdg_topleve
19fe0 6c 5f 73 65 74 5f 6d 69 6e 5f 73 69 7a 65 28 61 2e 78 74 2c 20 34 30 30 2c 20 34 30 30 29 3b 00 l_set_min_size(a.xt,.400,.400);.
1a000 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 61 78 5f 73 69 7a 65 28 61 ..,..xdg_toplevel_set_max_size(a
1a020 2e 78 74 2c 20 34 30 30 2c 20 34 30 30 29 3b 00 00 00 00 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 .xt,.400,.400);..........wl_surf
1a040 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d ace_commit(a.ws);...9..int.tfd.=
1a060 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c .timerfd_create(CLOCK_MONOTONIC,
1a080 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 .TFD_CLOEXEC);...F..timerfd_sett
1a0a0 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 ime(tfd,.0,.&(struct.itimerspec)
1a0c0 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 35 {{1,.0},.{1,.0}},.NULL);.......5
1a0e0 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 ..while.(running.&&.wl_display_d
1a100 69 73 70 61 74 63 68 28 61 2e 64 29 20 21 3d 20 2d 31 29 20 7b 00 00 00 4e 20 20 20 20 73 74 72 ispatch(a.d).!=.-1).{...N....str
1a120 75 63 74 20 70 6f 6c 6c 66 64 20 70 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 uct.pollfd.pfds[2].=.{{wl_displa
1a140 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f y_get_fd(a.d),.POLLIN},.{tfd,.PO
1a160 4c 4c 49 4e 7d 7d 3b 00 00 00 1e 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 70 66 64 73 2c 20 32 2c LLIN}};........if.(poll(pfds,.2,
1a180 20 2d 31 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 23 20 20 20 .-1).<.0)..........break;...#...
1a1a0 20 69 66 20 28 70 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b .if.(pfds[1].revents.&.POLLIN).{
1a1c0 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b 00 00 00 2f 20 20 20 ..........uint64_t.ticks;.../...
1a1e0 20 20 20 69 66 20 28 72 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 69 7a 65 6f 66 28 ...if.(read(tfd,.&ticks,.sizeof(
1a200 74 69 63 6b 73 29 29 20 3e 20 30 29 00 00 00 17 20 20 20 20 20 20 20 20 64 72 61 77 5f 63 6c 6f ticks)).>.0)............draw_clo
1a220 63 6b 28 26 61 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 0d 20 20 63 6c 6f ck(&a);........}......}......clo
1a240 73 65 28 74 66 64 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e se(tfd);......wl_display_disconn
1a260 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 ect(a.d);......return.0;....}5..
1a280 18 00 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 ................................
1a2a0 00 00 00 00 00 f0 1a 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 15 00 00 00 .....................5._........
1a2c0 17 00 00 00 00 00 00 00 00 00 00 00 16 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 ................................
1a2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 9e bd 04 ...........................i....
1a440 01 00 00 00 00 00 f5 18 00 00 00 be 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 ............................}...
1a460 00 00 bf 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 ad 00 00 00 00 00 00 00 00 00 00 00 ................................
1a480 01 00 00 00 19 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 61 78 5f 73 69 f5 18 .......xdg_toplevel_set_max_si..
1a4a0 00 00 00 ae 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 78 00 00 00 00 00 00 00 00 00 00 .....................x..........
1a4c0 00 01 00 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 .....Pstatic.void.xt_cfg(void.*d
1a4e0 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 ,.struct.xdg_toplevel.*xt,.int32
1a500 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 20 73 74 72 75 63 f5 18 00 00 00 79 00 00 00 00 _t.w,.int32_t.h,.struc.....y....
1a520 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 ................................
1a540 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 ................5...............
1a560 00 00 00 00 00 00 00 00 78 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........x...P...................
1a580 00 10 00 00 00 00 00 00 f5 18 00 00 00 00 78 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 35 00 ..............x...P...........5.
1a5a0 00 00 19 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 f5 18 ................................
1a5c0 00 00 00 00 ad 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 11 00 00 00 01 00 00 00 00 18 00 00 ................................
1a5e0 00 00 00 00 00 00 00 00 00 00 00 00 16 02 00 00 00 00 00 00 35 81 5f d0 00 00 00 16 00 00 00 18 ....................5._.........
1a600 00 00 00 00 00 00 00 00 00 00 00 17 00 00 00 bf 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 ................................
1a620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 9e be 04 01 ..........................i.....
1a780 00 00 00 0a 00 f5 18 00 00 00 01 00 00 00 e9 00 00 00 bf 00 00 00 b8 00 00 00 12 23 69 6e 63 6c ...........................#incl
1a7a0 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c ude.<errno.h>....#include.<fcntl
1a7c0 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 .h>....#include.<math.h>....#inc
1a7e0 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 lude.<poll.h>....#include.<signa
1a800 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 12 l.h>....#include.<stdbool.h>....
1a820 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c #include.<stdio.h>....#include.<
1a840 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e stdlib.h>....#include.<string.h>
1a860 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e ....#include.<sys/mman.h>....#in
1a880 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 clude.<sys/timerfd.h>....#includ
1a8a0 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 e.<time.h>....#include.<unistd.h
1a8c0 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e >....#include.<wayland-client.h>
1a8e0 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 ...&#include."xdg-shell-client-p
1a900 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 rotocol.h"........#ifndef.M_PI..
1a920 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 .##define.M_PI.3.141592653589793
1a940 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 23846....#endif....#ifndef.M_PI_
1a960 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 2...%#define.M_PI_2.1.5707963267
1a980 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 9489661923....#endif.......)stat
1a9a0 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 ic.volatile.sig_atomic_t.running
1a9c0 20 3d 20 31 3b 00 00 00 33 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 .=.1;...3static.void.on_sig(int.
1a9e0 73 29 20 7b 20 28 76 6f 69 64 29 73 3b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 s).{.(void)s;.running.=.0;.}....
1aa00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f ....struct.app.{......struct.wl_
1aa20 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 display.*d;......struct.wl_regis
1aa40 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 try.*reg;......struct.wl_composi
1aa60 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 tor.*comp;......struct.wl_shm.*s
1aa80 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b hm;......struct.xdg_wm_base.*wm;
1aaa0 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 ......struct.wl_surface.*ws;....
1aac0 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 ..struct.xdg_surface.*xs;......s
1aae0 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 truct.xdg_toplevel.*xt;......voi
1ab00 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 d.*pixels;......struct.wl_buffer
1ab20 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 .*buf;......int.w,.h;......bool.
1ab40 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 configured;....};.......)static.
1ab60 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 int.create_shm_file(size_t.size)
1ab80 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f .{......char.template[].=."/tmp/
1aba0 77 6c 63 6c 6f 63 6b 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 wlclock-shm-XXXXXX";......int.fd
1abc0 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 16 20 20 69 66 20 28 66 .=.mkstemp(template);......if.(f
1abe0 64 20 3c 20 30 29 20 65 78 69 74 28 31 29 3b 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 d.<.0).exit(1);......unlink(temp
1ac00 6c 61 74 65 29 3b 00 00 00 3d 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 28 6f late);...=..if.(ftruncate(fd,.(o
1ac20 66 66 5f 74 29 73 69 7a 65 29 20 3c 20 30 29 20 7b 20 63 6c 6f 73 65 28 66 64 29 3b 20 65 78 69 ff_t)size).<.0).{.close(fd);.exi
1ac40 74 28 31 29 3b 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 t(1);.}......return.fd;....}....
1ac60 00 00 00 2c 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 ...,static.void.allocate_buffer(
1ac80 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 30 20 20 69 66 20 28 21 61 2d 3e 73 68 struct.app.*a).{...0..if.(!a->sh
1aca0 6d 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 20 72 65 74 m.||.a->w.<=.0.||.a->h.<=.0).ret
1acc0 75 72 6e 3b 00 00 00 0f 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 1e 20 20 20 20 77 urn;......if.(a->buf).{........w
1ace0 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 31 20 20 20 l_buffer_destroy(a->buf);...1...
1ad00 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 .munmap(a->pixels,.(size_t)(a->w
1ad20 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 03 20 20 7d 00 00 00 18 20 20 69 6e 74 20 73 .*.a->h.*.4));......}......int.s
1ad40 74 72 69 64 65 20 3d 20 61 2d 3e 77 20 2a 20 34 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 tride.=.a->w.*.4;...(..size_t.si
1ad60 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 28 73 74 72 69 64 65 20 2a 20 61 2d 3e 68 29 3b 00 00 00 ze.=.(size_t)(stride.*.a->h);...
1ad80 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 !..int.fd.=.create_shm_file(size
1ada0 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 );...J..a->pixels.=.mmap(NULL,.s
1adc0 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 ize,.PROT_READ.|.PROT_WRITE,.MAP
1ade0 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 4b 20 20 73 74 72 75 63 74 20 77 6c 5f _SHARED,.fd,.0);...K..struct.wl_
1ae00 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 shm_pool.*pool.=.wl_shm_create_p
1ae20 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 28 69 6e 74 33 32 5f 74 29 73 69 7a 65 29 3b 00 ool(a->shm,.fd,.(int32_t)size);.
1ae40 00 00 5a 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 ..Z..a->buf.=.wl_shm_pool_create
1ae60 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 73 74 72 _buffer(pool,.0,.a->w,.a->h,.str
1ae80 69 64 65 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 ide,.WL_SHM_FORMAT_ARGB8888);...
1aea0 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 ...wl_shm_pool_destroy(pool);...
1aec0 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 5f 73 74 61 74 69 63 ...close(fd);....}......._static
1aee0 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e .void.draw_line(uint32_t.*px,.in
1af00 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 t.w,.int.h,.int.x0,.int.y0,.int.
1af20 78 31 2c 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 x1,.int.y1,.uint32_t.c).{.../..i
1af40 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 nt.dx.=.abs(x1.-.x0),.sx.=.x0.<.
1af60 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 x1.?.1.:.-1;...0..int.dy.=.-abs(
1af80 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b y1.-.y0),.sy.=.y0.<.y1.?.1.:.-1;
1afa0 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0d ......int.err.=.dx.+.dy,.e2;....
1afc0 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 44 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 ..while.(1).{...D....if.(x0.>=.0
1afe0 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 .&&.x0.<.w.&&.y0.>=.0.&&.y0.<.h)
1b000 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 24 20 20 20 20 69 66 20 .px[y0.*.w.+.x0].=.c;...$....if.
1b020 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 20 62 72 65 61 6b 3b 00 00 00 (x0.==.x1.&&.y0.==.y1).break;...
1b040 11 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 2a 20 20 20 20 69 66 20 28 65 32 .....e2.=.2.*.err;...*....if.(e2
1b060 20 3e 3d 20 64 79 29 20 7b 20 65 72 72 20 2b 3d 20 64 79 3b 20 78 30 20 2b 3d 20 73 78 3b 20 7d .>=.dy).{.err.+=.dy;.x0.+=.sx;.}
1b080 00 00 00 2a 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 20 65 72 72 20 2b 3d 20 64 ...*....if.(e2.<=.dx).{.err.+=.d
1b0a0 78 3b 20 79 30 20 2b 3d 20 73 79 3b 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 x;.y0.+=.sy;.}......}....}......
1b0c0 00 58 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 .Xstatic.void.draw_circle(uint32
1b0e0 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e _t.*px,.int.w,.int.h,.int.cx,.in
1b100 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 t.cy,.int.r,.uint32_t.c).{..."..
1b120 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b int.x.=.0,.y.=.r,.d.=.3.-.2.*.r;
1b140 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 4c 20 20 20 20 69 6e ......while.(y.>=.x).{...L....in
1b160 74 20 70 74 73 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 2b 78 2c 20 63 79 2b 79 7d 2c 20 7b 63 78 t.pts[8][2].=.{{cx+x,.cy+y},.{cx
1b180 2d 78 2c 20 63 79 2b 79 7d 2c 20 7b 63 78 2b 78 2c 20 63 79 2d 79 7d 2c 20 7b 63 78 2d 78 2c 20 -x,.cy+y},.{cx+x,.cy-y},.{cx-x,.
1b1a0 63 79 2d 79 7d 2c 00 00 00 4d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b cy-y},...M.....................{
1b1c0 63 78 2b 79 2c 20 63 79 2b 78 7d 2c 20 7b 63 78 2d 79 2c 20 63 79 2b 78 7d 2c 20 7b 63 78 2b 79 cx+y,.cy+x},.{cx-y,.cy+x},.{cx+y
1b1e0 2c 20 63 79 2d 78 7d 2c 20 7b 63 78 2d 79 2c 20 63 79 2d 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 ,.cy-x},.{cx-y,.cy-x}};........f
1b200 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 4d 20 20 or.(int.i.=.0;.i.<.8;.i++)...M..
1b220 20 20 20 20 69 66 20 28 70 74 73 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d ....if.(pts[i][0].>=.0.&&.pts[i]
1b240 5b 30 5d 20 3c 20 77 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 [0].<.w.&&.pts[i][1].>=.0.&&.pts
1b260 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 2a 20 20 20 20 20 20 20 20 70 78 5b 70 74 73 5b 69 5d [i][1].<.h)...*........px[pts[i]
1b280 5b 31 5d 20 2a 20 77 20 2b 20 70 74 73 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 43 20 20 20 [1].*.w.+.pts[i][0]].=.c;...C...
1b2a0 20 69 66 20 28 64 20 3e 20 30 29 20 7b 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b .if.(d.>.0).{.d.+=.4.*.(x.-.y).+
1b2c0 20 31 30 3b 20 79 2d 2d 3b 20 7d 20 65 6c 73 65 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b .10;.y--;.}.else.d.+=.4.*.x.+.6;
1b2e0 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 27 ........x++;......}....}.......'
1b300 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 6c 6f 63 6b 28 73 74 72 75 63 74 20 61 70 static.void.draw_clock(struct.ap
1b320 70 20 2a 61 29 20 7b 00 00 00 2b 20 20 69 66 20 28 21 61 2d 3e 70 69 78 65 6c 73 20 7c 7c 20 21 p.*a).{...+..if.(!a->pixels.||.!
1b340 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 29 20 72 65 74 75 72 6e 3b 00 00 00 19 20 20 74 69 6d 65 a->configured).return;......time
1b360 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 13 20 20 73 74 72 75 63 74 20 _t.tt.=.time(NULL);......struct.
1b380 74 6d 20 74 6d 5f 62 75 66 3b 00 00 00 1c 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c tm.tm_buf;......localtime_r(&tt,
1b3a0 20 26 74 6d 5f 62 75 66 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 .&tm_buf);......uint32_t.*px.=.a
1b3c0 2d 3e 70 69 78 65 6c 73 3b 00 00 00 2e 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 66 66 2c 20 ->pixels;......memset(px,.0xff,.
1b3e0 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 23 20 (size_t)(a->w.*.a->h.*.4));...#.
1b400 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 .int.cx.=.a->w./.2,.cy.=.a->h./.
1b420 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2;.../..int.r.=.(a->w.<.a->h.?.a
1b440 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 13 20 20 69 66 20 28 72 ->w.:.a->h)./.2.-.10;......if.(r
1b460 20 3c 20 35 29 20 72 20 3d 20 35 3b 00 00 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 .<.5).r.=.5;...5..draw_circle(px
1b480 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 ,.a->w,.a->h,.cx,.cy,.r,.0xFF000
1b4a0 30 30 30 29 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 000);......for.(int.i.=.0;.i.<.1
1b4c0 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2;.i++).{........double.ang.=.i.
1b4e0 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 5f 20 /.12.0.*.2.*.M_PI.-.M_PI_2;..._.
1b500 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 ...draw_line(px,.a->w,.a->h,.cx.
1b520 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 20 63 79 +.(int)(cos(ang).*.(r.-.10)),.cy
1b540 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 00 00 .+.(int)(sin(ang).*.(r.-.10)),..
1b560 00 5a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 .Z..............cx.+.(int)(cos(a
1b580 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 ng).*.(r.-.2)),.cy.+.(int)(sin(a
1b5a0 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 ng).*.(r.-.2)),.0xFF000000);....
1b5c0 20 20 7d 00 00 00 37 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 ..}...7..double.sa.=.tm_buf.tm_s
1b5e0 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 ec./.60.0.*.2.*.M_PI.-.M_PI_2;..
1b600 00 50 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2b .P..double.ma.=.(tm_buf.tm_min.+
1b620 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 .tm_buf.tm_sec./.60.0)./.60.0.*.
1b640 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 5a 20 20 64 6f 75 62 6c 65 20 68 2.*.M_PI.-.M_PI_2;...Z..double.h
1b660 61 20 3d 20 28 28 74 6d 5f 62 75 66 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d a.=.((tm_buf.tm_hour.%.12).+.(tm
1b680 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 _buf.tm_min./.60.0))./.12.0.*.2.
1b6a0 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 6e 20 20 64 72 61 77 5f 6c 69 6e 65 28 *.M_PI.-.M_PI_2;...n..draw_line(
1b6c0 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e px,.a->w,.a->h,.cx,.cy,.cx.+.(in
1b6e0 74 29 28 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 20 63 79 20 2b 20 28 69 6e 74 t)(cos(ha).*.r.*.0.5),.cy.+.(int
1b700 29 28 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 20 30 78 46 46 30 30 30 30 30 30 )(sin(ha).*.r.*.0.5),.0xFF000000
1b720 29 3b 00 00 00 6e 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 );...n..draw_line(px,.a->w,.a->h
1b740 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 6d 61 29 20 2a 20 72 ,.cx,.cy,.cx.+.(int)(cos(ma).*.r
1b760 20 2a 20 30 2e 37 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 6d 61 29 20 2a 20 72 20 .*.0.7),.cy.+.(int)(sin(ma).*.r.
1b780 2a 20 30 2e 37 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 6e 20 20 64 72 61 77 5f 6c *.0.7),.0xFF000000);...n..draw_l
1b7a0 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b ine(px,.a->w,.a->h,.cx,.cy,.cx.+
1b7c0 20 28 69 6e 74 29 28 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 63 79 20 2b 20 .(int)(cos(sa).*.r.*.0.9),.cy.+.
1b7e0 28 69 6e 74 29 28 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 30 78 46 46 46 46 (int)(sin(sa).*.r.*.0.9),.0xFFFF
1b800 30 30 30 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 0000);...)..wl_surface_attach(a-
1b820 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 2d 20 20 77 6c 5f 73 75 72 66 >ws,.a->buf,.0,.0);...-..wl_surf
1b840 61 63 65 5f 64 61 6d 61 67 65 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d ace_damage(a->ws,.0,.0,.a->w,.a-
1b860 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 >h);......wl_surface_commit(a->w
1b880 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 61 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 s);....}.......astatic.void.xt_c
1b8a0 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 fg(void.*d,.struct.xdg_toplevel.
1b8c0 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 20 73 74 72 75 63 *xt,.int32_t.w,.int32_t.h,.struc
1b8e0 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 29 20 7b 00 00 00 28 20 20 73 74 72 75 63 74 20 61 70 t.wl_array.*st).{...(..struct.ap
1b900 70 20 2a 61 20 3d 20 64 3b 20 28 76 6f 69 64 29 78 74 3b 20 28 76 6f 69 64 29 73 74 3b 00 00 00 p.*a.=.d;.(void)xt;.(void)st;...
1b920 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 3..if.(w.>.0.&&.h.>.0.&&.(w.!=.a
1b940 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 17 20 20 20 20 61 2d 3e 77 ->w.||.h.!=.a->h)).{........a->w
1b960 20 3d 20 77 3b 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 11 20 20 20 20 69 66 20 28 61 2d 3e 73 68 .=.w;.a->h.=.h;........if.(a->sh
1b980 6d 29 20 7b 00 00 00 1b 20 20 20 20 20 20 20 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 m).{............allocate_buffer(
1b9a0 61 29 3b 00 00 00 29 20 20 20 20 20 20 20 20 69 66 20 28 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 a);...)........if.(a->configured
1b9c0 29 20 64 72 61 77 5f 63 6c 6f 63 6b 28 61 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d ).draw_clock(a);........}......}
1b9e0 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 ....}.......Astatic.void.xs_cfg(
1ba00 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c void.*d,.struct.xdg_surface.*xs,
1ba20 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a .uint32_t.s).{......struct.app.*
1ba40 61 20 3d 20 64 3b 00 00 00 23 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 a.=.d;...#..xdg_surface_ack_conf
1ba60 69 67 75 72 65 28 78 73 2c 20 73 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 igure(xs,.s);......a->configured
1ba80 20 3d 20 74 72 75 65 3b 00 00 00 2c 20 20 69 66 20 28 21 61 2d 3e 62 75 66 20 26 26 20 61 2d 3e .=.true;...,..if.(!a->buf.&&.a->
1baa0 73 68 6d 29 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 61 29 3b 00 00 00 10 20 20 64 72 shm).allocate_buffer(a);......dr
1bac0 61 77 5f 63 6c 6f 63 6b 28 61 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 5d 73 74 61 74 69 63 20 aw_clock(a);....}.......]static.
1bae0 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 void.wm_ping(void.*d,.struct.xdg
1bb00 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 20 78 64 67 5f _wm_base.*wm,.uint32_t.s).{.xdg_
1bb20 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 29 3b 20 7d 00 00 00 00 00 00 00 71 73 74 wm_base_pong(wm,.s);.}.......qst
1bb40 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 atic.void.registry_handler(void.
1bb60 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 2c 20 *data,.struct.wl_registry.*reg,.
1bb80 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 20 uint32_t.id,.const.char.*iface,.
1bba0 75 69 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 uint32_t.ver).{......struct.app.
1bbc0 2a 61 20 3d 20 64 61 74 61 3b 00 00 00 68 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 *a.=.data;...h..if.(!strcmp(ifac
1bbe0 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 e,."wl_compositor")).a->comp.=.w
1bc00 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d l_registry_bind(reg,.id,.&wl_com
1bc20 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 5e 20 20 65 6c 73 65 positor_interface,.4);...^..else
1bc40 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 29 20 61 .if.(!strcmp(iface,."wl_shm")).a
1bc60 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 ->shm.=.wl_registry_bind(reg,.id
1bc80 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 2b 20 20 65 6c ,.&wl_shm_interface,.1);...+..el
1bca0 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 se.if.(!strcmp(iface,."xdg_wm_ba
1bcc0 73 65 22 29 29 20 7b 00 00 00 41 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 se")).{...A....a->wm.=.wl_regist
1bce0 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e ry_bind(reg,.id,.&xdg_wm_base_in
1bd00 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 41 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 terface,.1);...A....static.const
1bd20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f .struct.xdg_wm_base_listener.wm_
1bd40 6c 69 73 74 20 3d 20 7b 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 31 20 20 20 20 78 64 67 5f 77 6d 5f list.=.{wm_ping};...1....xdg_wm_
1bd60 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 base_add_listener(a->wm,.&wm_lis
1bd80 74 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 t,.a);......}....}........int.ma
1bda0 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 3b 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b in(void).{...;..struct.app.a.=.{
1bdc0 2e 77 20 3d 20 34 30 30 2c 20 2e 68 20 3d 20 34 30 30 2c 20 2e 63 6f 6e 66 69 67 75 72 65 64 20 .w.=.400,..h.=.400,..configured.
1bde0 3d 20 66 61 6c 73 65 7d 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e =.false};......signal(SIGINT,.on
1be00 5f 73 69 67 29 3b 00 00 00 32 20 20 69 66 20 28 21 28 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c _sig);...2..if.(!(a.d.=.wl_displ
1be20 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 29 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 ay_connect(NULL))).return.1;...'
1be40 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 ..a.reg.=.wl_display_get_registr
1be60 79 28 61 2e 64 29 3b 00 00 00 49 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 y(a.d);...I..static.const.struct
1be80 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 20 3d .wl_registry_listener.reg_list.=
1bea0 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 7d 3b 00 00 00 31 20 20 77 6c 5f 72 65 67 .{registry_handler};...1..wl_reg
1bec0 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c istry_add_listener(a.reg,.&reg_l
1bee0 69 73 74 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 ist,.&a);......wl_display_roundt
1bf00 72 69 70 28 61 2e 64 29 3b 00 00 00 2b 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 rip(a.d);...+..if.(!a.comp.||.!a
1bf20 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 00 00 00 00 2e .shm.||.!a.wm).return.1;........
1bf40 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 ..a.ws.=.wl_compositor_create_su
1bf60 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 rface(a.comp);...1..a.xs.=.xdg_w
1bf80 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 m_base_get_xdg_surface(a.wm,.a.w
1bfa0 73 29 3b 00 00 00 3e 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 s);...>..static.const.struct.xdg
1bfc0 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 73 74 20 3d 20 7b 78 73 5f _surface_listener.xs_list.=.{xs_
1bfe0 63 66 67 7d 3b 00 00 00 2f 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 cfg};.../..xdg_surface_add_liste
1c000 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e ner(a.xs,.&xs_list,.&a);...(..a.
1c020 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e xt.=.xdg_surface_get_toplevel(a.
1c040 78 73 29 3b 00 00 00 4e 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 xs);...N..static.const.struct.xd
1c060 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 20 3d 20 7b 78 g_toplevel_listener.xt_list.=.{x
1c080 74 5f 63 66 67 2c 20 28 76 6f 69 64 2a 29 6f 6e 5f 73 69 67 7d 3b 00 00 00 30 20 20 78 64 67 5f t_cfg,.(void*)on_sig};...0..xdg_
1c0a0 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f toplevel_add_listener(a.xt,.&xt_
1c0c0 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 list,.&a);...*..xdg_toplevel_set
1c0e0 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 00 00 00 00 32 _title(a.xt,."wlclock");.......2
1c100 20 20 2f 2a 20 41 4c 4c 4f 57 20 52 45 53 49 5a 49 4e 47 3a 20 4d 69 6e 20 31 30 30 78 31 30 30 ../*.ALLOW.RESIZING:.Min.100x100
1c120 2c 20 4d 61 78 20 75 6e 6c 69 6d 69 74 65 64 20 2a 2f 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c ,.Max.unlimited.*/...,..xdg_topl
1c140 65 76 65 6c 5f 73 65 74 5f 6d 69 6e 5f 73 69 7a 65 28 61 2e 78 74 2c 20 31 30 30 2c 20 31 30 30 evel_set_min_size(a.xt,.100,.100
1c160 29 3b 00 00 00 28 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 61 78 5f 73 69 7a );...(..xdg_toplevel_set_max_siz
1c180 65 28 61 2e 78 74 2c 20 30 2c 20 30 29 3b 00 00 00 00 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 e(a.xt,.0,.0);..........wl_surfa
1c1a0 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 ce_commit(a.ws);...9..int.tfd.=.
1c1c0 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 timerfd_create(CLOCK_MONOTONIC,.
1c1e0 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 TFD_CLOEXEC);...F..timerfd_setti
1c200 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b me(tfd,.0,.&(struct.itimerspec){
1c220 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 35 20 {1,.0},.{1,.0}},.NULL);.......5.
1c240 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 .while.(running.&&.wl_display_di
1c260 73 70 61 74 63 68 28 61 2e 64 29 20 21 3d 20 2d 31 29 20 7b 00 00 00 4e 20 20 20 20 73 74 72 75 spatch(a.d).!=.-1).{...N....stru
1c280 63 74 20 70 6f 6c 6c 66 64 20 70 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 ct.pollfd.pfds[2].=.{{wl_display
1c2a0 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c _get_fd(a.d),.POLLIN},.{tfd,.POL
1c2c0 4c 49 4e 7d 7d 3b 00 00 00 25 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 70 66 64 73 2c 20 32 2c 20 LIN}};...%....if.(poll(pfds,.2,.
1c2e0 2d 31 29 20 3c 20 30 29 20 62 72 65 61 6b 3b 00 00 00 23 20 20 20 20 69 66 20 28 70 66 64 73 5b -1).<.0).break;...#....if.(pfds[
1c300 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 1].revents.&.POLLIN).{..........
1c320 75 69 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b 00 00 00 3f 20 20 20 20 20 20 69 66 20 28 72 65 61 uint64_t.ticks;...?......if.(rea
1c340 64 28 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 69 7a 65 6f 66 28 74 69 63 6b 73 29 29 20 3e 20 d(tfd,.&ticks,.sizeof(ticks)).>.
1c360 30 29 20 64 72 61 77 5f 63 6c 6f 63 6b 28 26 61 29 3b 35 81 f5 18 00 00 00 00 01 00 00 00 09 00 0).draw_clock(&a);5.............
1c380 00 00 b7 00 00 00 2f 00 00 00 e6 00 00 00 07 00 00 00 29 00 00 00 00 00 00 00 99 19 00 00 00 00 ....../...........).............
1c3a0 00 00 20 1b 00 00 00 00 00 00 35 81 5f d0 00 00 00 17 00 00 00 19 00 00 00 00 00 00 00 00 00 00 ..........5._...................
1c3c0 00 18 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 9e f0 04 01 00 00 00 00 00 f5 18 00 00 00 ................i...............
1c540 00 00 00 00 02 00 00 00 00 00 00 00 ee 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f .................#define._POSIX_
1c560 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 C_SOURCE.200809L...&#include."xd
1c580 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 g-shell-client-protocol.h"....#i
1c5a0 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 nclude.<errno.h>....#include.<fc
1c5c0 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 ntl.h>....#include.<math.h>....#
1c5e0 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 include.<poll.h>....#include.<si
1c600 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 gnal.h>....#include.<stdbool.h>.
1c620 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 ...#include.<stdio.h>....#includ
1c640 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 e.<stdlib.h>....#include.<string
1c660 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 .h>....#include.<sys/mman.h>....
1c680 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 #include.<sys/timerfd.h>....#inc
1c6a0 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 lude.<time.h>....#include.<unist
1c6c0 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 d.h>....#include.<wayland-client
1c6e0 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 .h>........#ifndef.M_PI...##defi
1c700 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 ne.M_PI.3.14159265358979323846..
1c720 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 ..#endif....#ifndef.M_PI_2...%#d
1c740 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 efine.M_PI_2.1.57079632679489661
1c760 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 923....#endif.......)static.vola
1c780 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 tile.sig_atomic_t.running.=.1;..
1c7a0 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 ..static.void.on_sig(int.s).{...
1c7c0 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 ...(void)s;......running.=.0;...
1c7e0 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 .}........struct.app.{......stru
1c800 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c ct.wl_display.*d;......struct.wl
1c820 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 _registry.*reg;......struct.wl_c
1c840 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f ompositor.*comp;......struct.wl_
1c860 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 shm.*shm;......struct.xdg_wm_bas
1c880 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 e.*wm;......struct.wl_surface.*w
1c8a0 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 s;......struct.xdg_surface.*xs;.
1c8c0 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 .....struct.xdg_toplevel.*xt;...
1c8e0 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f ...void.*pixels;......struct.wl_
1c900 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 12 20 buffer.*buf;......int.w,.h;.....
1c920 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 29 73 .bool.configured;....};.......)s
1c940 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 tatic.int.create_shm_file(size_t
1c960 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 .size).{......char.template[].=.
1c980 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1d 20 20 "/tmp/wlclock-shm-XXXXXX";......
1c9a0 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 0d 20 int.fd.=.mkstemp(template);.....
1c9c0 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 13 .if.(fd.<.0)........exit(1);....
1c9e0 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 27 20 20 69 66 20 28 66 74 72 ..unlink(template);...'..if.(ftr
1ca00 75 6e 63 61 74 65 28 66 64 2c 20 28 6f 66 66 5f 74 29 73 69 7a 65 29 20 3c 20 30 29 20 7b 00 00 uncate(fd,.(off_t)size).<.0).{..
1ca20 00 0e 20 20 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b ......close(fd);........exit(1);
1ca40 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 ......}......return.fd;....}....
1ca60 00 00 00 2c 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 ...,static.void.allocate_buffer(
1ca80 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 28 20 20 69 66 20 28 21 61 2d 3e 73 68 struct.app.*a).{...(..if.(!a->sh
1caa0 6d 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b m.||.a->w.<=.0.||.a->h.<=.0)....
1cac0 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0f 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 ....return;......if.(a->buf).{..
1cae0 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b ......wl_buffer_destroy(a->buf);
1cb00 00 00 00 31 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f ...1....munmap(a->pixels,.(size_
1cb20 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 03 20 20 7d 00 00 00 18 t)(a->w.*.a->h.*.4));......}....
1cb40 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 61 2d 3e 77 20 2a 20 34 3b 00 00 00 28 20 20 73 69 ..int.stride.=.a->w.*.4;...(..si
1cb60 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 28 73 74 72 69 64 65 20 2a 20 61 2d ze_t.size.=.(size_t)(stride.*.a-
1cb80 3e 68 29 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 >h);...!..int.fd.=.create_shm_fi
1cba0 6c 65 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 le(size);...J..a->pixels.=.mmap(
1cbc0 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 NULL,.size,.PROT_READ.|.PROT_WRI
1cbe0 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 4b 20 20 73 74 72 TE,.MAP_SHARED,.fd,.0);...K..str
1cc00 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 uct.wl_shm_pool.*pool.=.wl_shm_c
1cc20 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 28 69 6e 74 33 32 5f 74 29 reate_pool(a->shm,.fd,.(int32_t)
1cc40 73 69 7a 65 29 3b 00 00 00 41 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c size);...A..a->buf.=.wl_shm_pool
1cc60 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d _create_buffer(pool,.0,.a->w,.a-
1cc80 3e 68 2c 20 73 74 72 69 64 65 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 >h,.stride,...=.................
1cca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 ....................WL_SHM_FORMA
1ccc0 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 T_ARGB8888);......wl_shm_pool_de
1cce0 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 01 stroy(pool);......close(fd);....
1cd00 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 }.......Istatic.void.draw_line(u
1cd20 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 int32_t.*px,.int.w,.int.h,.int.x
1cd40 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 0,.int.y0,.int.x1,...+..........
1cd60 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 ............int.y1,.uint32_t.c).
1cd80 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 {.../..int.dx.=.abs(x1.-.x0),.sx
1cda0 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 .=.x0.<.x1.?.1.:.-1;...0..int.dy
1cdc0 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f .=.-abs(y1.-.y0),.sy.=.y0.<.y1.?
1cde0 20 31 20 3a 20 2d 31 3b 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c .1.:.-1;......int.err.=.dx.+.dy,
1ce00 20 65 32 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 .e2;......while.(1).{.../....if.
1ce20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 (x0.>=.0.&&.x0.<.w.&&.y0.>=.0.&&
1ce40 20 79 30 20 3c 20 68 29 00 00 00 1a 20 20 20 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 .y0.<.h)..........px[y0.*.w.+.x0
1ce60 5d 20 3d 20 63 3b 00 00 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 ].=.c;........if.(x0.==.x1.&&.y0
1ce80 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 11 20 20 20 20 65 .==.y1)..........break;........e
1cea0 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 2.=.2.*.err;........if.(e2.>=.dy
1cec0 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 ).{..........err.+=.dy;.........
1cee0 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 .x0.+=.sx;........}........if.(e
1cf00 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 2.<=.dx).{..........err.+=.dx;..
1cf20 00 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 ........y0.+=.sy;........}......
1cf40 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 }....}.......Jstatic.void.draw_c
1cf60 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 ircle(uint32_t.*px,.int.w,.int.h
1cf80 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 25 20 20 20 20 ,.int.cx,.int.cy,.int.r,...%....
1cfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 ....................uint32_t.c).
1cfc0 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d {..."..int.x.=.0,.y.=.r,.d.=.3.-
1cfe0 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 .2.*.r;......while.(y.>=.x).{...
1d000 4a 20 20 20 20 69 6e 74 20 70 74 73 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 J....int.pts[8][2].=.{{cx.+.x,.c
1d020 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 y.+.y},.{cx.-.x,.cy.+.y},.{cx.+.
1d040 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 4a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 x,.cy.-.y},...J.................
1d060 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 ....{cx.-.x,.cy.-.y},.{cx.+.y,.c
1d080 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 39 20 20 20 y.+.x},.{cx.-.y,.cy.+.x},...9...
1d0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 ..................{cx.+.y,.cy.-.
1d0c0 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f x},.{cx.-.y,.cy.-.x}};........fo
1d0e0 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 4d 20 20 20 r.(int.i.=.0;.i.<.8;.i++)...M...
1d100 20 20 20 69 66 20 28 70 74 73 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b ...if.(pts[i][0].>=.0.&&.pts[i][
1d120 30 5d 20 3c 20 77 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 0].<.w.&&.pts[i][1].>=.0.&&.pts[
1d140 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 2a 20 20 20 20 20 20 20 20 70 78 5b 70 74 73 5b 69 5d 5b i][1].<.h)...*........px[pts[i][
1d160 31 5d 20 2a 20 77 20 2b 20 70 74 73 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 1].*.w.+.pts[i][0]].=.c;........
1d180 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 if.(d.>.0).{..........d.+=.4.*.(
1d1a0 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 x.-.y).+.10;..........y--;......
1d1c0 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 ..}.else..........d.+=.4.*.x.+.6
1d1e0 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 ;........x++;......}....}.......
1d200 27 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 6c 6f 63 6b 28 73 74 72 75 63 74 20 61 'static.void.draw_clock(struct.a
1d220 70 70 20 2a 61 29 20 7b 00 00 00 23 20 20 69 66 20 28 21 61 2d 3e 70 69 78 65 6c 73 20 7c 7c 20 pp.*a).{...#..if.(!a->pixels.||.
1d240 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 !a->configured)........return;..
1d260 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 13 20 ....time_t.tt.=.time(NULL);.....
1d280 20 73 74 72 75 63 74 20 74 6d 20 74 6d 5f 62 75 66 3b 00 00 00 1c 20 20 6c 6f 63 61 6c 74 69 6d .struct.tm.tm_buf;......localtim
1d2a0 65 5f 72 28 26 74 74 2c 20 26 74 6d 5f 62 75 66 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 e_r(&tt,.&tm_buf);......uint32_t
1d2c0 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 2e 20 20 6d 65 6d 73 65 74 28 70 78 .*px.=.a->pixels;......memset(px
1d2e0 2c 20 30 78 66 66 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 ,.0xff,.(size_t)(a->w.*.a->h.*.4
1d300 29 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d ));...#..int.cx.=.a->w./.2,.cy.=
1d320 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 .a->h./.2;.../..int.r.=.(a->w.<.
1d340 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 a->h.?.a->w.:.a->h)./.2.-.10;...
1d360 0c 20 20 69 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 35 20 ...if.(r.<.5)........r.=.5;...5.
1d380 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c .draw_circle(px,.a->w,.a->h,.cx,
1d3a0 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 20 20 20 66 6f 72 20 28 69 .cy,.r,.0xFF000000);......for.(i
1d3c0 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 nt.i.=.0;.i.<.12;.i++).{........
1d3e0 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 double.ang.=.i./.12.0.*.2.*.M_PI
1d400 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 3e 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 .-.M_PI_2;...>....draw_line(px,.
1d420 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 a->w,.a->h,.cx.+.(int)(cos(ang).
1d440 2a 20 28 72 20 2d 20 31 30 29 29 2c 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 *.(r.-.10)),...N..............cy
1d460 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 20 63 .+.(int)(sin(ang).*.(r.-.10)),.c
1d480 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 00 00 x.+.(int)(cos(ang).*.(r.-.2)),..
1d4a0 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 .:..............cy.+.(int)(sin(a
1d4c0 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 ng).*.(r.-.2)),.0xFF000000);....
1d4e0 20 20 7d 00 00 00 37 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 ..}...7..double.sa.=.tm_buf.tm_s
1d500 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 ec./.60.0.*.2.*.M_PI.-.M_PI_2;..
1d520 00 50 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2b .P..double.ma.=.(tm_buf.tm_min.+
1d540 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 .tm_buf.tm_sec./.60.0)./.60.0.*.
1d560 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 2.*.M_PI.-.M_PI_2;......double.h
1d580 61 20 3d 00 00 00 4a 20 20 20 20 20 20 28 28 74 6d 5f 62 75 66 2e 74 6d 5f 68 6f 75 72 20 25 20 a.=...J......((tm_buf.tm_hour.%.
1d5a0 31 32 29 20 2b 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 12).+.(tm_buf.tm_min./.60.0))./.
1d5c0 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 00 00 00 0d 20 20 20 20 20 20 4d 5f 50 49 5f 12.0.*.2.*.M_PI.-..........M_PI_
1d5e0 32 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2;...B..draw_line(px,.a->w,.a->h
1d600 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 68 61 29 20 2a 20 72 ,.cx,.cy,.cx.+.(int)(cos(ha).*.r
1d620 20 2a 20 30 2e 35 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e .*.0.5),...7............cy.+.(in
1d640 74 29 28 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 20 30 78 46 46 30 30 30 30 30 t)(sin(ha).*.r.*.0.5),.0xFF00000
1d660 30 29 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 0);...B..draw_line(px,.a->w,.a->
1d680 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 6d 61 29 20 2a 20 h,.cx,.cy,.cx.+.(int)(cos(ma).*.
1d6a0 72 20 2a 20 30 2e 37 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 r.*.0.7),...7............cy.+.(i
1d6c0 6e 74 29 28 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 20 30 78 46 46 30 30 30 30 nt)(sin(ma).*.r.*.0.7),.0xFF0000
1d6e0 30 30 29 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 00);...B..draw_line(px,.a->w,.a-
1d700 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 73 61 29 20 2a >h,.cx,.cy,.cx.+.(int)(cos(sa).*
1d720 20 72 20 2a 20 30 2e 39 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 .r.*.0.9),...7............cy.+.(
1d740 69 6e 74 29 28 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 30 78 46 46 46 46 30 int)(sin(sa).*.r.*.0.9),.0xFFFF0
1d760 30 30 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 000);...)..wl_surface_attach(a->
1d780 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 2d 20 20 77 6c 5f 73 75 72 66 61 ws,.a->buf,.0,.0);...-..wl_surfa
1d7a0 63 65 5f 64 61 6d 61 67 65 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e ce_damage(a->ws,.0,.0,.a->w,.a->
1d7c0 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 h);......wl_surface_commit(a->ws
1d7e0 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 );....}.......Jstatic.void.xt_cf
1d800 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a g(void.*d,.struct.xdg_toplevel.*
1d820 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 29 20 20 20 xt,.int32_t.w,.int32_t.h,...)...
1d840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 ................struct.wl_array.
1d860 2a 73 74 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 *st).{......struct.app.*a.=.d;..
1d880 00 0b 20 20 28 76 6f 69 64 29 78 74 3b 00 00 00 0b 20 20 28 76 6f 69 64 29 73 74 3b 00 00 00 33 ....(void)xt;......(void)st;...3
1d8a0 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d ..if.(w.>.0.&&.h.>.0.&&.(w.!=.a-
1d8c0 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 >w.||.h.!=.a->h)).{........a->w.
1d8e0 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 11 20 20 20 20 69 66 20 =.w;........a->h.=.h;........if.
1d900 28 61 2d 3e 73 68 6d 29 20 7b 00 00 00 19 20 20 20 20 20 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 (a->shm).{..........allocate_buf
1d920 66 65 72 28 61 29 3b 00 00 00 18 20 20 20 20 20 20 69 66 20 28 61 2d 3e 63 6f 6e 66 69 67 75 72 fer(a);..........if.(a->configur
1d940 65 64 29 00 00 00 16 20 20 20 20 20 20 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 61 29 3b 00 00 00 ed)............draw_clock(a);...
1d960 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 .....}......}....}.......Astatic
1d980 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 .void.xs_cfg(void.*d,.struct.xdg
1d9a0 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 14 20 _surface.*xs,.uint32_t.s).{.....
1d9c0 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 23 20 20 78 64 67 5f 73 75 72 .struct.app.*a.=.d;...#..xdg_sur
1d9e0 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 29 3b 00 00 00 17 20 20 face_ack_configure(xs,.s);......
1da00 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 18 20 20 69 66 20 28 21 a->configured.=.true;......if.(!
1da20 61 2d 3e 62 75 66 20 26 26 20 61 2d 3e 73 68 6d 29 00 00 00 17 20 20 20 20 61 6c 6c 6f 63 61 74 a->buf.&&.a->shm)........allocat
1da40 65 5f 62 75 66 66 65 72 28 61 29 3b 00 00 00 10 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 61 29 3b e_buffer(a);......draw_clock(a);
1da60 00 00 00 01 7d 00 00 00 00 00 00 00 42 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 ....}.......Bstatic.void.wm_ping
1da80 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d (void.*d,.struct.xdg_wm_base.*wm
1daa0 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 1a 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 ,.uint32_t.s).{......xdg_wm_base
1dac0 5f 70 6f 6e 67 28 77 6d 2c 20 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4e 73 74 61 74 69 63 _pong(wm,.s);....}.......Nstatic
1dae0 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 .void.registry_handler(void.*dat
1db00 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 2c 20 75 69 6e 74 a,.struct.wl_registry.*reg,.uint
1db20 33 32 5f 74 20 69 64 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32_t.id,...?....................
1db40 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 20 75 69 6e 74 .........const.char.*iface,.uint
1db60 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 32_t.ver).{......struct.app.*a.=
1db80 20 64 61 74 61 3b 00 00 00 26 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 .data;...&..if.(!strcmp(iface,."
1dba0 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 45 20 20 20 20 61 2d 3e 63 6f 6d 70 20 wl_compositor"))...E....a->comp.
1dbc0 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f =.wl_registry_bind(reg,.id,.&wl_
1dbe0 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 24 20 20 65 compositor_interface,.4);...$..e
1dc00 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 lse.if.(!strcmp(iface,."wl_shm")
1dc20 29 00 00 00 3d 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 )...=....a->shm.=.wl_registry_bi
1dc40 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 nd(reg,.id,.&wl_shm_interface,.1
1dc60 29 3b 00 00 00 2b 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 );...+..else.if.(!strcmp(iface,.
1dc80 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 41 20 20 20 20 61 2d 3e 77 6d 20 3d "xdg_wm_base")).{...A....a->wm.=
1dca0 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 78 64 67 5f .wl_registry_bind(reg,.id,.&xdg_
1dcc0 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 41 20 20 20 20 73 74 wm_base_interface,.1);...A....st
1dce0 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 atic.const.struct.xdg_wm_base_li
1dd00 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 20 3d 20 7b 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 31 20 stener.wm_list.=.{wm_ping};...1.
1dd20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 ...xdg_wm_base_add_listener(a->w
1dd40 6d 2c 20 26 77 6d 5f 6c 69 73 74 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 m,.&wm_list,.a);......}....}....
1dd60 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 3b 20 20 73 74 72 75 63 74 ....int.main(void).{...;..struct
1dd80 20 61 70 70 20 61 20 3d 20 7b 2e 77 20 3d 20 34 30 30 2c 20 2e 68 20 3d 20 34 30 30 2c 20 2e 63 .app.a.=.{.w.=.400,..h.=.400,..c
1dda0 6f 6e 66 69 67 75 72 65 64 20 3d 20 66 61 6c 73 65 7d 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 onfigured.=.false};......signal(
1ddc0 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 28 20 20 69 66 20 28 21 28 61 2e 64 20 SIGINT,.on_sig);...(..if.(!(a.d.
1dde0 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 29 29 00 00 00 0d =.wl_display_connect(NULL)))....
1de00 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 ....return.1;...'..a.reg.=.wl_di
1de20 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 49 20 20 73 74 splay_get_registry(a.d);...I..st
1de40 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 atic.const.struct.wl_registry_li
1de60 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 20 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 stener.reg_list.=.{registry_hand
1de80 6c 65 72 7d 3b 00 00 00 31 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 ler};...1..wl_registry_add_liste
1dea0 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 1c 20 20 ner(a.reg,.&reg_list,.&a);......
1dec0 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 21 20 20 wl_display_roundtrip(a.d);...!..
1dee0 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 00 if.(!a.comp.||.!a.shm.||.!a.wm).
1df00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 00 00 00 00 2e 20 20 61 2e 77 73 20 3d .......return.1;..........a.ws.=
1df20 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e .wl_compositor_create_surface(a.
1df40 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 comp);...1..a.xs.=.xdg_wm_base_g
1df60 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 3e 20 et_xdg_surface(a.wm,.a.ws);...>.
1df80 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 .static.const.struct.xdg_surface
1dfa0 5f 6c 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 73 74 20 3d 20 7b 78 73 5f 63 66 67 7d 3b 00 00 00 _listener.xs_list.=.{xs_cfg};...
1dfc0 2f 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 /..xdg_surface_add_listener(a.xs
1dfe0 2c 20 26 78 73 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 ,.&xs_list,.&a);...(..a.xt.=.xdg
1e000 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 4f _surface_get_toplevel(a.xs);...O
1e020 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 ..static.const.struct.xdg_toplev
1e040 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 20 3d 20 7b 78 74 5f 63 66 67 2c 20 28 el_listener.xt_list.=.{xt_cfg,.(
1e060 76 6f 69 64 20 2a 29 6f 6e 5f 73 69 67 7d 3b 00 00 00 30 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 void.*)on_sig};...0..xdg_topleve
1e080 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 2c 20 26 l_add_listener(a.xt,.&xt_list,.&
1e0a0 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 a);...*..xdg_toplevel_set_title(
1e0c0 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 00 00 00 00 32 20 20 2f 2a 20 41 4c a.xt,."wlclock");.......2../*.AL
1e0e0 4c 4f 57 20 52 45 53 49 5a 49 4e 47 3a 20 4d 69 6e 20 31 30 30 78 31 30 30 2c 20 4d 61 78 20 75 LOW.RESIZING:.Min.100x100,.Max.u
1e100 6e 6c 69 6d 69 74 65 64 20 2a 2f 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 nlimited.*/...,..xdg_toplevel_se
1e120 74 5f 6d 69 6e 5f 73 69 7a 65 28 61 2e 78 74 2c 20 31 30 30 2c 20 31 30 30 29 3b 00 00 00 28 20 t_min_size(a.xt,.100,.100);...(.
1e140 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 61 78 5f 73 69 7a 65 28 61 2e 78 74 2c .xdg_toplevel_set_max_size(a.xt,
1e160 20 30 2c 20 30 29 3b 00 00 00 00 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d .0,.0);..........wl_surface_comm
1e180 69 74 28 61 2e 77 73 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 it(a.ws);...9..int.tfd.=.timerfd
1e1a0 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f _create(CLOCK_MONOTONIC,.TFD_CLO
1e1c0 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c EXEC);...F..timerfd_settime(tfd,
1e1e0 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c .0,.&(struct.itimerspec){{1,.0},
1e200 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 35 20 20 77 68 69 6c 65 20 .{1,.0}},.NULL);.......5..while.
1e220 28 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 (running.&&.wl_display_dispatch(
1e240 61 2e 64 29 20 21 3d 20 2d 31 29 20 7b 00 00 00 4e 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c a.d).!=.-1).{...N....struct.poll
1e260 66 64 20 70 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 fd.pfds[2].=.{{wl_display_get_fd
1e280 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 (a.d),.POLLIN},.{tfd,.POLLIN}};.
1e2a0 00 00 1e 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 70 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 .......if.(poll(pfds,.2,.-1).<.0
1e2c0 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 23 20 20 20 20 69 66 20 28 70 66 64 )..........break;...#....if.(pfd
1e2e0 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 s[1].revents.&.POLLIN).{........
1e300 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b 00 00 00 2f 20 20 20 20 20 20 69 66 20 28 72 ..uint64_t.ticks;.../......if.(r
1e320 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 69 7a 65 6f 66 28 74 69 63 6b 73 29 29 20 ead(tfd,.&ticks,.sizeof(ticks)).
1e340 3e 20 30 29 00 00 00 17 20 20 20 20 20 20 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 26 61 29 3b 00 >.0)............draw_clock(&a);.
1e360 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 0d 20 20 63 6c 6f 73 65 28 74 66 64 29 3b .......}......}......close(tfd);
1e380 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 ......wl_display_disconnect(a.d)
1e3a0 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 ;......return.0;....}5..........
1e3c0 00 00 00 00 00 ee 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9e 1b 00 ................................
1e3e0 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 18 00 00 00 1a 00 00 00 00 00 00 00 .............5._................
1e400 00 00 00 00 19 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 ................................
1e420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 9e f1 04 01 00 00 00 00 00 f5 18 ...................i............
1e580 00 00 00 bf 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 c0 00 00 00 00 00 ....................}...........
1e5a0 00 00 00 00 00 00 00 f5 18 00 00 00 a7 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 11 20 20 78 ...............................x
1e5c0 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 f5 18 00 00 00 a8 00 00 00 00 00 00 00 00 00 00 00 00 dg_surface_add..................
1e5e0 f5 18 00 00 00 79 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 20 f5 18 00 00 00 7a 00 00 00 .....y......................z...
1e600 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 ................................
1e620 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 .................5..............
1e640 00 00 00 00 00 00 00 00 00 79 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........y......................
1e660 00 00 10 00 00 00 00 00 00 f5 18 00 00 00 00 79 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 2e ...............y................
1e680 00 00 00 11 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 f5 ................................
1e6a0 18 00 00 00 00 a7 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 18 00 00 00 01 00 00 00 00 17 00 ................................
1e6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 50 03 00 00 00 00 00 00 35 81 5f d0 00 00 00 19 00 00 00 .............P.......5._........
1e6e0 1b 00 00 00 00 00 00 00 00 00 00 00 1a 00 00 00 c0 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 ................................
1e700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 9e f2 04 ...........................i....
1e860 01 00 00 00 0b 00 f5 18 00 00 00 01 00 00 00 ed 00 00 00 c0 00 00 00 b9 00 00 00 12 23 69 6e 63 ............................#inc
1e880 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 lude.<errno.h>....#include.<fcnt
1e8a0 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e l.h>....#include.<math.h>....#in
1e8c0 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e clude.<poll.h>....#include.<sign
1e8e0 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 al.h>....#include.<stdbool.h>...
1e900 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 .#include.<stdio.h>....#include.
1e920 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 <stdlib.h>....#include.<string.h
1e940 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 >....#include.<sys/mman.h>....#i
1e960 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 nclude.<sys/timerfd.h>....#inclu
1e980 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e de.<time.h>....#include.<unistd.
1e9a0 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 h>....#include.<wayland-client.h
1e9c0 3e 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d >...&#include."xdg-shell-client-
1e9e0 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 protocol.h"........#ifndef.M_PI.
1ea00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 ..##define.M_PI.3.14159265358979
1ea20 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 323846....#endif....#ifndef.M_PI
1ea40 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 _2...%#define.M_PI_2.1.570796326
1ea60 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 79489661923....#endif.......)sta
1ea80 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e tic.volatile.sig_atomic_t.runnin
1eaa0 67 20 3d 20 31 3b 00 00 00 33 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 g.=.1;...3static.void.on_sig(int
1eac0 20 73 29 20 7b 20 28 76 6f 69 64 29 73 3b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 .s).{.(void)s;.running.=.0;.}...
1eae0 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c .....struct.app.{......struct.wl
1eb00 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 _display.*d;......struct.wl_regi
1eb20 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 stry.*reg;......struct.wl_compos
1eb40 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a itor.*comp;......struct.wl_shm.*
1eb60 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d shm;......struct.xdg_wm_base.*wm
1eb80 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 ;......struct.wl_surface.*ws;...
1eba0 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 ...struct.xdg_surface.*xs;......
1ebc0 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f struct.xdg_toplevel.*xt;......vo
1ebe0 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 id.*pixels;......struct.wl_buffe
1ec00 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 12 20 20 62 6f 6f 6c r.*buf;......int.w,.h;......bool
1ec20 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 14 20 20 62 6f 6f 6c 20 6e 65 65 64 73 5f 62 75 66 .configured;......bool.needs_buf
1ec40 66 65 72 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 fer;....};.......)static.int.cre
1ec60 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 ate_shm_file(size_t.size).{.....
1ec80 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b .char.template[].=."/tmp/wlclock
1eca0 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 -shm-XXXXXX";......int.fd.=.mkst
1ecc0 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 16 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 emp(template);......if.(fd.<.0).
1ece0 65 78 69 74 28 31 29 3b 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 exit(1);......unlink(template);.
1ed00 00 00 3d 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 28 6f 66 66 5f 74 29 73 69 ..=..if.(ftruncate(fd,.(off_t)si
1ed20 7a 65 29 20 3c 20 30 29 20 7b 20 63 6c 6f 73 65 28 66 64 29 3b 20 65 78 69 74 28 31 29 3b 20 7d ze).<.0).{.close(fd);.exit(1);.}
1ed40 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2c 73 74 61 ......return.fd;....}.......,sta
1ed60 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 73 74 72 75 63 74 20 tic.void.allocate_buffer(struct.
1ed80 61 70 70 20 2a 61 29 20 7b 00 00 00 30 20 20 69 66 20 28 21 61 2d 3e 73 68 6d 20 7c 7c 20 61 2d app.*a).{...0..if.(!a->shm.||.a-
1eda0 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 20 72 65 74 75 72 6e 3b 00 00 00 >w.<=.0.||.a->h.<=.0).return;...
1edc0 0f 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 ...if.(a->buf).{........wl_buffe
1ede0 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 31 20 20 20 20 6d 75 6e 6d 61 70 r_destroy(a->buf);...1....munmap
1ee00 28 61 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 (a->pixels,.(size_t)(a->w.*.a->h
1ee20 20 2a 20 34 29 29 3b 00 00 00 12 20 20 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 .*.4));........a->buf.=.NULL;...
1ee40 15 20 20 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 .....a->pixels.=.NULL;......}...
1ee60 18 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 61 2d 3e 77 20 2a 20 34 3b 00 00 00 28 20 20 73 ...int.stride.=.a->w.*.4;...(..s
1ee80 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 28 73 74 72 69 64 65 20 2a 20 61 ize_t.size.=.(size_t)(stride.*.a
1eea0 2d 3e 68 29 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 ->h);...!..int.fd.=.create_shm_f
1eec0 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 ile(size);...J..a->pixels.=.mmap
1eee0 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 (NULL,.size,.PROT_READ.|.PROT_WR
1ef00 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 36 20 20 69 66 ITE,.MAP_SHARED,.fd,.0);...6..if
1ef20 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 20 63 6c 6f .(a->pixels.==.MAP_FAILED).{.clo
1ef40 73 65 28 66 64 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 4b 20 20 73 74 72 75 63 74 20 77 se(fd);.exit(1);.}...K..struct.w
1ef60 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 l_shm_pool.*pool.=.wl_shm_create
1ef80 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 28 69 6e 74 33 32 5f 74 29 73 69 7a 65 29 _pool(a->shm,.fd,.(int32_t)size)
1efa0 3b 00 00 00 5a 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 ;...Z..a->buf.=.wl_shm_pool_crea
1efc0 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 73 te_buffer(pool,.0,.a->w,.a->h,.s
1efe0 74 72 69 64 65 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 tride,.WL_SHM_FORMAT_ARGB8888);.
1f000 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 .....wl_shm_pool_destroy(pool);.
1f020 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 1a 20 20 61 2d 3e 6e 65 65 64 73 5f 62 75 .....close(fd);......a->needs_bu
1f040 66 66 65 72 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 5f 73 74 61 74 69 63 ffer.=.false;....}......._static
1f060 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e .void.draw_line(uint32_t.*px,.in
1f080 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 t.w,.int.h,.int.x0,.int.y0,.int.
1f0a0 78 31 2c 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 x1,.int.y1,.uint32_t.c).{.../..i
1f0c0 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 nt.dx.=.abs(x1.-.x0),.sx.=.x0.<.
1f0e0 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 x1.?.1.:.-1;...0..int.dy.=.-abs(
1f100 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b y1.-.y0),.sy.=.y0.<.y1.?.1.:.-1;
1f120 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0d ......int.err.=.dx.+.dy,.e2;....
1f140 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 44 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 ..while.(1).{...D....if.(x0.>=.0
1f160 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 .&&.x0.<.w.&&.y0.>=.0.&&.y0.<.h)
1f180 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 24 20 20 20 20 69 66 20 .px[y0.*.w.+.x0].=.c;...$....if.
1f1a0 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 20 62 72 65 61 6b 3b 00 00 00 (x0.==.x1.&&.y0.==.y1).break;...
1f1c0 11 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 2a 20 20 20 20 69 66 20 28 65 32 .....e2.=.2.*.err;...*....if.(e2
1f1e0 20 3e 3d 20 64 79 29 20 7b 20 65 72 72 20 2b 3d 20 64 79 3b 20 78 30 20 2b 3d 20 73 78 3b 20 7d .>=.dy).{.err.+=.dy;.x0.+=.sx;.}
1f200 00 00 00 2a 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 20 65 72 72 20 2b 3d 20 64 ...*....if.(e2.<=.dx).{.err.+=.d
1f220 78 3b 20 79 30 20 2b 3d 20 73 79 3b 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 x;.y0.+=.sy;.}......}....}......
1f240 00 58 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 .Xstatic.void.draw_circle(uint32
1f260 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e _t.*px,.int.w,.int.h,.int.cx,.in
1f280 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 t.cy,.int.r,.uint32_t.c).{..."..
1f2a0 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b int.x.=.0,.y.=.r,.d.=.3.-.2.*.r;
1f2c0 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 4c 20 20 20 20 69 6e ......while.(y.>=.x).{...L....in
1f2e0 74 20 70 74 73 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 2b 78 2c 20 63 79 2b 79 7d 2c 20 7b 63 78 t.pts[8][2].=.{{cx+x,.cy+y},.{cx
1f300 2d 78 2c 20 63 79 2b 79 7d 2c 20 7b 63 78 2b 78 2c 20 63 79 2d 79 7d 2c 20 7b 63 78 2d 78 2c 20 -x,.cy+y},.{cx+x,.cy-y},.{cx-x,.
1f320 63 79 2d 79 7d 2c 00 00 00 4d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b cy-y},...M.....................{
1f340 63 78 2b 79 2c 20 63 79 2b 78 7d 2c 20 7b 63 78 2d 79 2c 20 63 79 2b 78 7d 2c 20 7b 63 78 2b 79 cx+y,.cy+x},.{cx-y,.cy+x},.{cx+y
1f360 2c 20 63 79 2d 78 7d 2c 20 7b 63 78 2d 79 2c 20 63 79 2d 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 ,.cy-x},.{cx-y,.cy-x}};........f
1f380 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 4d 20 20 or.(int.i.=.0;.i.<.8;.i++)...M..
1f3a0 20 20 20 20 69 66 20 28 70 74 73 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d ....if.(pts[i][0].>=.0.&&.pts[i]
1f3c0 5b 30 5d 20 3c 20 77 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 [0].<.w.&&.pts[i][1].>=.0.&&.pts
1f3e0 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 2a 20 20 20 20 20 20 20 20 70 78 5b 70 74 73 5b 69 5d [i][1].<.h)...*........px[pts[i]
1f400 5b 31 5d 20 2a 20 77 20 2b 20 70 74 73 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 43 20 20 20 [1].*.w.+.pts[i][0]].=.c;...C...
1f420 20 69 66 20 28 64 20 3e 20 30 29 20 7b 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b .if.(d.>.0).{.d.+=.4.*.(x.-.y).+
1f440 20 31 30 3b 20 79 2d 2d 3b 20 7d 20 65 6c 73 65 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b .10;.y--;.}.else.d.+=.4.*.x.+.6;
1f460 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 27 ........x++;......}....}.......'
1f480 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 6c 6f 63 6b 28 73 74 72 75 63 74 20 61 70 static.void.draw_clock(struct.ap
1f4a0 70 20 2a 61 29 20 7b 00 00 00 2a 20 20 69 66 20 28 61 2d 3e 6e 65 65 64 73 5f 62 75 66 66 65 72 p.*a).{...*..if.(a->needs_buffer
1f4c0 29 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 61 29 3b 00 00 00 36 20 20 69 66 20 28 21 ).allocate_buffer(a);...6..if.(!
1f4e0 61 2d 3e 70 69 78 65 6c 73 20 7c 7c 20 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 21 a->pixels.||.!a->configured.||.!
1f500 61 2d 3e 62 75 66 29 20 72 65 74 75 72 6e 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d a->buf).return;......time_t.tt.=
1f520 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 13 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 5f 62 .time(NULL);......struct.tm.tm_b
1f540 75 66 3b 00 00 00 1c 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 5f 62 75 uf;......localtime_r(&tt,.&tm_bu
1f560 66 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c f);......uint32_t.*px.=.a->pixel
1f580 73 3b 00 00 00 2e 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 66 66 2c 20 28 73 69 7a 65 5f 74 s;......memset(px,.0xff,.(size_t
1f5a0 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 )(a->w.*.a->h.*.4));...#..int.cx
1f5c0 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 .=.a->w./.2,.cy.=.a->h./.2;.../.
1f5e0 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 .int.r.=.(a->w.<.a->h.?.a->w.:.a
1f600 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 13 20 20 69 66 20 28 72 20 3c 20 35 29 20 72 ->h)./.2.-.10;......if.(r.<.5).r
1f620 20 3d 20 35 3b 00 00 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c .=.5;...5..draw_circle(px,.a->w,
1f640 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 .a->h,.cx,.cy,.r,.0xFF000000);..
1f660 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 ....for.(int.i.=.0;.i.<.12;.i++)
1f680 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 31 32 2e 30 20 .{........double.ang.=.i./.12.0.
1f6a0 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 5f 20 20 20 20 64 72 61 77 *.2.*.M_PI.-.M_PI_2;..._....draw
1f6c0 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 28 69 6e 74 29 _line(px,.a->w,.a->h,.cx.+.(int)
1f6e0 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 20 63 79 20 2b 20 28 69 6e 74 (cos(ang).*.(r.-.10)),.cy.+.(int
1f700 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 00 00 00 5a 20 20 20 20 20 )(sin(ang).*.(r.-.10)),...Z.....
1f720 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 .........cx.+.(int)(cos(ang).*.(
1f740 72 20 2d 20 32 29 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 r.-.2)),.cy.+.(int)(sin(ang).*.(
1f760 72 20 2d 20 32 29 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 37 r.-.2)),.0xFF000000);......}...7
1f780 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 ..double.sa.=.tm_buf.tm_sec./.60
1f7a0 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 50 20 20 64 6f 75 .0.*.2.*.M_PI.-.M_PI_2;...P..dou
1f7c0 62 6c 65 20 6d 61 20 3d 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 5f 62 75 66 ble.ma.=.(tm_buf.tm_min.+.tm_buf
1f7e0 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 .tm_sec./.60.0)./.60.0.*.2.*.M_P
1f800 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 5a 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 I.-.M_PI_2;...Z..double.ha.=.((t
1f820 6d 5f 62 75 66 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 5f 62 75 66 2e 74 6d m_buf.tm_hour.%.12).+.(tm_buf.tm
1f840 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 _min./.60.0))./.12.0.*.2.*.M_PI.
1f860 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 6e 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e -.M_PI_2;...n..draw_line(px,.a->
1f880 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 w,.a->h,.cx,.cy,.cx.+.(int)(cos(
1f8a0 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 68 ha).*.r.*.0.5),.cy.+.(int)(sin(h
1f8c0 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 6e 20 a).*.r.*.0.5),.0xFF000000);...n.
1f8e0 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 .draw_line(px,.a->w,.a->h,.cx,.c
1f900 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 y,.cx.+.(int)(cos(ma).*.r.*.0.7)
1f920 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c ,.cy.+.(int)(sin(ma).*.r.*.0.7),
1f940 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 6e 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c .0xFF000000);...n..draw_line(px,
1f960 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 .a->w,.a->h,.cx,.cy,.cx.+.(int)(
1f980 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 cos(sa).*.r.*.0.9),.cy.+.(int)(s
1f9a0 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 in(sa).*.r.*.0.9),.0xFFFF0000);.
1f9c0 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d ..)..wl_surface_attach(a->ws,.a-
1f9e0 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 2d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d >buf,.0,.0);...-..wl_surface_dam
1fa00 61 67 65 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 age(a->ws,.0,.0,.a->w,.a->h);...
1fa20 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 01 ...wl_surface_commit(a->ws);....
1fa40 7d 00 00 00 00 00 00 00 61 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 }.......astatic.void.xt_cfg(void
1fa60 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e .*d,.struct.xdg_toplevel.*xt,.in
1fa80 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 t32_t.w,.int32_t.h,.struct.wl_ar
1faa0 72 61 79 20 2a 73 74 29 20 7b 00 00 00 28 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 ray.*st).{...(..struct.app.*a.=.
1fac0 64 3b 20 28 76 6f 69 64 29 78 74 3b 20 28 76 6f 69 64 29 73 74 3b 00 00 00 33 20 20 69 66 20 28 d;.(void)xt;.(void)st;...3..if.(
1fae0 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 w.>.0.&&.h.>.0.&&.(w.!=.a->w.||.
1fb00 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 17 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 20 61 h.!=.a->h)).{........a->w.=.w;.a
1fb20 2d 3e 68 20 3d 20 68 3b 00 00 00 1b 20 20 20 20 61 2d 3e 6e 65 65 64 73 5f 62 75 66 66 65 72 20 ->h.=.h;........a->needs_buffer.
1fb40 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 =.true;......}....}.......Astati
1fb60 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 c.void.xs_cfg(void.*d,.struct.xd
1fb80 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 14 g_surface.*xs,.uint32_t.s).{....
1fba0 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 23 20 20 78 64 67 5f 73 75 ..struct.app.*a.=.d;...#..xdg_su
1fbc0 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 29 3b 00 00 00 17 20 rface_ack_configure(xs,.s);.....
1fbe0 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 10 20 20 64 72 61 77 .a->configured.=.true;......draw
1fc00 5f 63 6c 6f 63 6b 28 61 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 5d 73 74 61 74 69 63 20 76 6f _clock(a);....}.......]static.vo
1fc20 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 id.wm_ping(void.*d,.struct.xdg_w
1fc40 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 20 78 64 67 5f 77 6d m_base.*wm,.uint32_t.s).{.xdg_wm
1fc60 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 29 3b 20 7d 00 00 00 00 00 00 00 71 73 74 61 74 _base_pong(wm,.s);.}.......qstat
1fc80 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 ic.void.registry_handler(void.*d
1fca0 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 2c 20 75 69 ata,.struct.wl_registry.*reg,.ui
1fcc0 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 20 75 69 nt32_t.id,.const.char.*iface,.ui
1fce0 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 nt32_t.ver).{......struct.app.*a
1fd00 20 3d 20 64 61 74 61 3b 00 00 00 68 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c .=.data;...h..if.(!strcmp(iface,
1fd20 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f ."wl_compositor")).a->comp.=.wl_
1fd40 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f registry_bind(reg,.id,.&wl_compo
1fd60 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 5e 20 20 65 6c 73 65 20 69 sitor_interface,.4);...^..else.i
1fd80 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 29 20 61 2d 3e f.(!strcmp(iface,."wl_shm")).a->
1fda0 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 shm.=.wl_registry_bind(reg,.id,.
1fdc0 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 2b 20 20 65 6c 73 65 &wl_shm_interface,.1);...+..else
1fde0 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 .if.(!strcmp(iface,."xdg_wm_base
1fe00 22 29 29 20 7b 00 00 00 41 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 ")).{...A....a->wm.=.wl_registry
1fe20 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 _bind(reg,.id,.&xdg_wm_base_inte
1fe40 72 66 61 63 65 2c 20 31 29 3b 00 00 00 41 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 rface,.1);...A....static.const.s
1fe60 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 truct.xdg_wm_base_listener.wm_li
1fe80 73 74 20 3d 20 7b 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 31 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 st.=.{wm_ping};...1....xdg_wm_ba
1fea0 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 74 2c se_add_listener(a->wm,.&wm_list,
1fec0 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e .a);......}....}........int.main
1fee0 28 76 6f 69 64 29 20 7b 00 00 00 51 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 2e 77 (void).{...Q..struct.app.a.=.{.w
1ff00 20 3d 20 34 30 30 2c 20 2e 68 20 3d 20 34 30 30 2c 20 2e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 .=.400,..h.=.400,..configured.=.
1ff20 66 61 6c 73 65 2c 20 2e 6e 65 65 64 73 5f 62 75 66 66 65 72 20 3d 20 74 72 75 65 7d 3b 00 00 00 false,..needs_buffer.=.true};...
1ff40 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 32 20 20 ...signal(SIGINT,.on_sig);...2..
1ff60 69 66 20 28 21 28 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e if.(!(a.d.=.wl_display_connect(N
1ff80 55 4c 4c 29 29 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c ULL))).return.1;...'..a.reg.=.wl
1ffa0 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 49 20 _display_get_registry(a.d);...I.
1ffc0 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 .static.const.struct.wl_registry
1ffe0 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 20 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 _listener.reg_list.=.{registry_h
20000 61 6e 64 6c 65 72 7d 3b 00 00 00 31 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 andler};...1..wl_registry_add_li
20020 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 stener(a.reg,.&reg_list,.&a);...
20040 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 ...wl_display_roundtrip(a.d);...
20060 2b 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 +..if.(!a.comp.||.!a.shm.||.!a.w
20080 6d 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 00 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f m).return.1;..........a.ws.=.wl_
200a0 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 compositor_create_surface(a.comp
200c0 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 );...1..a.xs.=.xdg_wm_base_get_x
200e0 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 3e 20 20 73 74 61 dg_surface(a.wm,.a.ws);...>..sta
20100 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 tic.const.struct.xdg_surface_lis
20120 74 65 6e 65 72 20 78 73 5f 6c 69 73 74 20 3d 20 7b 78 73 5f 63 66 67 7d 3b 00 00 00 2f 20 20 78 tener.xs_list.=.{xs_cfg};.../..x
20140 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 dg_surface_add_listener(a.xs,.&x
20160 73 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 s_list,.&a);...(..a.xt.=.xdg_sur
20180 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 4e 20 20 73 74 face_get_toplevel(a.xs);...N..st
201a0 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c atic.const.struct.xdg_toplevel_l
201c0 69 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 20 3d 20 7b 78 74 5f 63 66 67 2c 20 28 76 6f 69 64 istener.xt_list.=.{xt_cfg,.(void
201e0 2a 29 6f 6e 5f 73 69 67 7d 3b 00 00 00 30 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 *)on_sig};...0..xdg_toplevel_add
20200 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 _listener(a.xt,.&xt_list,.&a);..
20220 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c .*..xdg_toplevel_set_title(a.xt,
20240 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 00 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 ."wlclock");.......,..xdg_toplev
20260 65 6c 5f 73 65 74 5f 6d 69 6e 5f 73 69 7a 65 28 61 2e 78 74 2c 20 31 30 30 2c 20 31 30 30 29 3b el_set_min_size(a.xt,.100,.100);
20280 00 00 00 28 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 61 78 5f 73 69 7a 65 28 ...(..xdg_toplevel_set_max_size(
202a0 61 2e 78 74 2c 20 30 2c 20 30 29 3b 00 00 00 00 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 a.xt,.0,.0);..........wl_surface
202c0 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 _commit(a.ws);...9..int.tfd.=.ti
202e0 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 merfd_create(CLOCK_MONOTONIC,.TF
20300 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 D_CLOEXEC);...F..timerfd_settime
20320 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 (tfd,.0,.&(struct.itimerspec){{1
20340 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 35 20 20 77 ,.0},.{1,.0}},.NULL);.......5..w
20360 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 hile.(running.&&.wl_display_disp
20380 61 74 63 68 28 61 2e 64 29 20 21 3d 20 2d 31 29 20 7b 00 00 00 4e 20 20 20 20 73 74 72 75 63 74 atch(a.d).!=.-1).{...N....struct
203a0 20 70 6f 6c 6c 66 64 20 70 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 .pollfd.pfds[2].=.{{wl_display_g
203c0 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 et_fd(a.d),.POLLIN},.{tfd,.POLLI
203e0 4e 7d 7d 3b 00 00 00 25 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 70 66 64 73 2c 20 32 2c 20 2d 31 N}};...%....if.(poll(pfds,.2,.-1
20400 29 20 3c 20 30 29 20 62 72 65 61 6b 3b 00 00 00 23 20 20 20 20 69 66 20 28 70 66 64 73 5b 31 5d ).<.0).break;...#....if.(pfds[1]
20420 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 .revents.&.POLLIN).{..........ui
20440 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b 00 00 00 3f 20 20 20 20 20 20 69 66 20 28 72 65 61 64 28 nt64_t.ticks;...?......if.(read(
20460 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 69 7a 65 6f 66 28 74 69 63 6b 73 29 29 20 3e 20 30 29 tfd,.&ticks,.sizeof(ticks)).>.0)
20480 20 64 72 61 77 5f 63 6c 6f 63 6b 28 26 61 29 3b 35 81 f5 18 00 00 00 00 01 00 00 00 09 00 00 00 .draw_clock(&a);5...............
204a0 b8 00 00 00 2f 00 00 00 ea 00 00 00 07 00 00 00 29 00 00 00 00 00 00 00 d3 19 00 00 00 00 00 00 ..../...........)...............
204c0 67 1b 00 00 00 00 00 00 35 81 5f d0 00 00 00 1a 00 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 1b g.......5._.....................
204e0 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
205a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
205c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
205e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 9f 22 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 ..............i.."..............
20660 00 00 02 00 00 00 00 00 00 00 f2 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f ...............#define._POSIX_C_
20680 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d SOURCE.200809L...&#include."xdg-
206a0 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 shell-client-protocol.h"....#inc
206c0 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 lude.<errno.h>....#include.<fcnt
206e0 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e l.h>....#include.<math.h>....#in
20700 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e clude.<poll.h>....#include.<sign
20720 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 al.h>....#include.<stdbool.h>...
20740 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 .#include.<stdio.h>....#include.
20760 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 <stdlib.h>....#include.<string.h
20780 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 >....#include.<sys/mman.h>....#i
207a0 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 nclude.<sys/timerfd.h>....#inclu
207c0 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e de.<time.h>....#include.<unistd.
207e0 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 h>....#include.<wayland-client.h
20800 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 >........#ifndef.M_PI...##define
20820 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 .M_PI.3.14159265358979323846....
20840 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 #endif....#ifndef.M_PI_2...%#def
20860 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 ine.M_PI_2.1.5707963267948966192
20880 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 3....#endif.......)static.volati
208a0 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b le.sig_atomic_t.running.=.1;....
208c0 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 static.void.on_sig(int.s).{.....
208e0 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d .(void)s;......running.=.0;....}
20900 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 ........struct.app.{......struct
20920 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 .wl_display.*d;......struct.wl_r
20940 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d egistry.*reg;......struct.wl_com
20960 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 positor.*comp;......struct.wl_sh
20980 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 m.*shm;......struct.xdg_wm_base.
209a0 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b *wm;......struct.wl_surface.*ws;
209c0 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 ......struct.xdg_surface.*xs;...
209e0 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 ...struct.xdg_toplevel.*xt;.....
20a00 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 .void.*pixels;......struct.wl_bu
20a20 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 12 20 20 62 ffer.*buf;......int.w,.h;......b
20a40 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 14 20 20 62 6f 6f 6c 20 6e 65 65 64 73 5f ool.configured;......bool.needs_
20a60 62 75 66 66 65 72 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 buffer;....};.......)static.int.
20a80 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 create_shm_file(size_t.size).{..
20aa0 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c ....char.template[].=."/tmp/wlcl
20ac0 6f 63 6b 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d ock-shm-XXXXXX";......int.fd.=.m
20ae0 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 kstemp(template);......if.(fd.<.
20b00 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 0)........exit(1);......unlink(t
20b20 65 6d 70 6c 61 74 65 29 3b 00 00 00 27 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c emplate);...'..if.(ftruncate(fd,
20b40 20 28 6f 66 66 5f 74 29 73 69 7a 65 29 20 3c 20 30 29 20 7b 00 00 00 0e 20 20 20 20 63 6c 6f 73 .(off_t)size).<.0).{........clos
20b60 65 28 66 64 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 e(fd);........exit(1);......}...
20b80 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2c 73 74 61 74 69 63 ...return.fd;....}.......,static
20ba0 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 73 74 72 75 63 74 20 61 70 70 .void.allocate_buffer(struct.app
20bc0 20 2a 61 29 20 7b 00 00 00 28 20 20 69 66 20 28 21 61 2d 3e 73 68 6d 20 7c 7c 20 61 2d 3e 77 20 .*a).{...(..if.(!a->shm.||.a->w.
20be0 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e <=.0.||.a->h.<=.0)........return
20c00 3b 00 00 00 0f 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 ;......if.(a->buf).{........wl_b
20c20 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 31 20 20 20 20 6d 75 uffer_destroy(a->buf);...1....mu
20c40 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 nmap(a->pixels,.(size_t)(a->w.*.
20c60 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 12 20 20 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c a->h.*.4));........a->buf.=.NULL
20c80 3b 00 00 00 15 20 20 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 ;........a->pixels.=.NULL;......
20ca0 7d 00 00 00 18 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 61 2d 3e 77 20 2a 20 34 3b 00 00 00 }......int.stride.=.a->w.*.4;...
20cc0 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 28 73 74 72 69 64 65 (..size_t.size.=.(size_t)(stride
20ce0 20 2a 20 61 2d 3e 68 29 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 .*.a->h);...!..int.fd.=.create_s
20d00 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 hm_file(size);...J..a->pixels.=.
20d20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f mmap(NULL,.size,.PROT_READ.|.PRO
20d40 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 20 T_WRITE,.MAP_SHARED,.fd,.0);....
20d60 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b ..if.(a->pixels.==.MAP_FAILED).{
20d80 00 00 00 0e 20 20 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 ........close(fd);........exit(1
20da0 29 3b 00 00 00 03 20 20 7d 00 00 00 4b 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f );......}...K..struct.wl_shm_poo
20dc0 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e l.*pool.=.wl_shm_create_pool(a->
20de0 73 68 6d 2c 20 66 64 2c 20 28 69 6e 74 33 32 5f 74 29 73 69 7a 65 29 3b 00 00 00 41 20 20 61 2d shm,.fd,.(int32_t)size);...A..a-
20e00 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 >buf.=.wl_shm_pool_create_buffer
20e20 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 73 74 72 69 64 65 2c 00 00 00 (pool,.0,.a->w,.a->h,.stride,...
20e40 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =...............................
20e60 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 ......WL_SHM_FORMAT_ARGB8888);..
20e80 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 ....wl_shm_pool_destroy(pool);..
20ea0 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 1a 20 20 61 2d 3e 6e 65 65 64 73 5f 62 75 66 ....close(fd);......a->needs_buf
20ec0 66 65 72 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 fer.=.false;....}.......Istatic.
20ee0 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 void.draw_line(uint32_t.*px,.int
20f00 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 .w,.int.h,.int.x0,.int.y0,.int.x
20f20 31 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 1,...+......................int.
20f40 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 y1,.uint32_t.c).{.../..int.dx.=.
20f60 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a abs(x1.-.x0),.sx.=.x0.<.x1.?.1.:
20f80 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 .-1;...0..int.dy.=.-abs(y1.-.y0)
20fa0 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 18 20 20 69 6e ,.sy.=.y0.<.y1.?.1.:.-1;......in
20fc0 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 t.err.=.dx.+.dy,.e2;......while.
20fe0 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c (1).{.../....if.(x0.>=.0.&&.x0.<
21000 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 1a 20 20 20 20 .w.&&.y0.>=.0.&&.y0.<.h)........
21020 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 1d 20 20 20 20 69 66 ..px[y0.*.w.+.x0].=.c;........if
21040 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 .(x0.==.x1.&&.y0.==.y1).........
21060 20 62 72 65 61 6b 3b 00 00 00 11 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 13 .break;........e2.=.2.*.err;....
21080 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 ....if.(e2.>=.dy).{..........err
210a0 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 20 .+=.dy;..........x0.+=.sx;......
210c0 20 20 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 20 ..}........if.(e2.<=.dx).{......
210e0 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 ....err.+=.dx;..........y0.+=.sy
21100 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 ;........}......}....}.......Jst
21120 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a atic.void.draw_circle(uint32_t.*
21140 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 px,.int.w,.int.h,.int.cx,.int.cy
21160 2c 20 69 6e 74 20 72 2c 00 00 00 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.int.r,...%....................
21180 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 ....uint32_t.c).{..."..int.x.=.0
211a0 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 ,.y.=.r,.d.=.3.-.2.*.r;......whi
211c0 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 4a 20 20 20 20 69 6e 74 20 70 74 73 5b 38 5d 5b le.(y.>=.x).{...J....int.pts[8][
211e0 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 2].=.{{cx.+.x,.cy.+.y},.{cx.-.x,
21200 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 4a 20 .cy.+.y},.{cx.+.x,.cy.-.y},...J.
21220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 ....................{cx.-.x,.cy.
21240 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c -.y},.{cx.+.y,.cy.+.x},.{cx.-.y,
21260 20 63 79 20 2b 20 78 7d 2c 00 00 00 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .cy.+.x},...9...................
21280 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 ..{cx.+.y,.cy.-.x},.{cx.-.y,.cy.
212a0 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 -.x}};........for.(int.i.=.0;.i.
212c0 3c 20 38 3b 20 69 2b 2b 29 00 00 00 4d 20 20 20 20 20 20 69 66 20 28 70 74 73 5b 69 5d 5b 30 5d <.8;.i++)...M......if.(pts[i][0]
212e0 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 74 73 5b 69 5d .>=.0.&&.pts[i][0].<.w.&&.pts[i]
21300 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 2a 20 20 [1].>=.0.&&.pts[i][1].<.h)...*..
21320 20 20 20 20 20 20 70 78 5b 70 74 73 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 74 73 5b 69 5d 5b ......px[pts[i][1].*.w.+.pts[i][
21340 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 0]].=.c;........if.(d.>.0).{....
21360 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a ......d.+=.4.*.(x.-.y).+.10;....
21380 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 ......y--;........}.else........
213a0 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 ..d.+=.4.*.x.+.6;........x++;...
213c0 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 27 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 ...}....}.......'static.void.dra
213e0 77 5f 63 6c 6f 63 6b 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 16 20 20 69 66 w_clock(struct.app.*a).{......if
21400 20 28 61 2d 3e 6e 65 65 64 73 5f 62 75 66 66 65 72 29 00 00 00 17 20 20 20 20 61 6c 6c 6f 63 61 .(a->needs_buffer)........alloca
21420 74 65 5f 62 75 66 66 65 72 28 61 29 3b 00 00 00 2e 20 20 69 66 20 28 21 61 2d 3e 70 69 78 65 6c te_buffer(a);......if.(!a->pixel
21440 73 20 7c 7c 20 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 21 61 2d 3e 62 75 66 29 00 s.||.!a->configured.||.!a->buf).
21460 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 .......return;......time_t.tt.=.
21480 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 13 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 5f 62 75 time(NULL);......struct.tm.tm_bu
214a0 66 3b 00 00 00 1c 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 5f 62 75 66 f;......localtime_r(&tt,.&tm_buf
214c0 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 );......uint32_t.*px.=.a->pixels
214e0 3b 00 00 00 2e 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 66 66 2c 20 28 73 69 7a 65 5f 74 29 ;......memset(px,.0xff,.(size_t)
21500 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 (a->w.*.a->h.*.4));...#..int.cx.
21520 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 =.a->w./.2,.cy.=.a->h./.2;.../..
21540 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d int.r.=.(a->w.<.a->h.?.a->w.:.a-
21560 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 66 20 28 72 20 3c 20 35 29 00 00 00 >h)./.2.-.10;......if.(r.<.5)...
21580 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c .....r.=.5;...5..draw_circle(px,
215a0 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 .a->w,.a->h,.cx,.cy,.r,.0xFF0000
215c0 30 30 29 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 00);......for.(int.i.=.0;.i.<.12
215e0 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f ;.i++).{........double.ang.=.i./
21600 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 3e 20 20 .12.0.*.2.*.M_PI.-.M_PI_2;...>..
21620 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b ..draw_line(px,.a->w,.a->h,.cx.+
21640 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 00 00 00 4e .(int)(cos(ang).*.(r.-.10)),...N
21660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 ..............cy.+.(int)(sin(ang
21680 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e ).*.(r.-.10)),.cx.+.(int)(cos(an
216a0 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g).*.(r.-.2)),...:..............
216c0 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 20 cy.+.(int)(sin(ang).*.(r.-.2)),.
216e0 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 37 20 20 64 6f 75 62 6c 65 20 0xFF000000);......}...7..double.
21700 73 61 20 3d 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 sa.=.tm_buf.tm_sec./.60.0.*.2.*.
21720 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 50 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 M_PI.-.M_PI_2;...P..double.ma.=.
21740 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f (tm_buf.tm_min.+.tm_buf.tm_sec./
21760 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f .60.0)./.60.0.*.2.*.M_PI.-.M_PI_
21780 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 4a 20 20 20 20 20 20 28 28 74 2;......double.ha.=...J......((t
217a0 6d 5f 62 75 66 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 5f 62 75 66 2e 74 6d m_buf.tm_hour.%.12).+.(tm_buf.tm
217c0 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 _min./.60.0))./.12.0.*.2.*.M_PI.
217e0 2d 00 00 00 0d 20 20 20 20 20 20 4d 5f 50 49 5f 32 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e -..........M_PI_2;...B..draw_lin
21800 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 e(px,.a->w,.a->h,.cx,.cy,.cx.+.(
21820 69 6e 74 29 28 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 00 00 00 37 20 20 20 20 int)(cos(ha).*.r.*.0.5),...7....
21840 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 68 61 29 20 2a 20 72 20 2a ........cy.+.(int)(sin(ha).*.r.*
21860 20 30 2e 35 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 .0.5),.0xFF000000);...B..draw_li
21880 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 ne(px,.a->w,.a->h,.cx,.cy,.cx.+.
218a0 28 69 6e 74 29 28 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 00 00 00 37 20 20 20 (int)(cos(ma).*.r.*.0.7),...7...
218c0 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 6d 61 29 20 2a 20 72 20 .........cy.+.(int)(sin(ma).*.r.
218e0 2a 20 30 2e 37 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 42 20 20 64 72 61 77 5f 6c *.0.7),.0xFF000000);...B..draw_l
21900 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b ine(px,.a->w,.a->h,.cx,.cy,.cx.+
21920 20 28 69 6e 74 29 28 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 00 00 00 37 20 20 .(int)(cos(sa).*.r.*.0.9),...7..
21940 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 73 61 29 20 2a 20 72 ..........cy.+.(int)(sin(sa).*.r
21960 20 2a 20 30 2e 39 29 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 .*.0.9),.0xFFFF0000);...)..wl_su
21980 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 rface_attach(a->ws,.a->buf,.0,.0
219a0 29 3b 00 00 00 2d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 28 61 2d 3e 77 73 2c );...-..wl_surface_damage(a->ws,
219c0 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 .0,.0,.a->w,.a->h);......wl_surf
219e0 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 ace_commit(a->ws);....}.......Js
21a00 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 tatic.void.xt_cfg(void.*d,.struc
21a20 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 t.xdg_toplevel.*xt,.int32_t.w,.i
21a40 6e 74 33 32 5f 74 20 68 2c 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt32_t.h,...)...................
21a60 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 29 20 7b 00 00 00 14 20 20 73 74 72 75 struct.wl_array.*st).{......stru
21a80 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 0b 20 20 28 76 6f 69 64 29 78 74 3b 00 00 00 ct.app.*a.=.d;......(void)xt;...
21aa0 0b 20 20 28 76 6f 69 64 29 73 74 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 ...(void)st;...3..if.(w.>.0.&&.h
21ac0 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 .>.0.&&.(w.!=.a->w.||.h.!=.a->h)
21ae0 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 ).{........a->w.=.w;........a->h
21b00 20 3d 20 68 3b 00 00 00 1b 20 20 20 20 61 2d 3e 6e 65 65 64 73 5f 62 75 66 66 65 72 20 3d 20 74 .=.h;........a->needs_buffer.=.t
21b20 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 rue;......}....}.......Astatic.v
21b40 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 oid.xs_cfg(void.*d,.struct.xdg_s
21b60 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 14 20 20 73 urface.*xs,.uint32_t.s).{......s
21b80 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 23 20 20 78 64 67 5f 73 75 72 66 61 truct.app.*a.=.d;...#..xdg_surfa
21ba0 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 29 3b 00 00 00 17 20 20 61 2d ce_ack_configure(xs,.s);......a-
21bc0 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 10 20 20 64 72 61 77 5f 63 6c >configured.=.true;......draw_cl
21be0 6f 63 6b 28 61 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 42 73 74 61 74 69 63 20 76 6f 69 64 20 ock(a);....}.......Bstatic.void.
21c00 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 wm_ping(void.*d,.struct.xdg_wm_b
21c20 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 1a 20 20 78 64 67 5f ase.*wm,.uint32_t.s).{......xdg_
21c40 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 wm_base_pong(wm,.s);....}.......
21c60 4e 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f Nstatic.void.registry_handler(vo
21c80 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 id.*data,.struct.wl_registry.*re
21ca0 67 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 g,.uint32_t.id,...?.............
21cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 ................const.char.*ifac
21ce0 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 e,.uint32_t.ver).{......struct.a
21d00 70 70 20 2a 61 20 3d 20 64 61 74 61 3b 00 00 00 26 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 pp.*a.=.data;...&..if.(!strcmp(i
21d20 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 45 20 20 20 20 61 face,."wl_compositor"))...E....a
21d40 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 ->comp.=.wl_registry_bind(reg,.i
21d60 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b d,.&wl_compositor_interface,.4);
21d80 00 00 00 24 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 ...$..else.if.(!strcmp(iface,."w
21da0 6c 5f 73 68 6d 22 29 29 00 00 00 3d 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 l_shm"))...=....a->shm.=.wl_regi
21dc0 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 stry_bind(reg,.id,.&wl_shm_inter
21de0 66 61 63 65 2c 20 31 29 3b 00 00 00 2b 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 face,.1);...+..else.if.(!strcmp(
21e00 69 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 41 20 20 20 20 iface,."xdg_wm_base")).{...A....
21e20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 a->wm.=.wl_registry_bind(reg,.id
21e40 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 ,.&xdg_wm_base_interface,.1);...
21e60 41 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f A....static.const.struct.xdg_wm_
21e80 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 20 3d 20 7b 77 6d 5f 70 69 6e 67 base_listener.wm_list.=.{wm_ping
21ea0 7d 3b 00 00 00 31 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e };...1....xdg_wm_base_add_listen
21ec0 65 72 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 74 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 er(a->wm,.&wm_list,.a);......}..
21ee0 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 12 20 ..}........int.main(void).{.....
21f00 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 00 00 00 45 20 20 20 20 20 20 2e 77 20 3d 20 .struct.app.a.=.{...E.......w.=.
21f20 34 30 30 2c 20 2e 68 20 3d 20 34 30 30 2c 20 2e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 66 61 6c 400,..h.=.400,..configured.=.fal
21f40 73 65 2c 20 2e 6e 65 65 64 73 5f 62 75 66 66 65 72 20 3d 20 74 72 75 65 7d 3b 00 00 00 19 20 20 se,..needs_buffer.=.true};......
21f60 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 28 20 20 69 66 20 signal(SIGINT,.on_sig);...(..if.
21f80 28 21 28 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c (!(a.d.=.wl_display_connect(NULL
21fa0 29 29 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 )))........return.1;...'..a.reg.
21fc0 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 =.wl_display_get_registry(a.d);.
21fe0 00 00 49 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 ..I..static.const.struct.wl_regi
22000 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 20 3d 20 7b 72 65 67 69 73 74 stry_listener.reg_list.=.{regist
22020 72 79 5f 68 61 6e 64 6c 65 72 7d 3b 00 00 00 31 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 ry_handler};...1..wl_registry_ad
22040 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c 69 73 74 2c 20 26 61 29 d_listener(a.reg,.&reg_list,.&a)
22060 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 ;......wl_display_roundtrip(a.d)
22080 3b 00 00 00 21 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 ;...!..if.(!a.comp.||.!a.shm.||.
220a0 21 61 2e 77 6d 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 00 00 00 00 2e 20 !a.wm)........return.1;.........
220c0 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 .a.ws.=.wl_compositor_create_sur
220e0 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d face(a.comp);...1..a.xs.=.xdg_wm
22100 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 _base_get_xdg_surface(a.wm,.a.ws
22120 29 3b 00 00 00 3e 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f );...>..static.const.struct.xdg_
22140 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 73 74 20 3d 20 7b 78 73 5f 63 surface_listener.xs_list.=.{xs_c
22160 66 67 7d 3b 00 00 00 2f 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e fg};.../..xdg_surface_add_listen
22180 65 72 28 61 2e 78 73 2c 20 26 78 73 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 er(a.xs,.&xs_list,.&a);...(..a.x
221a0 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 t.=.xdg_surface_get_toplevel(a.x
221c0 73 29 3b 00 00 00 4f 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 s);...O..static.const.struct.xdg
221e0 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 20 3d 20 7b 78 74 _toplevel_listener.xt_list.=.{xt
22200 5f 63 66 67 2c 20 28 76 6f 69 64 20 2a 29 6f 6e 5f 73 69 67 7d 3b 00 00 00 30 20 20 78 64 67 5f _cfg,.(void.*)on_sig};...0..xdg_
22220 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f toplevel_add_listener(a.xt,.&xt_
22240 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 list,.&a);...*..xdg_toplevel_set
22260 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 00 00 00 00 2c _title(a.xt,."wlclock");.......,
22280 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 69 6e 5f 73 69 7a 65 28 61 2e 78 74 ..xdg_toplevel_set_min_size(a.xt
222a0 2c 20 31 30 30 2c 20 31 30 30 29 3b 00 00 00 28 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 ,.100,.100);...(..xdg_toplevel_s
222c0 65 74 5f 6d 61 78 5f 73 69 7a 65 28 61 2e 78 74 2c 20 30 2c 20 30 29 3b 00 00 00 00 00 00 00 1a et_max_size(a.xt,.0,.0);........
222e0 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 39 20 20 ..wl_surface_commit(a.ws);...9..
22300 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d int.tfd.=.timerfd_create(CLOCK_M
22320 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d ONOTONIC,.TFD_CLOEXEC);...F..tim
22340 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 erfd_settime(tfd,.0,.&(struct.it
22360 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 imerspec){{1,.0},.{1,.0}},.NULL)
22380 3b 00 00 00 00 00 00 00 35 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c 5f ;.......5..while.(running.&&.wl_
223a0 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 20 21 3d 20 2d 31 29 20 7b 00 00 display_dispatch(a.d).!=.-1).{..
223c0 00 4e 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 66 64 73 5b 32 5d 20 3d 20 7b 7b .N....struct.pollfd.pfds[2].=.{{
223e0 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c wl_display_get_fd(a.d),.POLLIN},
22400 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1e 20 20 20 20 69 66 20 28 70 6f 6c 6c .{tfd,.POLLIN}};........if.(poll
22420 28 70 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 (pfds,.2,.-1).<.0)..........brea
22440 6b 3b 00 00 00 23 20 20 20 20 69 66 20 28 70 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 k;...#....if.(pfds[1].revents.&.
22460 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 6b POLLIN).{..........uint64_t.tick
22480 73 3b 00 00 00 2f 20 20 20 20 20 20 69 66 20 28 72 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 s;.../......if.(read(tfd,.&ticks
224a0 2c 20 73 69 7a 65 6f 66 28 74 69 63 6b 73 29 29 20 3e 20 30 29 00 00 00 17 20 20 20 20 20 20 20 ,.sizeof(ticks)).>.0)...........
224c0 20 64 72 61 77 5f 63 6c 6f 63 6b 28 26 61 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d .draw_clock(&a);........}......}
224e0 00 00 00 0d 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c 61 ......close(tfd);......wl_displa
22500 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 y_disconnect(a.d);......return.0
22520 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 f2 00 00 00 00 00 00 00 01 00 ;....}5.........................
22540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 1b 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 ..............................5.
22560 5f d0 00 00 00 1b 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 1c 00 00 00 01 00 00 00 00 00 00 _...............................
22580 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
225a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
225c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
225e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
226a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
226c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
226e0 00 00 00 00 69 9d 9f 23 04 01 00 00 00 00 00 f5 18 00 00 00 c7 00 00 00 00 00 00 00 00 00 00 00 ....i..#........................
22700 01 00 00 00 01 7d f5 18 00 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 7d 00 00 .....}.......................}..
22720 00 00 00 00 00 00 00 00 00 01 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 ................wl_surface_attac
22740 68 28 61 2d 3e 77 73 2c 20 61 2d f5 18 00 00 00 7e 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 h(a->ws,.a-.....~...............
22760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 ................................
22780 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7d 00 00 .....5.......................}..
227a0 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 f5 18 00 ................................
227c0 00 00 00 7d 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 4a 00 00 00 01 00 00 00 00 10 00 00 00 ...}...............J............
227e0 00 00 00 00 00 00 00 00 00 00 00 45 0a 00 00 00 00 00 00 35 81 5f d0 00 00 00 1c 00 00 00 1e 00 ...........E.......5._..........
22800 00 00 00 00 00 00 00 00 00 00 1d 00 00 00 c8 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 ................................
22820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
228a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
228c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
228e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 9f 24 04 01 00 .........................i..$...
22980 00 00 0c 00 f5 18 00 00 00 01 00 00 00 f4 00 00 00 c8 00 00 00 c1 00 00 00 12 23 69 6e 63 6c 75 ..........................#inclu
229a0 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e de.<errno.h>....#include.<fcntl.
229c0 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c h>....#include.<math.h>....#incl
229e0 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c ude.<poll.h>....#include.<signal
22a00 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 12 23 .h>....#include.<stdbool.h>....#
22a20 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 include.<stdio.h>....#include.<s
22a40 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 tdlib.h>....#include.<string.h>.
22a60 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 ...#include.<sys/mman.h>....#inc
22a80 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 lude.<sys/timerfd.h>....#include
22aa0 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e .<time.h>....#include.<unistd.h>
22ac0 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 ....#include.<wayland-client.h>.
22ae0 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 ..&#include."xdg-shell-client-pr
22b00 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 otocol.h"........#ifndef.M_PI...
22b20 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 ##define.M_PI.3.1415926535897932
22b40 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 3846....#endif....#ifndef.M_PI_2
22b60 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 ...%#define.M_PI_2.1.57079632679
22b80 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 489661923....#endif.......)stati
22ba0 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 c.volatile.sig_atomic_t.running.
22bc0 3d 20 31 3b 00 00 00 33 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 =.1;...3static.void.on_sig(int.s
22be0 29 20 7b 20 28 76 6f 69 64 29 73 3b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 ).{.(void)s;.running.=.0;.}.....
22c00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 ...struct.app.{......struct.wl_d
22c20 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 isplay.*d;......struct.wl_regist
22c40 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 ry.*reg;......struct.wl_composit
22c60 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 or.*comp;......struct.wl_shm.*sh
22c80 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 m;......struct.xdg_wm_base.*wm;.
22ca0 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 .....struct.wl_surface.*ws;.....
22cc0 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 .struct.xdg_surface.*xs;......st
22ce0 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 ruct.xdg_toplevel.*xt;......void
22d00 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 .*pixels;......struct.wl_buffer.
22d20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 *buf;......int.w,.h;......bool.c
22d40 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 14 20 20 62 6f 6f 6c 20 6e 65 65 64 73 5f 72 65 64 72 61 onfigured;......bool.needs_redra
22d60 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 w;....};.......)static.int.creat
22d80 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 e_shm_file(size_t.size).{......c
22da0 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 73 har.template[].=."/tmp/wlclock-s
22dc0 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d hm-XXXXXX";......int.fd.=.mkstem
22de0 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 16 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 65 78 p(template);......if.(fd.<.0).ex
22e00 69 74 28 31 29 3b 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 it(1);......unlink(template);...
22e20 3d 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 28 6f 66 66 5f 74 29 73 69 7a 65 =..if.(ftruncate(fd,.(off_t)size
22e40 29 20 3c 20 30 29 20 7b 20 63 6c 6f 73 65 28 66 64 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 ).<.0).{.close(fd);.exit(1);.}..
22e60 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2c 73 74 61 74 69 ....return.fd;....}.......,stati
22e80 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 73 74 72 75 63 74 20 61 70 c.void.allocate_buffer(struct.ap
22ea0 70 20 2a 61 29 20 7b 00 00 00 30 20 20 69 66 20 28 21 61 2d 3e 73 68 6d 20 7c 7c 20 61 2d 3e 77 p.*a).{...0..if.(!a->shm.||.a->w
22ec0 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 20 72 65 74 75 72 6e 3b 00 00 00 0f 20 .<=.0.||.a->h.<=.0).return;.....
22ee0 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f .if.(a->buf).{........wl_buffer_
22f00 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 31 20 20 20 20 6d 75 6e 6d 61 70 28 61 destroy(a->buf);...1....munmap(a
22f20 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a ->pixels,.(size_t)(a->w.*.a->h.*
22f40 20 34 29 29 3b 00 00 00 12 20 20 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 15 20 .4));........a->buf.=.NULL;.....
22f60 20 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 2a 20 ...a->pixels.=.NULL;......}...*.
22f80 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 .size_t.size.=.(size_t)(a->w.*.a
22fa0 2d 3e 68 20 2a 20 34 29 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 ->h.*.4);...!..int.fd.=.create_s
22fc0 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 hm_file(size);...J..a->pixels.=.
22fe0 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f mmap(NULL,.size,.PROT_READ.|.PRO
23000 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 36 T_WRITE,.MAP_SHARED,.fd,.0);...6
23020 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b ..if.(a->pixels.==.MAP_FAILED).{
23040 20 63 6c 6f 73 65 28 66 64 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 4b 20 20 73 74 72 75 .close(fd);.exit(1);.}...K..stru
23060 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 ct.wl_shm_pool.*pool.=.wl_shm_cr
23080 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 28 69 6e 74 33 32 5f 74 29 73 eate_pool(a->shm,.fd,.(int32_t)s
230a0 69 7a 65 29 3b 00 00 00 5c 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f ize);...\..a->buf.=.wl_shm_pool_
230c0 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e create_buffer(pool,.0,.a->w,.a->
230e0 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 h,.a->w.*.4,.WL_SHM_FORMAT_ARGB8
23100 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 888);......wl_shm_pool_destroy(p
23120 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 01 7d 00 00 00 00 00 00 ool);......close(fd);....}......
23140 00 5f 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 ._static.void.draw_line(uint32_t
23160 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 .*px,.int.w,.int.h,.int.x0,.int.
23180 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 y0,.int.x1,.int.y1,.uint32_t.c).
231a0 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 {.../..int.dx.=.abs(x1.-.x0),.sx
231c0 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 .=.x0.<.x1.?.1.:.-1;...0..int.dy
231e0 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f .=.-abs(y1.-.y0),.sy.=.y0.<.y1.?
23200 20 31 20 3a 20 2d 31 3b 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c .1.:.-1;......int.err.=.dx.+.dy,
23220 20 65 32 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 44 20 20 20 20 69 66 20 .e2;......while.(1).{...D....if.
23240 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 (x0.>=.0.&&.x0.<.w.&&.y0.>=.0.&&
23260 20 79 30 20 3c 20 68 29 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 .y0.<.h).px[y0.*.w.+.x0].=.c;...
23280 24 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 20 62 $....if.(x0.==.x1.&&.y0.==.y1).b
232a0 72 65 61 6b 3b 00 00 00 11 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 2a 20 20 reak;........e2.=.2.*.err;...*..
232c0 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 20 65 72 72 20 2b 3d 20 64 79 3b 20 78 30 20 ..if.(e2.>=.dy).{.err.+=.dy;.x0.
232e0 2b 3d 20 73 78 3b 20 7d 00 00 00 2a 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 20 +=.sx;.}...*....if.(e2.<=.dx).{.
23300 65 72 72 20 2b 3d 20 64 78 3b 20 79 30 20 2b 3d 20 73 79 3b 20 7d 00 00 00 03 20 20 7d 00 00 00 err.+=.dx;.y0.+=.sy;.}......}...
23320 01 7d 00 00 00 00 00 00 00 58 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c .}.......Xstatic.void.draw_circl
23340 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e e(uint32_t.*px,.int.w,.int.h,.in
23360 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 t.cx,.int.cy,.int.r,.uint32_t.c)
23380 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 .{..."..int.x.=.0,.y.=.r,.d.=.3.
233a0 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 -.2.*.r;......while.(y.>=.x).{..
233c0 00 4c 20 20 20 20 69 6e 74 20 70 74 73 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 2b 78 2c 20 63 79 .L....int.pts[8][2].=.{{cx+x,.cy
233e0 2b 79 7d 2c 20 7b 63 78 2d 78 2c 20 63 79 2b 79 7d 2c 20 7b 63 78 2b 78 2c 20 63 79 2d 79 7d 2c +y},.{cx-x,.cy+y},.{cx+x,.cy-y},
23400 20 7b 63 78 2d 78 2c 20 63 79 2d 79 7d 2c 00 00 00 4d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .{cx-x,.cy-y},...M..............
23420 20 20 20 20 20 20 20 7b 63 78 2b 79 2c 20 63 79 2b 78 7d 2c 20 7b 63 78 2d 79 2c 20 63 79 2b 78 .......{cx+y,.cy+x},.{cx-y,.cy+x
23440 7d 2c 20 7b 63 78 2b 79 2c 20 63 79 2d 78 7d 2c 20 7b 63 78 2d 79 2c 20 63 79 2d 78 7d 7d 3b 00 },.{cx+y,.cy-x},.{cx-y,.cy-x}};.
23460 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b .......for.(int.i.=.0;.i.<.8;.i+
23480 2b 29 00 00 00 4d 20 20 20 20 20 20 69 66 20 28 70 74 73 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 +)...M......if.(pts[i][0].>=.0.&
234a0 26 20 70 74 73 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3e 3d 20 &.pts[i][0].<.w.&&.pts[i][1].>=.
234c0 30 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 2a 20 20 20 20 20 20 20 20 70 0.&&.pts[i][1].<.h)...*........p
234e0 78 5b 70 74 73 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 74 73 5b 69 5d 5b 30 5d 5d 20 3d 20 63 x[pts[i][1].*.w.+.pts[i][0]].=.c
23500 3b 00 00 00 43 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 20 64 20 2b 3d 20 34 20 2a 20 28 ;...C....if.(d.>.0).{.d.+=.4.*.(
23520 78 20 2d 20 79 29 20 2b 20 31 30 3b 20 79 2d 2d 3b 20 7d 20 65 6c 73 65 20 64 20 2b 3d 20 34 20 x.-.y).+.10;.y--;.}.else.d.+=.4.
23540 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d *.x.+.6;........x++;......}....}
23560 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 .......#static.void.render(struc
23580 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 37 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 t.app.*a).{...7..if.(!a->configu
235a0 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 20 72 red.||.a->w.<=.0.||.a->h.<=.0).r
235c0 65 74 75 72 6e 3b 00 00 00 22 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 20 61 6c 6c 6f 63 61 74 eturn;..."..if.(!a->buf).allocat
235e0 65 5f 62 75 66 66 65 72 28 61 29 3b 00 00 00 19 20 20 69 66 20 28 21 61 2d 3e 70 69 78 65 6c 73 e_buffer(a);......if.(!a->pixels
23600 29 20 72 65 74 75 72 6e 3b 00 00 00 00 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 ).return;..........time_t.tt.=.t
23620 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 13 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 5f 62 75 66 ime(NULL);......struct.tm.tm_buf
23640 3b 00 00 00 1c 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 5f 62 75 66 29 ;......localtime_r(&tt,.&tm_buf)
23660 3b 00 00 00 00 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 ;..........uint32_t.*px.=.a->pix
23680 65 6c 73 3b 00 00 00 2e 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 66 66 2c 20 28 73 69 7a 65 els;......memset(px,.0xff,.(size
236a0 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 23 20 20 69 6e 74 20 _t)(a->w.*.a->h.*.4));...#..int.
236c0 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 cx.=.a->w./.2,.cy.=.a->h./.2;...
236e0 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a /..int.r.=.(a->w.<.a->h.?.a->w.:
23700 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 13 20 20 69 66 20 28 72 20 3c 20 35 29 .a->h)./.2.-.10;......if.(r.<.5)
23720 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c .r.=.5;.......5..draw_circle(px,
23740 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 .a->w,.a->h,.cx,.cy,.r,.0xFF0000
23760 30 30 29 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 00);......for.(int.i.=.0;.i.<.12
23780 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f ;.i++).{........double.ang.=.i./
237a0 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 5f 20 20 .12.0.*.2.*.M_PI.-.M_PI_2;..._..
237c0 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b ..draw_line(px,.a->w,.a->h,.cx.+
237e0 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 20 63 79 20 .(int)(cos(ang).*.(r.-.10)),.cy.
23800 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 00 00 00 +.(int)(sin(ang).*.(r.-.10)),...
23820 5a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e Z..............cx.+.(int)(cos(an
23840 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e g).*.(r.-.2)),.cy.+.(int)(sin(an
23860 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 g).*.(r.-.2)),.0xFF000000);.....
23880 20 7d 00 00 00 37 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 .}...7..double.sa.=.tm_buf.tm_se
238a0 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 c./.60.0.*.2.*.M_PI.-.M_PI_2;...
238c0 50 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2b 20 P..double.ma.=.(tm_buf.tm_min.+.
238e0 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 tm_buf.tm_sec./.60.0)./.60.0.*.2
23900 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 5a 20 20 64 6f 75 62 6c 65 20 68 61 .*.M_PI.-.M_PI_2;...Z..double.ha
23920 20 3d 20 28 28 74 6d 5f 62 75 66 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 5f .=.((tm_buf.tm_hour.%.12).+.(tm_
23940 62 75 66 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a buf.tm_min./.60.0))./.12.0.*.2.*
23960 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 6e 20 20 64 72 61 77 5f 6c 69 .M_PI.-.M_PI_2;.......n..draw_li
23980 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 ne(px,.a->w,.a->h,.cx,.cy,.cx.+.
239a0 28 69 6e 74 29 28 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 20 63 79 20 2b 20 28 (int)(cos(ha).*.r.*.0.5),.cy.+.(
239c0 69 6e 74 29 28 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 20 30 78 46 46 30 30 30 int)(sin(ha).*.r.*.0.5),.0xFF000
239e0 30 30 30 29 3b 00 00 00 6e 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 000);...n..draw_line(px,.a->w,.a
23a00 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 6d 61 29 20 ->h,.cx,.cy,.cx.+.(int)(cos(ma).
23a20 2a 20 72 20 2a 20 30 2e 37 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 6d 61 29 20 2a *.r.*.0.7),.cy.+.(int)(sin(ma).*
23a40 20 72 20 2a 20 30 2e 37 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 6e 20 20 64 72 61 .r.*.0.7),.0xFF000000);...n..dra
23a60 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 w_line(px,.a->w,.a->h,.cx,.cy,.c
23a80 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 63 79 x.+.(int)(cos(sa).*.r.*.0.9),.cy
23aa0 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 30 78 46 .+.(int)(sin(sa).*.r.*.0.9),.0xF
23ac0 46 46 46 30 30 30 30 29 3b 00 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 FFF0000);.......)..wl_surface_at
23ae0 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 tach(a->ws,.a->buf,.0,.0);...4..
23b00 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 wl_surface_damage_buffer(a->ws,.
23b20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 0,.0,.a->w,.a->h);......wl_surfa
23b40 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 1a 20 20 61 2d 3e 6e 65 65 64 73 5f ce_commit(a->ws);......a->needs_
23b60 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 61 73 74 61 74 redraw.=.false;....}.......astat
23b80 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 ic.void.xt_cfg(void.*d,.struct.x
23ba0 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 dg_toplevel.*xt,.int32_t.w,.int3
23bc0 32 5f 74 20 68 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 29 20 7b 00 00 00 2_t.h,.struct.wl_array.*st).{...
23be0 28 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 20 28 76 6f 69 64 29 78 74 3b 20 (..struct.app.*a.=.d;.(void)xt;.
23c00 28 76 6f 69 64 29 73 74 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 (void)st;...3..if.(w.>.0.&&.h.>.
23c20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 0.&&.(w.!=.a->w.||.h.!=.a->h)).{
23c40 00 00 00 17 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 11 20 ........a->w.=.w;.a->h.=.h;.....
23c60 20 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 22 20 20 20 20 20 20 20 20 77 6c 5f 62 ...if.(a->buf).{..."........wl_b
23c80 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 35 20 20 20 20 20 20 uffer_destroy(a->buf);...5......
23ca0 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e ..munmap(a->pixels,.(size_t)(a->
23cc0 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 28 20 20 20 20 20 20 20 20 61 2d 3e 62 75 w.*.a->h.*.4));...(........a->bu
23ce0 66 20 3d 20 4e 55 4c 4c 3b 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 05 20 f.=.NULL;.a->pixels.=.NULL;.....
23d00 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 ...}......}....}.......Astatic.v
23d20 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 oid.xs_cfg(void.*d,.struct.xdg_s
23d40 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 14 20 20 73 urface.*xs,.uint32_t.s).{......s
23d60 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 23 20 20 78 64 67 5f 73 75 72 66 61 truct.app.*a.=.d;...#..xdg_surfa
23d80 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 29 3b 00 00 00 17 20 20 61 2d ce_ack_configure(xs,.s);......a-
23da0 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 19 20 20 61 2d 3e 6e 65 65 64 >configured.=.true;......a->need
23dc0 73 5f 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 71 73 74 61 s_redraw.=.true;....}.......qsta
23de0 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a tic.void.registry_handler(void.*
23e00 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 2c 20 75 data,.struct.wl_registry.*reg,.u
23e20 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 20 75 int32_t.id,.const.char.*iface,.u
23e40 69 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a int32_t.ver).{......struct.app.*
23e60 61 20 3d 20 64 61 74 61 3b 00 00 00 68 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 a.=.data;...h..if.(!strcmp(iface
23e80 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c ,."wl_compositor")).a->comp.=.wl
23ea0 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 _registry_bind(reg,.id,.&wl_comp
23ec0 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 5e 20 20 65 6c 73 65 20 ositor_interface,.4);...^..else.
23ee0 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 29 20 61 2d if.(!strcmp(iface,."wl_shm")).a-
23f00 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c >shm.=.wl_registry_bind(reg,.id,
23f20 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 2b 20 20 65 6c 73 .&wl_shm_interface,.1);...+..els
23f40 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 e.if.(!strcmp(iface,."xdg_wm_bas
23f60 65 22 29 29 20 7b 00 00 00 41 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 e")).{...A....a->wm.=.wl_registr
23f80 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 y_bind(reg,.id,.&xdg_wm_base_int
23fa0 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 51 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 erface,.1);...Q....static.const.
23fc0 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c struct.xdg_wm_base_listener.wm_l
23fe0 69 73 74 20 3d 20 7b 28 76 6f 69 64 2a 29 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 7d 3b ist.=.{(void*)xdg_wm_base_pong};
24000 00 00 00 31 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 ...1....xdg_wm_base_add_listener
24020 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 74 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 (a->wm,.&wm_list,.a);......}....
24040 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 26 20 20 73 }........int.main(void).{...&..s
24060 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 2e 77 20 3d 20 34 30 30 2c 20 2e 68 20 3d 20 34 30 truct.app.a.=.{.w.=.400,..h.=.40
24080 30 7d 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 0};......signal(SIGINT,.on_sig);
240a0 00 00 00 32 20 20 69 66 20 28 21 28 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e ...2..if.(!(a.d.=.wl_display_con
240c0 6e 65 63 74 28 4e 55 4c 4c 29 29 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 nect(NULL))).return.1;...'..a.re
240e0 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 g.=.wl_display_get_registry(a.d)
24100 3b 00 00 00 49 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 ;...I..static.const.struct.wl_re
24120 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 20 3d 20 7b 72 65 67 69 gistry_listener.reg_list.=.{regi
24140 73 74 72 79 5f 68 61 6e 64 6c 65 72 7d 3b 00 00 00 31 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f stry_handler};...1..wl_registry_
24160 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c 69 73 74 2c 20 26 add_listener(a.reg,.&reg_list,.&
24180 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e a);......wl_display_roundtrip(a.
241a0 64 29 3b 00 00 00 00 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f d);..........a.ws.=.wl_composito
241c0 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 r_create_surface(a.comp);...1..a
241e0 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 .xs.=.xdg_wm_base_get_xdg_surfac
24200 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 3e 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 e(a.wm,.a.ws);...>..static.const
24220 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 5f .struct.xdg_surface_listener.xs_
24240 6c 69 73 74 20 3d 20 7b 78 73 5f 63 66 67 7d 3b 00 00 00 2f 20 20 78 64 67 5f 73 75 72 66 61 63 list.=.{xs_cfg};.../..xdg_surfac
24260 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 5f 6c 69 73 74 2c 20 26 e_add_listener(a.xs,.&xs_list,.&
24280 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f a);...(..a.xt.=.xdg_surface_get_
242a0 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 4e 20 20 73 74 61 74 69 63 20 63 6f 6e 73 toplevel(a.xs);...N..static.cons
242c0 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 t.struct.xdg_toplevel_listener.x
242e0 74 5f 6c 69 73 74 20 3d 20 7b 78 74 5f 63 66 67 2c 20 28 76 6f 69 64 2a 29 6f 6e 5f 73 69 67 7d t_list.=.{xt_cfg,.(void*)on_sig}
24300 3b 00 00 00 30 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 ;...0..xdg_toplevel_add_listener
24320 28 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 (a.xt,.&xt_list,.&a);...*..xdg_t
24340 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b oplevel_set_title(a.xt,."wlclock
24360 22 29 3b 00 00 00 02 20 20 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f ");.........,..xdg_toplevel_set_
24380 6d 69 6e 5f 73 69 7a 65 28 61 2e 78 74 2c 20 31 30 30 2c 20 31 30 30 29 3b 00 00 00 1a 20 20 77 min_size(a.xt,.100,.100);......w
243a0 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 00 00 00 00 39 20 l_surface_commit(a.ws);.......9.
243c0 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f .int.tfd.=.timerfd_create(CLOCK_
243e0 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 MONOTONIC,.TFD_CLOEXEC);...F..ti
24400 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 merfd_settime(tfd,.0,.&(struct.i
24420 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c timerspec){{1,.0},.{1,.0}},.NULL
24440 29 3b 00 00 00 00 00 00 00 35 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c );.......5..while.(running.&&.wl
24460 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 20 21 3d 20 2d 31 29 20 7b 00 _display_dispatch(a.d).!=.-1).{.
24480 00 00 4e 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 66 64 73 5b 32 5d 20 3d 20 7b ..N....struct.pollfd.pfds[2].=.{
244a0 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d {wl_display_get_fd(a.d),.POLLIN}
244c0 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1f 20 20 20 20 69 66 20 28 70 6f 6c ,.{tfd,.POLLIN}};........if.(pol
244e0 6c 28 70 66 64 73 2c 20 32 2c 20 30 29 20 3e 20 30 29 20 7b 00 00 00 25 20 20 20 20 20 20 69 66 l(pfds,.2,.0).>.0).{...%......if
24500 20 28 70 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 .(pfds[1].revents.&.POLLIN).{...
24520 17 20 20 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b 00 00 00 49 20 20 20 20 .........uint64_t.ticks;...I....
24540 20 20 20 20 69 66 20 28 72 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 69 7a 65 6f 66 ....if.(read(tfd,.&ticks,.sizeof
24560 28 74 69 63 6b 73 29 29 20 3e 20 30 29 20 61 2d 3e 6e 65 65 64 73 5f 72 65 64 72 61 77 20 3d 20 (ticks)).>.0).a->needs_redraw.=.
24580 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 23 20 20 20 true;..........}........}...#...
245a0 20 69 66 20 28 61 2e 6e 65 65 64 73 5f 72 65 64 72 61 77 29 20 72 65 6e 64 65 72 28 26 61 29 3b .if.(a.needs_redraw).render(&a);
245c0 35 81 f5 18 00 00 00 00 01 00 00 00 09 00 00 00 c0 00 00 00 17 00 00 00 f1 00 00 00 05 00 00 00 5...............................
245e0 29 00 00 00 00 00 00 00 d1 19 00 00 00 00 00 00 66 1b 00 00 00 00 00 00 35 81 5f d0 00 00 00 1d )...............f.......5._.....
24600 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff ................................
24620 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
246a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
246c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
246e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d ..............................i.
24780 9f 5c 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 f9 00 00 00 1f 23 .\.............................#
247a0 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 define._POSIX_C_SOURCE.200809L..
247c0 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f .&#include."xdg-shell-client-pro
247e0 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 tocol.h"....#include.<errno.h>..
24800 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 ..#include.<fcntl.h>....#include
24820 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 .<math.h>....#include.<poll.h>..
24840 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 ..#include.<signal.h>....#includ
24860 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f e.<stdbool.h>....#include.<stdio
24880 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 .h>....#include.<stdlib.h>....#i
248a0 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 nclude.<string.h>....#include.<s
248c0 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 ys/mman.h>....#include.<sys/time
248e0 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 rfd.h>....#include.<time.h>....#
24900 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c include.<unistd.h>....#include.<
24920 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 wayland-client.h>........#ifndef
24940 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 .M_PI...##define.M_PI.3.14159265
24960 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 358979323846....#endif....#ifnde
24980 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 f.M_PI_2...%#define.M_PI_2.1.570
249a0 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 79632679489661923....#endif.....
249c0 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 ..)static.volatile.sig_atomic_t.
249e0 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 running.=.1;....static.void.on_s
24a00 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 ig(int.s).{......(void)s;......r
24a20 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 unning.=.0;....}........struct.a
24a40 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 pp.{......struct.wl_display.*d;.
24a60 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 .....struct.wl_registry.*reg;...
24a80 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 ...struct.wl_compositor.*comp;..
24aa0 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 ....struct.wl_shm.*shm;......str
24ac0 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 uct.xdg_wm_base.*wm;......struct
24ae0 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 .wl_surface.*ws;......struct.xdg
24b00 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f _surface.*xs;......struct.xdg_to
24b20 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 plevel.*xt;......void.*pixels;..
24b40 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 ....struct.wl_buffer.*buf;......
24b60 69 6e 74 20 77 2c 20 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 int.w,.h;......bool.configured;.
24b80 00 00 14 20 20 62 6f 6f 6c 20 6e 65 65 64 73 5f 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 .....bool.needs_redraw;....};...
24ba0 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 ....)static.int.create_shm_file(
24bc0 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 size_t.size).{......char.templat
24be0 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b e[].=."/tmp/wlclock-shm-XXXXXX";
24c00 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 ......int.fd.=.mkstemp(template)
24c20 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 ;......if.(fd.<.0)........exit(1
24c40 29 3b 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 27 20 20 69 );......unlink(template);...'..i
24c60 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 28 6f 66 66 5f 74 29 73 69 7a 65 29 20 3c 20 f.(ftruncate(fd,.(off_t)size).<.
24c80 30 29 20 7b 00 00 00 0e 20 20 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0c 20 20 20 20 65 78 0).{........close(fd);........ex
24ca0 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 it(1);......}......return.fd;...
24cc0 01 7d 00 00 00 00 00 00 00 2c 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 .}.......,static.void.allocate_b
24ce0 75 66 66 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 28 20 20 69 66 20 28 uffer(struct.app.*a).{...(..if.(
24d00 21 61 2d 3e 73 68 6d 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 !a->shm.||.a->w.<=.0.||.a->h.<=.
24d20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0f 20 20 69 66 20 28 61 2d 3e 62 75 0)........return;......if.(a->bu
24d40 66 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d f).{........wl_buffer_destroy(a-
24d60 3e 62 75 66 29 3b 00 00 00 31 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 >buf);...1....munmap(a->pixels,.
24d80 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 12 20 (size_t)(a->w.*.a->h.*.4));.....
24da0 20 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 15 20 20 20 20 61 2d 3e 70 69 78 65 ...a->buf.=.NULL;........a->pixe
24dc0 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 ls.=.NULL;......}...*..size_t.si
24de0 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 ze.=.(size_t)(a->w.*.a->h.*.4);.
24e00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 ..!..int.fd.=.create_shm_file(si
24e20 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c ze);...J..a->pixels.=.mmap(NULL,
24e40 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d .size,.PROT_READ.|.PROT_WRITE,.M
24e60 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 20 20 20 69 66 20 28 61 2d 3e 70 AP_SHARED,.fd,.0);......if.(a->p
24e80 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 00 0e 20 20 20 20 63 6c ixels.==.MAP_FAILED).{........cl
24ea0 6f 73 65 28 66 64 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 ose(fd);........exit(1);......}.
24ec0 00 00 4b 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 ..K..struct.wl_shm_pool.*pool.=.
24ee0 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 28 wl_shm_create_pool(a->shm,.fd,.(
24f00 69 6e 74 33 32 5f 74 29 73 69 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f int32_t)size);...C..a->buf.=.wl_
24f20 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 shm_pool_create_buffer(pool,.0,.
24f40 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d 20 20 20 20 20 20 20 a->w,.a->h,.a->w.*.4,...=.......
24f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 4c ..............................WL
24f80 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 _SHM_FORMAT_ARGB8888);......wl_s
24fa0 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 hm_pool_destroy(pool);......clos
24fc0 65 28 66 64 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 64 e(fd);....}.......Istatic.void.d
24fe0 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e raw_line(uint32_t.*px,.int.w,.in
25000 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 00 00 00 2b t.h,.int.x0,.int.y0,.int.x1,...+
25020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 79 31 2c 20 75 69 ......................int.y1,.ui
25040 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 nt32_t.c).{.../..int.dx.=.abs(x1
25060 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 .-.x0),.sx.=.x0.<.x1.?.1.:.-1;..
25080 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d .0..int.dy.=.-abs(y1.-.y0),.sy.=
250a0 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 .y0.<.y1.?.1.:.-1;......int.err.
250c0 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 =.dx.+.dy,.e2;......while.(1).{.
250e0 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 ../....if.(x0.>=.0.&&.x0.<.w.&&.
25100 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 1a 20 20 20 20 20 20 70 78 5b 79 y0.>=.0.&&.y0.<.h)..........px[y
25120 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 0.*.w.+.x0].=.c;........if.(x0.=
25140 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b =.x1.&&.y0.==.y1)..........break
25160 3b 00 00 00 11 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 ;........e2.=.2.*.err;........if
25180 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 .(e2.>=.dy).{..........err.+=.dy
251a0 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 ;..........x0.+=.sx;........}...
251c0 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 .....if.(e2.<=.dx).{..........er
251e0 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 r.+=.dx;..........y0.+=.sy;.....
25200 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 ...}......}....}.......Jstatic.v
25220 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e oid.draw_circle(uint32_t.*px,.in
25240 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 t.w,.int.h,.int.cx,.int.cy,.int.
25260 72 2c 00 00 00 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 r,...%........................ui
25280 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 nt32_t.c).{..."..int.x.=.0,.y.=.
252a0 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 r,.d.=.3.-.2.*.r;......while.(y.
252c0 3e 3d 20 78 29 20 7b 00 00 00 4a 20 20 20 20 69 6e 74 20 70 74 73 5b 38 5d 5b 32 5d 20 3d 20 7b >=.x).{...J....int.pts[8][2].=.{
252e0 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 {cx.+.x,.cy.+.y},.{cx.-.x,.cy.+.
25300 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 4a 20 20 20 20 20 20 20 y},.{cx.+.x,.cy.-.y},...J.......
25320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 ..............{cx.-.x,.cy.-.y},.
25340 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 {cx.+.y,.cy.+.x},.{cx.-.y,.cy.+.
25360 78 7d 2c 00 00 00 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 x},...9.....................{cx.
25380 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b +.y,.cy.-.x},.{cx.-.y,.cy.-.x}};
253a0 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 ........for.(int.i.=.0;.i.<.8;.i
253c0 2b 2b 29 00 00 00 4d 20 20 20 20 20 20 69 66 20 28 70 74 73 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 ++)...M......if.(pts[i][0].>=.0.
253e0 26 26 20 70 74 73 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3e 3d &&.pts[i][0].<.w.&&.pts[i][1].>=
25400 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 2a 20 20 20 20 20 20 20 20 .0.&&.pts[i][1].<.h)...*........
25420 70 78 5b 70 74 73 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 74 73 5b 69 5d 5b 30 5d 5d 20 3d 20 px[pts[i][1].*.w.+.pts[i][0]].=.
25440 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 c;........if.(d.>.0).{..........
25460 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 d.+=.4.*.(x.-.y).+.10;..........
25480 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d y--;........}.else..........d.+=
254a0 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 .4.*.x.+.6;........x++;......}..
254c0 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 ..}.......#static.void.render(st
254e0 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 ruct.app.*a).{.../..if.(!a->conf
25500 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 igured.||.a->w.<=.0.||.a->h.<=.0
25520 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 )........return;......if.(!a->bu
25540 66 29 00 00 00 17 20 20 20 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 61 29 3b 00 00 00 f)........allocate_buffer(a);...
25560 11 20 20 69 66 20 28 21 61 2d 3e 70 69 78 65 6c 73 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e ...if.(!a->pixels)........return
25580 3b 00 00 00 00 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c ;..........time_t.tt.=.time(NULL
255a0 29 3b 00 00 00 13 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 5f 62 75 66 3b 00 00 00 1c 20 20 6c );......struct.tm.tm_buf;......l
255c0 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 5f 62 75 66 29 3b 00 00 00 00 00 00 00 ocaltime_r(&tt,.&tm_buf);.......
255e0 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 2e ...uint32_t.*px.=.a->pixels;....
25600 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 66 66 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 ..memset(px,.0xff,.(size_t)(a->w
25620 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e .*.a->h.*.4));...#..int.cx.=.a->
25640 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 w./.2,.cy.=.a->h./.2;.../..int.r
25660 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f .=.(a->w.<.a->h.?.a->w.:.a->h)./
25680 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 .2.-.10;......if.(r.<.5)........
256a0 72 20 3d 20 35 3b 00 00 00 00 00 00 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 r.=.5;.......5..draw_circle(px,.
256c0 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 30 a->w,.a->h,.cx,.cy,.r,.0xFF00000
256e0 30 29 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 0);......for.(int.i.=.0;.i.<.12;
25700 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 .i++).{........double.ang.=.i./.
25720 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 3e 20 20 20 12.0.*.2.*.M_PI.-.M_PI_2;...>...
25740 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 .draw_line(px,.a->w,.a->h,.cx.+.
25760 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 00 00 00 4e 20 (int)(cos(ang).*.(r.-.10)),...N.
25780 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 .............cy.+.(int)(sin(ang)
257a0 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 .*.(r.-.10)),.cx.+.(int)(cos(ang
257c0 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 ).*.(r.-.2)),...:..............c
257e0 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 20 30 y.+.(int)(sin(ang).*.(r.-.2)),.0
25800 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 37 20 20 64 6f 75 62 6c 65 20 73 xFF000000);......}...7..double.s
25820 61 20 3d 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d a.=.tm_buf.tm_sec./.60.0.*.2.*.M
25840 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 50 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 _PI.-.M_PI_2;...P..double.ma.=.(
25860 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 tm_buf.tm_min.+.tm_buf.tm_sec./.
25880 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 60.0)./.60.0.*.2.*.M_PI.-.M_PI_2
258a0 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 4a 20 20 20 20 20 20 28 28 74 6d ;......double.ha.=...J......((tm
258c0 5f 62 75 66 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 5f 62 75 66 2e 74 6d 5f _buf.tm_hour.%.12).+.(tm_buf.tm_
258e0 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d min./.60.0))./.12.0.*.2.*.M_PI.-
25900 00 00 00 0d 20 20 20 20 20 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 42 20 20 64 72 61 77 5f ..........M_PI_2;.......B..draw_
25920 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 line(px,.a->w,.a->h,.cx,.cy,.cx.
25940 2b 20 28 69 6e 74 29 28 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 00 00 00 37 20 +.(int)(cos(ha).*.r.*.0.5),...7.
25960 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 68 61 29 20 2a 20 ...........cy.+.(int)(sin(ha).*.
25980 72 20 2a 20 30 2e 35 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 42 20 20 64 72 61 77 r.*.0.5),.0xFF000000);...B..draw
259a0 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 _line(px,.a->w,.a->h,.cx,.cy,.cx
259c0 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 00 00 00 37 .+.(int)(cos(ma).*.r.*.0.7),...7
259e0 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 6d 61 29 20 2a ............cy.+.(int)(sin(ma).*
25a00 20 72 20 2a 20 30 2e 37 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 42 20 20 64 72 61 .r.*.0.7),.0xFF000000);...B..dra
25a20 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 w_line(px,.a->w,.a->h,.cx,.cy,.c
25a40 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 00 00 00 x.+.(int)(cos(sa).*.r.*.0.9),...
25a60 37 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 73 61 29 20 7............cy.+.(int)(sin(sa).
25a80 2a 20 72 20 2a 20 30 2e 39 29 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 00 00 00 00 29 *.r.*.0.9),.0xFFFF0000);.......)
25aa0 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 ..wl_surface_attach(a->ws,.a->bu
25ac0 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 f,.0,.0);...4..wl_surface_damage
25ae0 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 _buffer(a->ws,.0,.0,.a->w,.a->h)
25b00 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b ;......wl_surface_commit(a->ws);
25b20 00 00 00 1a 20 20 61 2d 3e 6e 65 65 64 73 5f 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 ......a->needs_redraw.=.false;..
25b40 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f ..}.......Jstatic.void.xt_cfg(vo
25b60 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 id.*d,.struct.xdg_toplevel.*xt,.
25b80 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 29 20 20 20 20 20 20 20 int32_t.w,.int32_t.h,...).......
25ba0 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 29 ............struct.wl_array.*st)
25bc0 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 0b 20 20 .{......struct.app.*a.=.d;......
25be0 28 76 6f 69 64 29 78 74 3b 00 00 00 0b 20 20 28 76 6f 69 64 29 73 74 3b 00 00 00 33 20 20 69 66 (void)xt;......(void)st;...3..if
25c00 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c .(w.>.0.&&.h.>.0.&&.(w.!=.a->w.|
25c20 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b |.h.!=.a->h)).{........a->w.=.w;
25c40 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 11 20 20 20 20 69 66 20 28 61 2d 3e ........a->h.=.h;........if.(a->
25c60 62 75 66 29 20 7b 00 00 00 20 20 20 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f buf).{..........wl_buffer_destro
25c80 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 33 20 20 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 y(a->buf);...3......munmap(a->pi
25ca0 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 xels,.(size_t)(a->w.*.a->h.*.4))
25cc0 3b 00 00 00 14 20 20 20 20 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 17 20 20 20 ;..........a->buf.=.NULL;.......
25ce0 20 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 05 20 20 20 20 7d 00 00 00 ...a->pixels.=.NULL;........}...
25d00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f ...}....}.......Astatic.void.xs_
25d20 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 cfg(void.*d,.struct.xdg_surface.
25d40 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 *xs,.uint32_t.s).{......struct.a
25d60 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 23 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f pp.*a.=.d;...#..xdg_surface_ack_
25d80 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 configure(xs,.s);......a->config
25da0 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 19 20 20 61 2d 3e 6e 65 65 64 73 5f 72 65 64 72 61 ured.=.true;......a->needs_redra
25dc0 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4e 73 74 61 74 69 63 20 76 6f 69 w.=.true;....}.......Nstatic.voi
25de0 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 d.registry_handler(void.*data,.s
25e00 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 2c 20 75 69 6e 74 33 32 5f 74 truct.wl_registry.*reg,.uint32_t
25e20 20 69 64 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .id,...?........................
25e40 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 .....const.char.*iface,.uint32_t
25e60 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 61 74 .ver).{......struct.app.*a.=.dat
25e80 61 3b 00 00 00 26 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 63 a;...&..if.(!strcmp(iface,."wl_c
25ea0 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 45 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c ompositor"))...E....a->comp.=.wl
25ec0 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 _registry_bind(reg,.id,.&wl_comp
25ee0 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 24 20 20 65 6c 73 65 20 ositor_interface,.4);...$..else.
25f00 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 if.(!strcmp(iface,."wl_shm"))...
25f20 3d 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 =....a->shm.=.wl_registry_bind(r
25f40 65 67 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 eg,.id,.&wl_shm_interface,.1);..
25f60 00 2b 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 78 64 67 .+..else.if.(!strcmp(iface,."xdg
25f80 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 41 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f _wm_base")).{...A....a->wm.=.wl_
25fa0 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 registry_bind(reg,.id,.&xdg_wm_b
25fc0 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 38 20 20 20 20 73 74 61 74 69 63 ase_interface,.1);...8....static
25fe0 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e .const.struct.xdg_wm_base_listen
26000 65 72 20 77 6d 5f 6c 69 73 74 20 3d 20 7b 00 00 00 22 20 20 20 20 20 20 20 20 28 76 6f 69 64 20 er.wm_list.=.{..."........(void.
26020 2a 29 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 7d 3b 00 00 00 31 20 20 20 20 78 64 67 5f *)xdg_wm_base_pong};...1....xdg_
26040 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f wm_base_add_listener(a->wm,.&wm_
26060 6c 69 73 74 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 list,.a);......}....}........int
26080 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 26 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 .main(void).{...&..struct.app.a.
260a0 3d 20 7b 2e 77 20 3d 20 34 30 30 2c 20 2e 68 20 3d 20 34 30 30 7d 3b 00 00 00 19 20 20 73 69 67 =.{.w.=.400,..h.=.400};......sig
260c0 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 28 20 20 69 66 20 28 21 28 nal(SIGINT,.on_sig);...(..if.(!(
260e0 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 29 29 a.d.=.wl_display_connect(NULL)))
26100 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 ........return.1;...'..a.reg.=.w
26120 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 49 l_display_get_registry(a.d);...I
26140 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 ..static.const.struct.wl_registr
26160 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 20 3d 20 7b 72 65 67 69 73 74 72 79 5f y_listener.reg_list.=.{registry_
26180 68 61 6e 64 6c 65 72 7d 3b 00 00 00 31 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c handler};...1..wl_registry_add_l
261a0 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 istener(a.reg,.&reg_list,.&a);..
261c0 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 ....wl_display_roundtrip(a.d);..
261e0 00 00 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 ........a.ws.=.wl_compositor_cre
26200 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d ate_surface(a.comp);...1..a.xs.=
26220 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 .xdg_wm_base_get_xdg_surface(a.w
26240 6d 2c 20 61 2e 77 73 29 3b 00 00 00 3e 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 m,.a.ws);...>..static.const.stru
26260 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 73 74 20 ct.xdg_surface_listener.xs_list.
26280 3d 20 7b 78 73 5f 63 66 67 7d 3b 00 00 00 2f 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 =.{xs_cfg};.../..xdg_surface_add
262a0 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 _listener(a.xs,.&xs_list,.&a);..
262c0 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 .(..a.xt.=.xdg_surface_get_tople
262e0 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 4f 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 vel(a.xs);...O..static.const.str
26300 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 uct.xdg_toplevel_listener.xt_lis
26320 74 20 3d 20 7b 78 74 5f 63 66 67 2c 20 28 76 6f 69 64 20 2a 29 6f 6e 5f 73 69 67 7d 3b 00 00 00 t.=.{xt_cfg,.(void.*)on_sig};...
26340 30 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 0..xdg_toplevel_add_listener(a.x
26360 74 2c 20 26 78 74 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 t,.&xt_list,.&a);...*..xdg_tople
26380 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 vel_set_title(a.xt,."wlclock");.
263a0 00 00 00 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 69 6e 5f 73 69 ......,..xdg_toplevel_set_min_si
263c0 7a 65 28 61 2e 78 74 2c 20 31 30 30 2c 20 31 30 30 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 ze(a.xt,.100,.100);......wl_surf
263e0 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 00 00 00 00 39 20 20 69 6e 74 20 74 ace_commit(a.ws);.......9..int.t
26400 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f fd.=.timerfd_create(CLOCK_MONOTO
26420 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f NIC,.TFD_CLOEXEC);...F..timerfd_
26440 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 settime(tfd,.0,.&(struct.itimers
26460 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 pec){{1,.0},.{1,.0}},.NULL);....
26480 00 00 00 35 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c 5f 64 69 73 70 6c ...5..while.(running.&&.wl_displ
264a0 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 20 21 3d 20 2d 31 29 20 7b 00 00 00 4e 20 20 20 ay_dispatch(a.d).!=.-1).{...N...
264c0 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 .struct.pollfd.pfds[2].=.{{wl_di
264e0 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 splay_get_fd(a.d),.POLLIN},.{tfd
26500 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1f 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 70 66 64 73 ,.POLLIN}};........if.(poll(pfds
26520 2c 20 32 2c 20 30 29 20 3e 20 30 29 20 7b 00 00 00 25 20 20 20 20 20 20 69 66 20 28 70 66 64 73 ,.2,.0).>.0).{...%......if.(pfds
26540 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 17 20 20 20 20 20 [1].revents.&.POLLIN).{.........
26560 20 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b 00 00 00 31 20 20 20 20 20 20 20 20 69 66 ...uint64_t.ticks;...1........if
26580 20 28 72 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 69 7a 65 6f 66 28 74 69 63 6b 73 .(read(tfd,.&ticks,.sizeof(ticks
265a0 29 29 20 3e 20 30 29 00 00 00 21 20 20 20 20 20 20 20 20 20 20 61 2d 3e 6e 65 65 64 73 5f 72 65 )).>.0)...!..........a->needs_re
265c0 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d draw.=.true;..........}........}
265e0 00 00 00 17 20 20 20 20 69 66 20 28 61 2e 6e 65 65 64 73 5f 72 65 64 72 61 77 29 00 00 00 11 20 ........if.(a.needs_redraw).....
26600 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 0d 20 .....render(&a);......}.........
26620 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 .close(tfd);......wl_display_dis
26640 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 connect(a.d);......return.0;....
26660 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 f9 00 00 00 00 00 00 00 01 00 00 00 00 00 00 }5..............................
26680 00 00 00 00 00 00 00 00 00 db 1b 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 .........................5._....
266a0 1e 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 1f 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ................................
266c0 ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
266e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
267a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
267c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
267e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 ...............................i
26820 9d 9f 5d 04 01 00 00 00 00 00 f5 18 00 00 00 7d 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 12 ..]............}................
26840 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 f5 18 00 00 00 7e 00 00 00 00 00 00 00 00 ..wl_surface_attac.....~........
26860 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 ................................
26880 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............5...................
268a0 00 00 00 00 7d 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 ....}...........................
268c0 00 00 00 00 f5 18 00 00 00 00 7d 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 4b 00 00 00 01 00 ..........}...............K.....
268e0 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 82 0a 00 00 00 00 00 00 35 81 5f d0 00 00 ..........................5._...
26900 00 1f 00 00 00 21 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 c9 00 00 00 00 00 00 00 00 ff ff .....!..........................
26920 ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
269a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
269c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
269e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26a80 69 9d 9f 5e 04 01 00 00 00 0e 00 f5 18 00 00 00 01 00 00 00 f5 00 00 00 c9 00 00 00 c2 00 00 00 i..^............................
26aa0 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 .#include.<errno.h>....#include.
26ac0 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 <fcntl.h>....#include.<math.h>..
26ae0 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 ..#include.<poll.h>....#include.
26b00 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e <signal.h>....#include.<stdbool.
26b20 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 h>....#include.<stdio.h>....#inc
26b40 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 lude.<stdlib.h>....#include.<str
26b60 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 ing.h>....#include.<sys/mman.h>.
26b80 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 ...#include.<sys/timerfd.h>....#
26ba0 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e include.<time.h>....#include.<un
26bc0 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 istd.h>....#include.<wayland-cli
26be0 65 6e 74 2e 68 3e 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c ent.h>...&#include."xdg-shell-cl
26c00 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 ient-protocol.h"........#ifndef.
26c20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 M_PI...##define.M_PI.3.141592653
26c40 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 58979323846....#endif....#ifndef
26c60 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 .M_PI_2...%#define.M_PI_2.1.5707
26c80 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 9632679489661923....#endif......
26ca0 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 .)static.volatile.sig_atomic_t.r
26cc0 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 33 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 unning.=.1;...3static.void.on_si
26ce0 67 28 69 6e 74 20 73 29 20 7b 20 28 76 6f 69 64 29 73 3b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b g(int.s).{.(void)s;.running.=.0;
26d00 20 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 .}........struct.app.{......stru
26d20 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c ct.wl_display.*d;......struct.wl
26d40 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 _registry.*reg;......struct.wl_c
26d60 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f ompositor.*comp;......struct.wl_
26d80 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 shm.*shm;......struct.xdg_wm_bas
26da0 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 e.*wm;......struct.wl_surface.*w
26dc0 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 s;......struct.xdg_surface.*xs;.
26de0 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 .....struct.xdg_toplevel.*xt;...
26e00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f ...void.*pixels;......struct.wl_
26e20 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 12 20 buffer.*buf;......int.w,.h;.....
26e40 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 14 20 20 62 6f 6f 6c 20 6e 65 65 64 .bool.configured;......bool.need
26e60 73 5f 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e s_redraw;....};.......)static.in
26e80 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b t.create_shm_file(size_t.size).{
26ea0 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c ......char.template[].=."/tmp/wl
26ec0 63 6c 6f 63 6b 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d clock-shm-XXXXXX";......int.fd.=
26ee0 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 16 20 20 69 66 20 28 66 64 20 .mkstemp(template);......if.(fd.
26f00 3c 20 30 29 20 65 78 69 74 28 31 29 3b 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 <.0).exit(1);......unlink(templa
26f20 74 65 29 3b 00 00 00 3d 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 28 6f 66 66 te);...=..if.(ftruncate(fd,.(off
26f40 5f 74 29 73 69 7a 65 29 20 3c 20 30 29 20 7b 20 63 6c 6f 73 65 28 66 64 29 3b 20 65 78 69 74 28 _t)size).<.0).{.close(fd);.exit(
26f60 31 29 3b 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 1);.}......return.fd;....}......
26f80 00 2c 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 73 74 .,static.void.allocate_buffer(st
26fa0 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 30 20 20 69 66 20 28 21 61 2d 3e 73 68 6d 20 ruct.app.*a).{...0..if.(!a->shm.
26fc0 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 20 72 65 74 75 72 ||.a->w.<=.0.||.a->h.<=.0).retur
26fe0 6e 3b 00 00 00 0f 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f n;......if.(a->buf).{........wl_
27000 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 31 20 20 20 20 6d buffer_destroy(a->buf);...1....m
27020 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a unmap(a->pixels,.(size_t)(a->w.*
27040 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 12 20 20 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c .a->h.*.4));........a->buf.=.NUL
27060 4c 3b 00 00 00 15 20 20 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 L;........a->pixels.=.NULL;.....
27080 20 7d 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 28 61 .}...*..size_t.size.=.(size_t)(a
270a0 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 ->w.*.a->h.*.4);...!..int.fd.=.c
270c0 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 reate_shm_file(size);...J..a->pi
270e0 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 xels.=.mmap(NULL,.size,.PROT_REA
27100 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 D.|.PROT_WRITE,.MAP_SHARED,.fd,.
27120 30 29 3b 00 00 00 36 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 0);...6..if.(a->pixels.==.MAP_FA
27140 49 4c 45 44 29 20 7b 20 63 6c 6f 73 65 28 66 64 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 ILED).{.close(fd);.exit(1);.}...
27160 4b 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c K..struct.wl_shm_pool.*pool.=.wl
27180 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 28 69 6e _shm_create_pool(a->shm,.fd,.(in
271a0 74 33 32 5f 74 29 73 69 7a 65 29 3b 00 00 00 5c 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 t32_t)size);...\..a->buf.=.wl_sh
271c0 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d m_pool_create_buffer(pool,.0,.a-
271e0 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 >w,.a->h,.a->w.*.4,.WL_SHM_FORMA
27200 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 T_ARGB8888);......wl_shm_pool_de
27220 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 01 stroy(pool);......close(fd);....
27240 7d 00 00 00 00 00 00 00 5f 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 }......._static.void.draw_line(u
27260 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 int32_t.*px,.int.w,.int.h,.int.x
27280 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 0,.int.y0,.int.x1,.int.y1,.uint3
272a0 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 2_t.c).{.../..int.dx.=.abs(x1.-.
272c0 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 x0),.sx.=.x0.<.x1.?.1.:.-1;...0.
272e0 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 .int.dy.=.-abs(y1.-.y0),.sy.=.y0
27300 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 3d 20 64 .<.y1.?.1.:.-1;......int.err.=.d
27320 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 44 x.+.dy,.e2;......while.(1).{...D
27340 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 ....if.(x0.>=.0.&&.x0.<.w.&&.y0.
27360 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 >=.0.&&.y0.<.h).px[y0.*.w.+.x0].
27380 3d 20 63 3b 00 00 00 24 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d =.c;...$....if.(x0.==.x1.&&.y0.=
273a0 3d 20 79 31 29 20 62 72 65 61 6b 3b 00 00 00 11 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 =.y1).break;........e2.=.2.*.err
273c0 3b 00 00 00 2a 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 20 65 72 72 20 2b 3d 20 ;...*....if.(e2.>=.dy).{.err.+=.
273e0 64 79 3b 20 78 30 20 2b 3d 20 73 78 3b 20 7d 00 00 00 2a 20 20 20 20 69 66 20 28 65 32 20 3c 3d dy;.x0.+=.sx;.}...*....if.(e2.<=
27400 20 64 78 29 20 7b 20 65 72 72 20 2b 3d 20 64 78 3b 20 79 30 20 2b 3d 20 73 79 3b 20 7d 00 00 00 .dx).{.err.+=.dx;.y0.+=.sy;.}...
27420 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 58 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 ...}....}.......Xstatic.void.dra
27440 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e w_circle(uint32_t.*px,.int.w,.in
27460 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 t.h,.int.cx,.int.cy,.int.r,.uint
27480 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 32_t.c).{..."..int.x.=.0,.y.=.r,
274a0 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d .d.=.3.-.2.*.r;......while.(y.>=
274c0 20 78 29 20 7b 00 00 00 4c 20 20 20 20 69 6e 74 20 70 74 73 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 .x).{...L....int.pts[8][2].=.{{c
274e0 78 2b 78 2c 20 63 79 2b 79 7d 2c 20 7b 63 78 2d 78 2c 20 63 79 2b 79 7d 2c 20 7b 63 78 2b 78 2c x+x,.cy+y},.{cx-x,.cy+y},.{cx+x,
27500 20 63 79 2d 79 7d 2c 20 7b 63 78 2d 78 2c 20 63 79 2d 79 7d 2c 00 00 00 4d 20 20 20 20 20 20 20 .cy-y},.{cx-x,.cy-y},...M.......
27520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 2b 79 2c 20 63 79 2b 78 7d 2c 20 7b 63 78 2d ..............{cx+y,.cy+x},.{cx-
27540 79 2c 20 63 79 2b 78 7d 2c 20 7b 63 78 2b 79 2c 20 63 79 2d 78 7d 2c 20 7b 63 78 2d 79 2c 20 63 y,.cy+x},.{cx+y,.cy-x},.{cx-y,.c
27560 79 2d 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 y-x}};........for.(int.i.=.0;.i.
27580 3c 20 38 3b 20 69 2b 2b 29 00 00 00 4d 20 20 20 20 20 20 69 66 20 28 70 74 73 5b 69 5d 5b 30 5d <.8;.i++)...M......if.(pts[i][0]
275a0 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 74 73 5b 69 5d .>=.0.&&.pts[i][0].<.w.&&.pts[i]
275c0 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 2a 20 20 [1].>=.0.&&.pts[i][1].<.h)...*..
275e0 20 20 20 20 20 20 70 78 5b 70 74 73 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 74 73 5b 69 5d 5b ......px[pts[i][1].*.w.+.pts[i][
27600 30 5d 5d 20 3d 20 63 3b 00 00 00 43 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 20 64 20 2b 0]].=.c;...C....if.(d.>.0).{.d.+
27620 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 20 79 2d 2d 3b 20 7d 20 65 6c 73 65 20 =.4.*.(x.-.y).+.10;.y--;.}.else.
27640 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 d.+=.4.*.x.+.6;........x++;.....
27660 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 .}....}.......#static.void.rende
27680 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 42 20 20 69 66 20 28 21 61 2d 3e r(struct.app.*a).{...B..if.(!a->
276a0 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 configured.||.a->w.<=.0.||.a->h.
276c0 3c 3d 20 30 20 7c 7c 20 21 61 2d 3e 73 68 6d 29 20 72 65 74 75 72 6e 3b 00 00 00 22 20 20 69 66 <=.0.||.!a->shm).return;..."..if
276e0 20 28 21 61 2d 3e 62 75 66 29 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 61 29 3b 00 00 .(!a->buf).allocate_buffer(a);..
27700 00 19 20 20 69 66 20 28 21 61 2d 3e 70 69 78 65 6c 73 29 20 72 65 74 75 72 6e 3b 00 00 00 00 00 ....if.(!a->pixels).return;.....
27720 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 13 .....time_t.tt.=.time(NULL);....
27740 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 5f 62 75 66 3b 00 00 00 1c 20 20 6c 6f 63 61 6c 74 69 ..struct.tm.tm_buf;......localti
27760 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 5f 62 75 66 29 3b 00 00 00 00 00 00 00 1b 20 20 75 69 6e me_r(&tt,.&tm_buf);..........uin
27780 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 2e 20 20 6d 65 6d 73 t32_t.*px.=.a->pixels;......mems
277a0 65 74 28 70 78 2c 20 30 78 66 66 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e et(px,.0xff,.(size_t)(a->w.*.a->
277c0 68 20 2a 20 34 29 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c h.*.4));...#..int.cx.=.a->w./.2,
277e0 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d .cy.=.a->h./.2;.../..int.r.=.(a-
27800 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 >w.<.a->h.?.a->w.:.a->h)./.2.-.1
27820 30 3b 00 00 00 13 20 20 69 66 20 28 72 20 3c 20 35 29 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 0;......if.(r.<.5).r.=.5;.......
27840 35 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 5..draw_circle(px,.a->w,.a->h,.c
27860 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 20 20 20 66 6f 72 20 x,.cy,.r,.0xFF000000);......for.
27880 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 (int.i.=.0;.i.<.12;.i++).{......
278a0 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f ..double.ang.=.i./.12.0.*.2.*.M_
278c0 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 5f 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 PI.-.M_PI_2;..._....draw_line(px
278e0 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 ,.a->w,.a->h,.cx.+.(int)(cos(ang
27900 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e ).*.(r.-.10)),.cy.+.(int)(sin(an
27920 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 00 00 00 5a 20 20 20 20 20 20 20 20 20 20 20 20 20 g).*.(r.-.10)),...Z.............
27940 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c .cx.+.(int)(cos(ang).*.(r.-.2)),
27960 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c .cy.+.(int)(sin(ang).*.(r.-.2)),
27980 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 37 20 20 64 6f 75 62 6c 65 .0xFF000000);......}...7..double
279a0 20 73 61 20 3d 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a .sa.=.tm_buf.tm_sec./.60.0.*.2.*
279c0 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 50 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d .M_PI.-.M_PI_2;...P..double.ma.=
279e0 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 .(tm_buf.tm_min.+.tm_buf.tm_sec.
27a00 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 /.60.0)./.60.0.*.2.*.M_PI.-.M_PI
27a20 5f 32 3b 00 00 00 5a 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 5f 62 75 66 2e 74 6d _2;...Z..double.ha.=.((tm_buf.tm
27a40 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2f 20 36 _hour.%.12).+.(tm_buf.tm_min./.6
27a60 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 0.0))./.12.0.*.2.*.M_PI.-.M_PI_2
27a80 3b 00 00 00 00 00 00 00 6e 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 ;.......n..draw_line(px,.a->w,.a
27aa0 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 68 61 29 20 ->h,.cx,.cy,.cx.+.(int)(cos(ha).
27ac0 2a 20 72 20 2a 20 30 2e 35 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 68 61 29 20 2a *.r.*.0.5),.cy.+.(int)(sin(ha).*
27ae0 20 72 20 2a 20 30 2e 35 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 6e 20 20 64 72 61 .r.*.0.5),.0xFF000000);...n..dra
27b00 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 w_line(px,.a->w,.a->h,.cx,.cy,.c
27b20 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 20 63 79 x.+.(int)(cos(ma).*.r.*.0.7),.cy
27b40 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 20 30 78 46 .+.(int)(sin(ma).*.r.*.0.7),.0xF
27b60 46 30 30 30 30 30 30 29 3b 00 00 00 6e 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e F000000);...n..draw_line(px,.a->
27b80 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 w,.a->h,.cx,.cy,.cx.+.(int)(cos(
27ba0 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 73 sa).*.r.*.0.9),.cy.+.(int)(sin(s
27bc0 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 00 00 a).*.r.*.0.9),.0xFFFF0000);.....
27be0 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d ..)..wl_surface_attach(a->ws,.a-
27c00 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d >buf,.0,.0);...4..wl_surface_dam
27c20 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d age_buffer(a->ws,.0,.0,.a->w,.a-
27c40 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 >h);......wl_surface_commit(a->w
27c60 73 29 3b 00 00 00 1a 20 20 61 2d 3e 6e 65 65 64 73 5f 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 s);......a->needs_redraw.=.false
27c80 3b 00 00 00 01 7d 00 00 00 00 00 00 00 61 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 ;....}.......astatic.void.xt_cfg
27ca0 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 (void.*d,.struct.xdg_toplevel.*x
27cc0 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 20 73 74 72 75 63 74 20 t,.int32_t.w,.int32_t.h,.struct.
27ce0 77 6c 5f 61 72 72 61 79 20 2a 73 74 29 20 7b 00 00 00 28 20 20 73 74 72 75 63 74 20 61 70 70 20 wl_array.*st).{...(..struct.app.
27d00 2a 61 20 3d 20 64 3b 20 28 76 6f 69 64 29 78 74 3b 20 28 76 6f 69 64 29 73 74 3b 00 00 00 33 20 *a.=.d;.(void)xt;.(void)st;...3.
27d20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e .if.(w.>.0.&&.h.>.0.&&.(w.!=.a->
27d40 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 17 20 20 20 20 61 2d 3e 77 20 3d w.||.h.!=.a->h)).{........a->w.=
27d60 20 77 3b 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 11 20 20 20 20 69 66 20 28 61 2d 3e 62 75 66 29 .w;.a->h.=.h;........if.(a->buf)
27d80 20 7b 00 00 00 22 20 20 20 20 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 .{..."........wl_buffer_destroy(
27da0 61 2d 3e 62 75 66 29 3b 00 00 00 35 20 20 20 20 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 a->buf);...5........munmap(a->pi
27dc0 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 xels,.(size_t)(a->w.*.a->h.*.4))
27de0 3b 00 00 00 28 20 20 20 20 20 20 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 20 61 2d 3e 70 ;...(........a->buf.=.NULL;.a->p
27e00 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1b 20 20 20 20 61 2d ixels.=.NULL;........}........a-
27e20 3e 6e 65 65 64 73 5f 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 >needs_redraw.=.true;......}....
27e40 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 }.......Astatic.void.xs_cfg(void
27e60 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e .*d,.struct.xdg_surface.*xs,.uin
27e80 74 33 32 5f 74 20 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 t32_t.s).{......struct.app.*a.=.
27ea0 64 3b 00 00 00 23 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 d;...#..xdg_surface_ack_configur
27ec0 65 28 78 73 2c 20 73 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 e(xs,.s);......a->configured.=.t
27ee0 72 75 65 3b 00 00 00 19 20 20 61 2d 3e 6e 65 65 64 73 5f 72 65 64 72 61 77 20 3d 20 74 72 75 65 rue;......a->needs_redraw.=.true
27f00 3b 00 00 00 01 7d 00 00 00 00 00 00 00 71 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 ;....}.......qstatic.void.regist
27f20 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c ry_handler(void.*data,.struct.wl
27f40 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e _registry.*reg,.uint32_t.id,.con
27f60 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 st.char.*iface,.uint32_t.ver).{.
27f80 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 61 74 61 3b 00 00 00 68 20 20 .....struct.app.*a.=.data;...h..
27fa0 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f if.(!strcmp(iface,."wl_composito
27fc0 72 22 29 29 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 r")).a->comp.=.wl_registry_bind(
27fe0 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 reg,.id,.&wl_compositor_interfac
28000 65 2c 20 34 29 3b 00 00 00 5e 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 e,.4);...^..else.if.(!strcmp(ifa
28020 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 29 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 ce,."wl_shm")).a->shm.=.wl_regis
28040 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 try_bind(reg,.id,.&wl_shm_interf
28060 61 63 65 2c 20 31 29 3b 00 00 00 2b 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 ace,.1);...+..else.if.(!strcmp(i
28080 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 41 20 20 20 20 61 face,."xdg_wm_base")).{...A....a
280a0 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c ->wm.=.wl_registry_bind(reg,.id,
280c0 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 51 .&xdg_wm_base_interface,.1);...Q
280e0 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 ....static.const.struct.xdg_wm_b
28100 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 20 3d 20 7b 28 76 6f 69 64 2a 29 78 ase_listener.wm_list.=.{(void*)x
28120 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 7d 3b 00 00 00 31 20 20 20 20 78 64 67 5f 77 6d 5f dg_wm_base_pong};...1....xdg_wm_
28140 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 base_add_listener(a->wm,.&wm_lis
28160 74 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 t,.a);......}....}........int.ma
28180 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 3d 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b in(void).{...=..struct.app.a.=.{
281a0 2e 77 20 3d 20 34 30 30 2c 20 2e 68 20 3d 20 34 30 30 2c 20 2e 6e 65 65 64 73 5f 72 65 64 72 61 .w.=.400,..h.=.400,..needs_redra
281c0 77 20 3d 20 66 61 6c 73 65 7d 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 w.=.false};......signal(SIGINT,.
281e0 6f 6e 5f 73 69 67 29 3b 00 00 00 32 20 20 69 66 20 28 21 28 61 2e 64 20 3d 20 77 6c 5f 64 69 73 on_sig);...2..if.(!(a.d.=.wl_dis
28200 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 29 29 20 72 65 74 75 72 6e 20 31 3b 00 00 play_connect(NULL))).return.1;..
28220 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 .'..a.reg.=.wl_display_get_regis
28240 74 72 79 28 61 2e 64 29 3b 00 00 00 49 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 try(a.d);...I..static.const.stru
28260 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 ct.wl_registry_listener.reg_list
28280 20 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 7d 3b 00 00 00 31 20 20 77 6c 5f 72 .=.{registry_handler};...1..wl_r
282a0 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 egistry_add_listener(a.reg,.&reg
282c0 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e _list,.&a);......wl_display_roun
282e0 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 00 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 dtrip(a.d);..........a.ws.=.wl_c
28300 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 ompositor_create_surface(a.comp)
28320 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 ;...1..a.xs.=.xdg_wm_base_get_xd
28340 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 3e 20 20 73 74 61 74 g_surface(a.wm,.a.ws);...>..stat
28360 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 ic.const.struct.xdg_surface_list
28380 65 6e 65 72 20 78 73 5f 6c 69 73 74 20 3d 20 7b 78 73 5f 63 66 67 7d 3b 00 00 00 2f 20 20 78 64 ener.xs_list.=.{xs_cfg};.../..xd
283a0 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 g_surface_add_listener(a.xs,.&xs
283c0 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 _list,.&a);...(..a.xt.=.xdg_surf
283e0 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 4e 20 20 73 74 61 ace_get_toplevel(a.xs);...N..sta
28400 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 tic.const.struct.xdg_toplevel_li
28420 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 20 3d 20 7b 78 74 5f 63 66 67 2c 20 28 76 6f 69 64 2a stener.xt_list.=.{xt_cfg,.(void*
28440 29 6f 6e 5f 73 69 67 7d 3b 00 00 00 30 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f )on_sig};...0..xdg_toplevel_add_
28460 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 listener(a.xt,.&xt_list,.&a);...
28480 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 *..xdg_toplevel_set_title(a.xt,.
284a0 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 02 20 20 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 "wlclock");.........,..xdg_tople
284c0 76 65 6c 5f 73 65 74 5f 6d 69 6e 5f 73 69 7a 65 28 61 2e 78 74 2c 20 31 30 30 2c 20 31 30 30 29 vel_set_min_size(a.xt,.100,.100)
284e0 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 ;......wl_surface_commit(a.ws);.
28500 00 00 00 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 ......9..int.tfd.=.timerfd_creat
28520 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b e(CLOCK_MONOTONIC,.TFD_CLOEXEC);
28540 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 ...F..timerfd_settime(tfd,.0,.&(
28560 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 struct.itimerspec){{1,.0},.{1,.0
28580 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 35 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 }},.NULL);.......5..while.(runni
285a0 6e 67 20 26 26 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 20 21 ng.&&.wl_display_dispatch(a.d).!
285c0 3d 20 2d 31 29 20 7b 00 00 00 4e 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 66 64 =.-1).{...N....struct.pollfd.pfd
285e0 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c s[2].=.{{wl_display_get_fd(a.d),
28600 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1f 20 20 20 .POLLIN},.{tfd,.POLLIN}};.......
28620 20 69 66 20 28 70 6f 6c 6c 28 70 66 64 73 2c 20 32 2c 20 30 29 20 3e 20 30 29 20 7b 00 00 00 25 .if.(poll(pfds,.2,.0).>.0).{...%
28640 20 20 20 20 20 20 69 66 20 28 70 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c ......if.(pfds[1].revents.&.POLL
28660 49 4e 29 20 7b 00 00 00 17 20 20 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b IN).{............uint64_t.ticks;
28680 00 00 00 48 20 20 20 20 20 20 20 20 69 66 20 28 72 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 ...H........if.(read(tfd,.&ticks
286a0 2c 20 73 69 7a 65 6f 66 28 74 69 63 6b 73 29 29 20 3e 20 30 29 20 61 2e 6e 65 65 64 73 5f 72 65 ,.sizeof(ticks)).>.0).a.needs_re
286c0 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d draw.=.true;..........}........}
286e0 00 00 00 23 20 20 20 20 69 66 20 28 61 2e 6e 65 65 64 73 5f 72 65 64 72 61 77 29 20 72 65 6e 64 ...#....if.(a.needs_redraw).rend
28700 65 72 28 26 61 29 3b 35 81 f5 18 00 00 00 00 01 00 00 00 09 00 00 00 c1 00 00 00 17 00 00 00 f2 er(&a);5........................
28720 00 00 00 05 00 00 00 29 00 00 00 00 00 00 00 0e 1a 00 00 00 00 00 00 a3 1b 00 00 00 00 00 00 35 .......).......................5
28740 81 5f d0 00 00 00 20 00 00 00 22 00 00 00 00 00 00 00 00 00 00 00 21 00 00 00 01 00 00 00 00 00 ._........"...........!.........
28760 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
28780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
287a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
287c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
287e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
28800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
28820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
28840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
28860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
28880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
288a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
288c0 00 00 00 00 00 69 9d 9f a8 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 .....i..........................
288e0 00 fa 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 ......#define._POSIX_C_SOURCE.20
28900 30 38 30 39 4c 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 0809L...&#include."xdg-shell-cli
28920 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 ent-protocol.h"....#include.<err
28940 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 no.h>....#include.<fcntl.h>....#
28960 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f include.<math.h>....#include.<po
28980 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 ll.h>....#include.<signal.h>....
289a0 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 #include.<stdbool.h>....#include
289c0 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 .<stdio.h>....#include.<stdlib.h
289e0 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 >....#include.<string.h>....#inc
28a00 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 lude.<sys/mman.h>....#include.<s
28a20 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e ys/timerfd.h>....#include.<time.
28a40 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e h>....#include.<unistd.h>....#in
28a60 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c clude.<wayland-client.h>........
28a80 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 #ifndef.M_PI...##define.M_PI.3.1
28aa0 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 4159265358979323846....#endif...
28ac0 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f .#ifndef.M_PI_2...%#define.M_PI_
28ae0 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 2.1.57079632679489661923....#end
28b00 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 if.......)static.volatile.sig_at
28b20 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f omic_t.running.=.1;....static.vo
28b40 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b id.on_sig(int.s).{......(void)s;
28b60 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 ......running.=.0;....}........s
28b80 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c truct.app.{......struct.wl_displ
28ba0 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a ay.*d;......struct.wl_registry.*
28bc0 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a reg;......struct.wl_compositor.*
28be0 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 comp;......struct.wl_shm.*shm;..
28c00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 ....struct.xdg_wm_base.*wm;.....
28c20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 .struct.wl_surface.*ws;......str
28c40 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 uct.xdg_surface.*xs;......struct
28c60 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 .xdg_toplevel.*xt;......void.*pi
28c80 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 xels;......struct.wl_buffer.*buf
28ca0 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 ;......int.w,.h;......bool.confi
28cc0 67 75 72 65 64 3b 00 00 00 14 20 20 62 6f 6f 6c 20 6e 65 65 64 73 5f 72 65 64 72 61 77 3b 00 00 gured;......bool.needs_redraw;..
28ce0 00 02 7d 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 ..};.......)static.int.create_sh
28d00 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 m_file(size_t.size).{......char.
28d20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 73 68 6d 2d 58 template[].=."/tmp/wlclock-shm-X
28d40 58 58 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 XXXXX";......int.fd.=.mkstemp(te
28d60 6d 70 6c 61 74 65 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 20 20 mplate);......if.(fd.<.0).......
28d80 20 65 78 69 74 28 31 29 3b 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b .exit(1);......unlink(template);
28da0 00 00 00 27 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 28 6f 66 66 5f 74 29 73 ...'..if.(ftruncate(fd,.(off_t)s
28dc0 69 7a 65 29 20 3c 20 30 29 20 7b 00 00 00 0e 20 20 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 ize).<.0).{........close(fd);...
28de0 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e .....exit(1);......}......return
28e00 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2c 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c .fd;....}.......,static.void.all
28e20 6f 63 61 74 65 5f 62 75 66 66 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 ocate_buffer(struct.app.*a).{...
28e40 28 20 20 69 66 20 28 21 61 2d 3e 73 68 6d 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 (..if.(!a->shm.||.a->w.<=.0.||.a
28e60 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0f 20 20 69 66 ->h.<=.0)........return;......if
28e80 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 .(a->buf).{........wl_buffer_des
28ea0 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 31 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 troy(a->buf);...1....munmap(a->p
28ec0 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 ixels,.(size_t)(a->w.*.a->h.*.4)
28ee0 29 3b 00 00 00 12 20 20 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 15 20 20 20 20 );........a->buf.=.NULL;........
28f00 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 2a 20 20 73 69 a->pixels.=.NULL;......}...*..si
28f20 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 ze_t.size.=.(size_t)(a->w.*.a->h
28f40 20 2a 20 34 29 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f .*.4);...!..int.fd.=.create_shm_
28f60 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 file(size);...J..a->pixels.=.mma
28f80 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 p(NULL,.size,.PROT_READ.|.PROT_W
28fa0 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 20 20 20 69 RITE,.MAP_SHARED,.fd,.0);......i
28fc0 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 00 f.(a->pixels.==.MAP_FAILED).{...
28fe0 0e 20 20 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 .....close(fd);........exit(1);.
29000 00 00 03 20 20 7d 00 00 00 4b 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a .....}...K..struct.wl_shm_pool.*
29020 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d pool.=.wl_shm_create_pool(a->shm
29040 2c 20 66 64 2c 20 28 69 6e 74 33 32 5f 74 29 73 69 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 75 ,.fd,.(int32_t)size);...C..a->bu
29060 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f f.=.wl_shm_pool_create_buffer(po
29080 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d ol,.0,.a->w,.a->h,.a->w.*.4,...=
290a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
290c0 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 .....WL_SHM_FORMAT_ARGB8888);...
290e0 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 ...wl_shm_pool_destroy(pool);...
29100 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 ...close(fd);....}.......Istatic
29120 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e .void.draw_line(uint32_t.*px,.in
29140 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 t.w,.int.h,.int.x0,.int.y0,.int.
29160 78 31 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 x1,...+......................int
29180 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d .y1,.uint32_t.c).{.../..int.dx.=
291a0 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 .abs(x1.-.x0),.sx.=.x0.<.x1.?.1.
291c0 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 :.-1;...0..int.dy.=.-abs(y1.-.y0
291e0 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 18 20 20 69 ),.sy.=.y0.<.y1.?.1.:.-1;......i
29200 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0d 20 20 77 68 69 6c 65 nt.err.=.dx.+.dy,.e2;......while
29220 20 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 .(1).{.../....if.(x0.>=.0.&&.x0.
29240 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 1a 20 20 20 <.w.&&.y0.>=.0.&&.y0.<.h).......
29260 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 1d 20 20 20 20 69 ...px[y0.*.w.+.x0].=.c;........i
29280 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 f.(x0.==.x1.&&.y0.==.y1)........
292a0 20 20 62 72 65 61 6b 3b 00 00 00 11 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 ..break;........e2.=.2.*.err;...
292c0 13 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 .....if.(e2.>=.dy).{..........er
292e0 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 r.+=.dy;..........x0.+=.sx;.....
29300 20 20 20 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 ...}........if.(e2.<=.dx).{.....
29320 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 .....err.+=.dx;..........y0.+=.s
29340 79 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 y;........}......}....}.......Js
29360 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 tatic.void.draw_circle(uint32_t.
29380 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 *px,.int.w,.int.h,.int.cx,.int.c
293a0 79 2c 20 69 6e 74 20 72 2c 00 00 00 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y,.int.r,...%...................
293c0 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 .....uint32_t.c).{..."..int.x.=.
293e0 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 0,.y.=.r,.d.=.3.-.2.*.r;......wh
29400 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 4a 20 20 20 20 69 6e 74 20 70 74 73 5b 38 5d ile.(y.>=.x).{...J....int.pts[8]
29420 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 [2].=.{{cx.+.x,.cy.+.y},.{cx.-.x
29440 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 4a ,.cy.+.y},.{cx.+.x,.cy.-.y},...J
29460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 .....................{cx.-.x,.cy
29480 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 .-.y},.{cx.+.y,.cy.+.x},.{cx.-.y
294a0 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.cy.+.x},...9..................
294c0 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 ...{cx.+.y,.cy.-.x},.{cx.-.y,.cy
294e0 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 .-.x}};........for.(int.i.=.0;.i
29500 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 4d 20 20 20 20 20 20 69 66 20 28 70 74 73 5b 69 5d 5b 30 .<.8;.i++)...M......if.(pts[i][0
29520 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 74 73 5b 69 ].>=.0.&&.pts[i][0].<.w.&&.pts[i
29540 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 2a 20 ][1].>=.0.&&.pts[i][1].<.h)...*.
29560 20 20 20 20 20 20 20 70 78 5b 70 74 73 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 74 73 5b 69 5d .......px[pts[i][1].*.w.+.pts[i]
29580 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 [0]].=.c;........if.(d.>.0).{...
295a0 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 .......d.+=.4.*.(x.-.y).+.10;...
295c0 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 .......y--;........}.else.......
295e0 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 ...d.+=.4.*.x.+.6;........x++;..
29600 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 ....}....}.......#static.void.re
29620 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 3a 20 20 69 66 20 28 21 nder(struct.app.*a).{...:..if.(!
29640 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d a->configured.||.a->w.<=.0.||.a-
29660 3e 68 20 3c 3d 20 30 20 7c 7c 20 21 61 2d 3e 73 68 6d 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 >h.<=.0.||.!a->shm)........retur
29680 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 17 20 20 20 20 61 6c 6c 6f n;......if.(!a->buf)........allo
296a0 63 61 74 65 5f 62 75 66 66 65 72 28 61 29 3b 00 00 00 11 20 20 69 66 20 28 21 61 2d 3e 70 69 78 cate_buffer(a);......if.(!a->pix
296c0 65 6c 73 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 00 00 00 00 19 20 20 74 69 6d els)........return;..........tim
296e0 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 13 20 20 73 74 72 75 63 74 e_t.tt.=.time(NULL);......struct
29700 20 74 6d 20 74 6d 5f 62 75 66 3b 00 00 00 1c 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 .tm.tm_buf;......localtime_r(&tt
29720 2c 20 26 74 6d 5f 62 75 66 29 3b 00 00 00 00 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 ,.&tm_buf);..........uint32_t.*p
29740 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 2e 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 x.=.a->pixels;......memset(px,.0
29760 78 66 66 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b xff,.(size_t)(a->w.*.a->h.*.4));
29780 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d ...#..int.cx.=.a->w./.2,.cy.=.a-
297a0 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e >h./.2;.../..int.r.=.(a->w.<.a->
297c0 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 h.?.a->w.:.a->h)./.2.-.10;......
297e0 69 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 35 if.(r.<.5)........r.=.5;.......5
29800 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 ..draw_circle(px,.a->w,.a->h,.cx
29820 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 20 20 20 66 6f 72 20 28 ,.cy,.r,.0xFF000000);......for.(
29840 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 int.i.=.0;.i.<.12;.i++).{.......
29860 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 .double.ang.=.i./.12.0.*.2.*.M_P
29880 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 3e 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c I.-.M_PI_2;...>....draw_line(px,
298a0 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 .a->w,.a->h,.cx.+.(int)(cos(ang)
298c0 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 .*.(r.-.10)),...N..............c
298e0 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 20 y.+.(int)(sin(ang).*.(r.-.10)),.
29900 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 00 cx.+.(int)(cos(ang).*.(r.-.2)),.
29920 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 ..:..............cy.+.(int)(sin(
29940 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 ang).*.(r.-.2)),.0xFF000000);...
29960 03 20 20 7d 00 00 00 37 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 5f 62 75 66 2e 74 6d 5f ...}...7..double.sa.=.tm_buf.tm_
29980 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 sec./.60.0.*.2.*.M_PI.-.M_PI_2;.
299a0 00 00 50 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 ..P..double.ma.=.(tm_buf.tm_min.
299c0 2b 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a +.tm_buf.tm_sec./.60.0)./.60.0.*
299e0 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 .2.*.M_PI.-.M_PI_2;......double.
29a00 68 61 20 3d 00 00 00 4a 20 20 20 20 20 20 28 28 74 6d 5f 62 75 66 2e 74 6d 5f 68 6f 75 72 20 25 ha.=...J......((tm_buf.tm_hour.%
29a20 20 31 32 29 20 2b 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f .12).+.(tm_buf.tm_min./.60.0))./
29a40 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 00 00 00 0d 20 20 20 20 20 20 4d 5f 50 49 .12.0.*.2.*.M_PI.-..........M_PI
29a60 5f 32 3b 00 00 00 00 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c _2;.......B..draw_line(px,.a->w,
29a80 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 68 61 .a->h,.cx,.cy,.cx.+.(int)(cos(ha
29aa0 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 ).*.r.*.0.5),...7............cy.
29ac0 2b 20 28 69 6e 74 29 28 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 20 30 78 46 46 +.(int)(sin(ha).*.r.*.0.5),.0xFF
29ae0 30 30 30 30 30 30 29 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 000000);...B..draw_line(px,.a->w
29b00 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 6d ,.a->h,.cx,.cy,.cx.+.(int)(cos(m
29b20 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 63 79 a).*.r.*.0.7),...7............cy
29b40 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 20 30 78 46 .+.(int)(sin(ma).*.r.*.0.7),.0xF
29b60 46 30 30 30 30 30 30 29 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e F000000);...B..draw_line(px,.a->
29b80 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 w,.a->h,.cx,.cy,.cx.+.(int)(cos(
29ba0 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 63 sa).*.r.*.0.9),...7............c
29bc0 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 30 78 y.+.(int)(sin(sa).*.r.*.0.9),.0x
29be0 46 46 46 46 30 30 30 30 29 3b 00 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 FFFF0000);.......)..wl_surface_a
29c00 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 ttach(a->ws,.a->buf,.0,.0);...4.
29c20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c .wl_surface_damage_buffer(a->ws,
29c40 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 .0,.0,.a->w,.a->h);......wl_surf
29c60 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 1a 20 20 61 2d 3e 6e 65 65 64 73 ace_commit(a->ws);......a->needs
29c80 5f 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 _redraw.=.false;....}.......Jsta
29ca0 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 tic.void.xt_cfg(void.*d,.struct.
29cc0 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 xdg_toplevel.*xt,.int32_t.w,.int
29ce0 33 32 5f 74 20 68 2c 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 32_t.h,...)...................st
29d00 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 ruct.wl_array.*st).{......struct
29d20 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 0b 20 20 28 76 6f 69 64 29 78 74 3b 00 00 00 0b 20 .app.*a.=.d;......(void)xt;.....
29d40 20 28 76 6f 69 64 29 73 74 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e .(void)st;...3..if.(w.>.0.&&.h.>
29d60 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 .0.&&.(w.!=.a->w.||.h.!=.a->h)).
29d80 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d {........a->w.=.w;........a->h.=
29da0 20 68 3b 00 00 00 11 20 20 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 20 20 20 20 20 .h;........if.(a->buf).{........
29dc0 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 33 ..wl_buffer_destroy(a->buf);...3
29de0 20 20 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 ......munmap(a->pixels,.(size_t)
29e00 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 14 20 20 20 20 20 20 61 2d 3e (a->w.*.a->h.*.4));..........a->
29e20 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 17 20 20 20 20 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d buf.=.NULL;..........a->pixels.=
29e40 20 4e 55 4c 4c 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1b 20 20 20 20 61 2d 3e 6e 65 65 64 73 5f .NULL;........}........a->needs_
29e60 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 redraw.=.true;......}....}......
29e80 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 .Astatic.void.xs_cfg(void.*d,.st
29ea0 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 ruct.xdg_surface.*xs,.uint32_t.s
29ec0 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 23 20 ).{......struct.app.*a.=.d;...#.
29ee0 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 .xdg_surface_ack_configure(xs,.s
29f00 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 );......a->configured.=.true;...
29f20 19 20 20 61 2d 3e 6e 65 65 64 73 5f 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 ...a->needs_redraw.=.true;....}.
29f40 00 00 00 00 00 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 ......Nstatic.void.registry_hand
29f60 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 ler(void.*data,.struct.wl_regist
29f80 72 79 20 2a 72 65 67 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 3f 20 20 20 20 20 20 20 ry.*reg,.uint32_t.id,...?.......
29fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 ......................const.char
29fc0 20 2a 69 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 .*iface,.uint32_t.ver).{......st
29fe0 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 61 74 61 3b 00 00 00 26 20 20 69 66 20 28 21 73 74 ruct.app.*a.=.data;...&..if.(!st
2a000 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 rcmp(iface,."wl_compositor"))...
2a020 45 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 E....a->comp.=.wl_registry_bind(
2a040 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 reg,.id,.&wl_compositor_interfac
2a060 65 2c 20 34 29 3b 00 00 00 24 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 e,.4);...$..else.if.(!strcmp(ifa
2a080 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3d 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 ce,."wl_shm"))...=....a->shm.=.w
2a0a0 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d l_registry_bind(reg,.id,.&wl_shm
2a0c0 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 2b 20 20 65 6c 73 65 20 69 66 20 28 21 73 _interface,.1);...+..else.if.(!s
2a0e0 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 trcmp(iface,."xdg_wm_base")).{..
2a100 00 41 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 .A....a->wm.=.wl_registry_bind(r
2a120 65 67 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 eg,.id,.&xdg_wm_base_interface,.
2a140 31 29 3b 00 00 00 38 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 1);...8....static.const.struct.x
2a160 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 20 3d 20 7b 00 dg_wm_base_listener.wm_list.=.{.
2a180 00 00 22 20 20 20 20 20 20 20 20 28 76 6f 69 64 20 2a 29 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 .."........(void.*)xdg_wm_base_p
2a1a0 6f 6e 67 7d 3b 00 00 00 31 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 ong};...1....xdg_wm_base_add_lis
2a1c0 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 74 2c 20 61 29 3b 00 00 00 03 20 20 tener(a->wm,.&wm_list,.a);......
2a1e0 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 }....}........int.main(void).{..
2a200 00 3d 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 2e 77 20 3d 20 34 30 30 2c 20 2e 68 .=..struct.app.a.=.{.w.=.400,..h
2a220 20 3d 20 34 30 30 2c 20 2e 6e 65 65 64 73 5f 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 7d 3b 00 .=.400,..needs_redraw.=.false};.
2a240 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 28 .....signal(SIGINT,.on_sig);...(
2a260 20 20 69 66 20 28 21 28 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 ..if.(!(a.d.=.wl_display_connect
2a280 28 4e 55 4c 4c 29 29 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 (NULL)))........return.1;...'..a
2a2a0 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 .reg.=.wl_display_get_registry(a
2a2c0 2e 64 29 3b 00 00 00 49 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c .d);...I..static.const.struct.wl
2a2e0 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 20 3d 20 7b 72 _registry_listener.reg_list.=.{r
2a300 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 7d 3b 00 00 00 31 20 20 77 6c 5f 72 65 67 69 73 74 egistry_handler};...1..wl_regist
2a320 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c 69 73 74 ry_add_listener(a.reg,.&reg_list
2a340 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 ,.&a);......wl_display_roundtrip
2a360 28 61 2e 64 29 3b 00 00 00 00 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 (a.d);..........a.ws.=.wl_compos
2a380 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 itor_create_surface(a.comp);...1
2a3a0 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 ..a.xs.=.xdg_wm_base_get_xdg_sur
2a3c0 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 3e 20 20 73 74 61 74 69 63 20 63 6f face(a.wm,.a.ws);...>..static.co
2a3e0 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 nst.struct.xdg_surface_listener.
2a400 78 73 5f 6c 69 73 74 20 3d 20 7b 78 73 5f 63 66 67 7d 3b 00 00 00 2f 20 20 78 64 67 5f 73 75 72 xs_list.=.{xs_cfg};.../..xdg_sur
2a420 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 5f 6c 69 73 74 face_add_listener(a.xs,.&xs_list
2a440 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 ,.&a);...(..a.xt.=.xdg_surface_g
2a460 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 4f 20 20 73 74 61 74 69 63 20 63 et_toplevel(a.xs);...O..static.c
2a480 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 onst.struct.xdg_toplevel_listene
2a4a0 72 20 78 74 5f 6c 69 73 74 20 3d 20 7b 78 74 5f 63 66 67 2c 20 28 76 6f 69 64 20 2a 29 6f 6e 5f r.xt_list.=.{xt_cfg,.(void.*)on_
2a4c0 73 69 67 7d 3b 00 00 00 30 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 sig};...0..xdg_toplevel_add_list
2a4e0 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 ener(a.xt,.&xt_list,.&a);...*..x
2a500 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 dg_toplevel_set_title(a.xt,."wlc
2a520 6c 6f 63 6b 22 29 3b 00 00 00 00 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 lock");.......,..xdg_toplevel_se
2a540 74 5f 6d 69 6e 5f 73 69 7a 65 28 61 2e 78 74 2c 20 31 30 30 2c 20 31 30 30 29 3b 00 00 00 1a 20 t_min_size(a.xt,.100,.100);.....
2a560 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 00 00 00 00 .wl_surface_commit(a.ws);.......
2a580 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 9..int.tfd.=.timerfd_create(CLOC
2a5a0 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 K_MONOTONIC,.TFD_CLOEXEC);...F..
2a5c0 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 timerfd_settime(tfd,.0,.&(struct
2a5e0 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 .itimerspec){{1,.0},.{1,.0}},.NU
2a600 4c 4c 29 3b 00 00 00 00 00 00 00 35 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 20 26 26 20 LL);.......5..while.(running.&&.
2a620 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 20 21 3d 20 2d 31 29 20 wl_display_dispatch(a.d).!=.-1).
2a640 7b 00 00 00 4e 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 66 64 73 5b 32 5d 20 3d {...N....struct.pollfd.pfds[2].=
2a660 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 .{{wl_display_get_fd(a.d),.POLLI
2a680 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1f 20 20 20 20 69 66 20 28 70 N},.{tfd,.POLLIN}};........if.(p
2a6a0 6f 6c 6c 28 70 66 64 73 2c 20 32 2c 20 30 29 20 3e 20 30 29 20 7b 00 00 00 25 20 20 20 20 20 20 oll(pfds,.2,.0).>.0).{...%......
2a6c0 69 66 20 28 70 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 if.(pfds[1].revents.&.POLLIN).{.
2a6e0 00 00 17 20 20 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b 00 00 00 31 20 20 ...........uint64_t.ticks;...1..
2a700 20 20 20 20 20 20 69 66 20 28 72 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 69 7a 65 ......if.(read(tfd,.&ticks,.size
2a720 6f 66 28 74 69 63 6b 73 29 29 20 3e 20 30 29 00 00 00 20 20 20 20 20 20 20 20 20 20 20 61 2e 6e of(ticks)).>.0)..............a.n
2a740 65 65 64 73 5f 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 eeds_redraw.=.true;..........}..
2a760 00 05 20 20 20 20 7d 00 00 00 17 20 20 20 20 69 66 20 28 61 2e 6e 65 65 64 73 5f 72 65 64 72 61 ......}........if.(a.needs_redra
2a780 77 29 00 00 00 11 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 w)..........render(&a);......}..
2a7a0 00 00 00 00 00 0d 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 ........close(tfd);......wl_disp
2a7c0 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e lay_disconnect(a.d);......return
2a7e0 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 fa 00 00 00 00 00 00 00 .0;....}5.......................
2a800 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 1c 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ................................
2a820 35 81 5f d0 00 00 00 21 00 00 00 23 00 00 00 00 00 00 00 00 00 00 00 22 00 00 00 01 00 00 00 00 5._....!...#..........."........
2a840 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a9a0 00 00 00 00 00 00 69 9d 9f a9 04 01 00 00 00 00 00 f5 18 00 00 00 d4 00 00 00 00 00 00 00 00 00 ......i.........................
2a9c0 00 00 01 00 00 00 01 7d f5 18 00 00 00 d5 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 cd .......}........................
2a9e0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0f 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f f5 ....................wl_display_.
2aa00 18 00 00 00 ce 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 bd 00 00 00 00 00 00 00 00 00 ................................
2aa20 00 00 01 00 00 00 01 20 f5 18 00 00 00 be 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 b5 ................................
2aa40 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0e 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c f5 18 ..................xdg_toplevel..
2aa60 00 00 00 b6 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 a9 00 00 00 00 00 00 00 00 00 00 ................................
2aa80 00 01 00 00 00 05 20 20 77 6c 5f f5 18 00 00 00 aa 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 ........wl_.....................
2aaa0 00 00 a2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 03 69 6e 74 f5 18 00 00 00 a3 00 00 00 00 ...................int..........
2aac0 00 00 00 00 00 00 00 00 f5 18 00 00 00 9a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 5b 20 20 .............................[..
2aae0 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 else.if.(!strcmp(iface,."wl_shm"
2ab00 29 29 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 )).a->shm.=.wl_registry_bind(reg
2ab20 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 f5 18 00 00 00 9b 00 ,.id,.&wl_shm_interface,........
2ab40 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 8e 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................................
2ab60 01 7d f5 18 00 00 00 8f 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 85 00 00 00 00 00 00 .}..............................
2ab80 00 00 00 00 00 01 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b f5 18 ............struct.app.*a.=.d;..
2aba0 00 00 00 86 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 72 00 00 00 00 00 00 00 00 00 00 .....................r..........
2abc0 00 01 00 00 00 04 20 20 20 20 f5 18 00 00 00 73 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 ...............s................
2abe0 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 ................................
2ac00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 72 00 00 00 ....5.......................r...
2ac20 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 f5 18 00 00 ................................
2ac40 00 00 72 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 14 00 00 00 00 0d 00 00 00 00 ..r.............................
2ac60 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 85 00 00 00 14 00 00 00 ................................
2ac80 00 00 00 00 00 00 00 00 09 00 00 00 01 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aca0 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 8e 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 0c 00 ................................
2acc0 00 00 5b 00 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 ..[.............................
2ace0 00 00 00 00 9a 00 00 00 5b 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 03 00 00 00 00 14 00 00 ........[.......................
2ad00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 a2 00 00 00 03 00 ................................
2ad20 00 00 00 00 00 00 00 00 00 00 07 00 00 00 05 00 00 00 00 15 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ad40 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 a9 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 ................................
2ad60 0c 00 00 00 0e 00 00 00 00 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 ................................
2ad80 f5 18 00 00 00 00 b5 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 01 00 00 00 00 18 ................................
2ada0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 bd 00 00 00 ................................
2adc0 01 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 0f 00 00 00 00 19 00 00 00 00 00 00 00 00 00 00 ................................
2ade0 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 cd 00 00 00 0f 00 00 00 00 00 00 00 00 00 ................................
2ae00 00 00 07 00 00 00 01 00 00 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 79 00 00 00 00 00 ..........................y.....
2ae20 00 00 35 81 5f d0 00 00 00 22 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 23 00 00 00 01 00 00 ..5._...."...$...........#......
2ae40 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ae60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ae80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2af00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2af20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2af40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2af60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2af80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2afa0 00 00 00 00 00 00 00 00 69 9d 9f ab 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 ........i.......................
2afc0 00 00 00 00 d5 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 .........#define._POSIX_C_SOURCE
2afe0 20 32 30 30 38 30 39 4c 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 .200809L....#include.<errno.h>..
2b000 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 ..#include.<fcntl.h>....#include
2b020 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 .<math.h>....#include.<poll.h>..
2b040 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 ..#include.<signal.h>....#includ
2b060 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f e.<stdbool.h>....#include.<stdio
2b080 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 .h>....#include.<stdlib.h>....#i
2b0a0 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 nclude.<string.h>....#include.<s
2b0c0 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 ys/mman.h>....#include.<sys/time
2b0e0 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 rfd.h>....#include.<time.h>....#
2b100 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c include.<unistd.h>....#include.<
2b120 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 wayland-client.h>...&#include."x
2b140 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 00 00 dg-shell-client-protocol.h".....
2b160 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 ...#ifndef.M_PI...##define.M_PI.
2b180 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 3.14159265358979323846....#endif
2b1a0 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f ....#ifndef.M_PI_2...%#define.M_
2b1c0 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 PI_2.1.57079632679489661923....#
2b1e0 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 endif.......)static.volatile.sig
2b200 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 33 73 74 61 74 69 63 _atomic_t.running.=.1;...3static
2b220 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 20 28 76 6f 69 64 29 73 3b 20 72 .void.on_sig(int.s).{.(void)s;.r
2b240 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 unning.=.0;.}........struct.app.
2b260 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a {......struct.wl_display.*d;....
2b280 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 ..struct.wl_registry.*reg;......
2b2a0 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 struct.wl_compositor.*comp;.....
2b2c0 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 .struct.wl_shm.*shm;......struct
2b2e0 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c .xdg_wm_base.*wm;......struct.wl
2b300 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 _surface.*ws;......struct.xdg_su
2b320 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 rface.*xs;......struct.xdg_tople
2b340 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 vel.*xt;......void.*pixels;.....
2b360 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 .struct.wl_buffer.*buf;......int
2b380 20 77 2c 20 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 14 .w,.h;......bool.configured;....
2b3a0 20 20 62 6f 6f 6c 20 6e 65 65 64 73 5f 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 ..bool.needs_redraw;....};......
2b3c0 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a .)static.int.create_shm_file(siz
2b3e0 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d e_t.size).{......char.template[]
2b400 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 .=."/tmp/wlclock-shm-XXXXXX";...
2b420 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 ...int.fd.=.mkstemp(template);..
2b440 00 16 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 65 78 69 74 28 31 29 3b 00 00 00 13 20 20 75 6e ....if.(fd.<.0).exit(1);......un
2b460 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 3d 20 20 69 66 20 28 66 74 72 75 6e 63 61 link(template);...=..if.(ftrunca
2b480 74 65 28 66 64 2c 20 28 6f 66 66 5f 74 29 73 69 7a 65 29 20 3c 20 30 29 20 7b 20 63 6c 6f 73 65 te(fd,.(off_t)size).<.0).{.close
2b4a0 28 66 64 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b (fd);.exit(1);.}......return.fd;
2b4c0 00 00 00 01 7d 00 00 00 00 00 00 00 2c 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 ....}.......,static.void.allocat
2b4e0 65 5f 62 75 66 66 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 30 20 20 69 e_buffer(struct.app.*a).{...0..i
2b500 66 20 28 21 61 2d 3e 73 68 6d 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 f.(!a->shm.||.a->w.<=.0.||.a->h.
2b520 3c 3d 20 30 29 20 72 65 74 75 72 6e 3b 00 00 00 0f 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b <=.0).return;......if.(a->buf).{
2b540 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 ........wl_buffer_destroy(a->buf
2b560 29 3b 00 00 00 31 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a );...1....munmap(a->pixels,.(siz
2b580 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 12 20 20 20 20 61 e_t)(a->w.*.a->h.*.4));........a
2b5a0 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 15 20 20 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d ->buf.=.NULL;........a->pixels.=
2b5c0 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d .NULL;......}...*..size_t.size.=
2b5e0 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 21 20 .(size_t)(a->w.*.a->h.*.4);...!.
2b600 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b .int.fd.=.create_shm_file(size);
2b620 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a ...J..a->pixels.=.mmap(NULL,.siz
2b640 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 e,.PROT_READ.|.PROT_WRITE,.MAP_S
2b660 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 36 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c HARED,.fd,.0);...6..if.(a->pixel
2b680 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 20 63 6c 6f 73 65 28 66 64 29 3b 20 65 78 s.==.MAP_FAILED).{.close(fd);.ex
2b6a0 69 74 28 31 29 3b 20 7d 00 00 00 4b 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c it(1);.}...K..struct.wl_shm_pool
2b6c0 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 .*pool.=.wl_shm_create_pool(a->s
2b6e0 68 6d 2c 20 66 64 2c 20 28 69 6e 74 33 32 5f 74 29 73 69 7a 65 29 3b 00 00 00 5c 20 20 61 2d 3e hm,.fd,.(int32_t)size);...\..a->
2b700 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 buf.=.wl_shm_pool_create_buffer(
2b720 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 20 57 pool,.0,.a->w,.a->h,.a->w.*.4,.W
2b740 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f L_SHM_FORMAT_ARGB8888);......wl_
2b760 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f shm_pool_destroy(pool);......clo
2b780 73 65 28 66 64 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 5f 73 74 61 74 69 63 20 76 6f 69 64 20 se(fd);....}......._static.void.
2b7a0 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 draw_line(uint32_t.*px,.int.w,.i
2b7c0 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e nt.h,.int.x0,.int.y0,.int.x1,.in
2b7e0 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 t.y1,.uint32_t.c).{.../..int.dx.
2b800 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 =.abs(x1.-.x0),.sx.=.x0.<.x1.?.1
2b820 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 .:.-1;...0..int.dy.=.-abs(y1.-.y
2b840 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 18 20 20 0),.sy.=.y0.<.y1.?.1.:.-1;......
2b860 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0d 20 20 77 68 69 6c int.err.=.dx.+.dy,.e2;......whil
2b880 65 20 28 31 29 20 7b 00 00 00 44 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 e.(1).{...D....if.(x0.>=.0.&&.x0
2b8a0 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 20 70 78 5b 79 30 .<.w.&&.y0.>=.0.&&.y0.<.h).px[y0
2b8c0 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 24 20 20 20 20 69 66 20 28 78 30 20 3d 3d .*.w.+.x0].=.c;...$....if.(x0.==
2b8e0 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 20 62 72 65 61 6b 3b 00 00 00 11 20 20 20 20 65 .x1.&&.y0.==.y1).break;........e
2b900 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 2a 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 2.=.2.*.err;...*....if.(e2.>=.dy
2b920 29 20 7b 20 65 72 72 20 2b 3d 20 64 79 3b 20 78 30 20 2b 3d 20 73 78 3b 20 7d 00 00 00 2a 20 20 ).{.err.+=.dy;.x0.+=.sx;.}...*..
2b940 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 20 65 72 72 20 2b 3d 20 64 78 3b 20 79 30 20 ..if.(e2.<=.dx).{.err.+=.dx;.y0.
2b960 2b 3d 20 73 79 3b 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 58 73 74 61 74 +=.sy;.}......}....}.......Xstat
2b980 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 ic.void.draw_circle(uint32_t.*px
2b9a0 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 ,.int.w,.int.h,.int.cx,.int.cy,.
2b9c0 69 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 int.r,.uint32_t.c).{..."..int.x.
2b9e0 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 =.0,.y.=.r,.d.=.3.-.2.*.r;......
2ba00 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 4c 20 20 20 20 69 6e 74 20 70 74 73 5b while.(y.>=.x).{...L....int.pts[
2ba20 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 2b 78 2c 20 63 79 2b 79 7d 2c 20 7b 63 78 2d 78 2c 20 63 79 8][2].=.{{cx+x,.cy+y},.{cx-x,.cy
2ba40 2b 79 7d 2c 20 7b 63 78 2b 78 2c 20 63 79 2d 79 7d 2c 20 7b 63 78 2d 78 2c 20 63 79 2d 79 7d 2c +y},.{cx+x,.cy-y},.{cx-x,.cy-y},
2ba60 00 00 00 4d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 2b 79 2c 20 ...M.....................{cx+y,.
2ba80 63 79 2b 78 7d 2c 20 7b 63 78 2d 79 2c 20 63 79 2b 78 7d 2c 20 7b 63 78 2b 79 2c 20 63 79 2d 78 cy+x},.{cx-y,.cy+x},.{cx+y,.cy-x
2baa0 7d 2c 20 7b 63 78 2d 79 2c 20 63 79 2d 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e },.{cx-y,.cy-x}};........for.(in
2bac0 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 4d 20 20 20 20 20 20 69 66 t.i.=.0;.i.<.8;.i++)...M......if
2bae0 20 28 70 74 73 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 30 5d 20 3c 20 .(pts[i][0].>=.0.&&.pts[i][0].<.
2bb00 77 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d w.&&.pts[i][1].>=.0.&&.pts[i][1]
2bb20 20 3c 20 68 29 00 00 00 2a 20 20 20 20 20 20 20 20 70 78 5b 70 74 73 5b 69 5d 5b 31 5d 20 2a 20 .<.h)...*........px[pts[i][1].*.
2bb40 77 20 2b 20 70 74 73 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 43 20 20 20 20 69 66 20 28 64 w.+.pts[i][0]].=.c;...C....if.(d
2bb60 20 3e 20 30 29 20 7b 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 20 79 .>.0).{.d.+=.4.*.(x.-.y).+.10;.y
2bb80 2d 2d 3b 20 7d 20 65 6c 73 65 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 --;.}.else.d.+=.4.*.x.+.6;......
2bba0 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 ..x++;......}....}.......#static
2bbc0 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 .void.render(struct.app.*a).{...
2bbe0 42 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d B..if.(!a->configured.||.a->w.<=
2bc00 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 20 7c 7c 20 21 61 2d 3e 73 68 6d 29 20 72 65 74 75 .0.||.a->h.<=.0.||.!a->shm).retu
2bc20 72 6e 3b 00 00 00 22 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 20 61 6c 6c 6f 63 61 74 65 5f 62 rn;..."..if.(!a->buf).allocate_b
2bc40 75 66 66 65 72 28 61 29 3b 00 00 00 19 20 20 69 66 20 28 21 61 2d 3e 70 69 78 65 6c 73 29 20 72 uffer(a);......if.(!a->pixels).r
2bc60 65 74 75 72 6e 3b 00 00 00 00 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 eturn;..........time_t.tt.=.time
2bc80 28 4e 55 4c 4c 29 3b 00 00 00 13 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 5f 62 75 66 3b 00 00 (NULL);......struct.tm.tm_buf;..
2bca0 00 1c 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 5f 62 75 66 29 3b 00 00 ....localtime_r(&tt,.&tm_buf);..
2bcc0 00 00 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 ........uint32_t.*px.=.a->pixels
2bce0 3b 00 00 00 2e 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 66 66 2c 20 28 73 69 7a 65 5f 74 29 ;......memset(px,.0xff,.(size_t)
2bd00 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 (a->w.*.a->h.*.4));...#..int.cx.
2bd20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 =.a->w./.2,.cy.=.a->h./.2;.../..
2bd40 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d int.r.=.(a->w.<.a->h.?.a->w.:.a-
2bd60 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 13 20 20 69 66 20 28 72 20 3c 20 35 29 20 72 20 >h)./.2.-.10;......if.(r.<.5).r.
2bd80 3d 20 35 3b 00 00 00 00 00 00 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 61 2d =.5;.......5..draw_circle(px,.a-
2bda0 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 >w,.a->h,.cx,.cy,.r,.0xFF000000)
2bdc0 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 ;......for.(int.i.=.0;.i.<.12;.i
2bde0 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 31 32 ++).{........double.ang.=.i./.12
2be00 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 5f 20 20 20 20 64 .0.*.2.*.M_PI.-.M_PI_2;..._....d
2be20 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 28 69 raw_line(px,.a->w,.a->h,.cx.+.(i
2be40 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 20 63 79 20 2b 20 28 nt)(cos(ang).*.(r.-.10)),.cy.+.(
2be60 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 00 00 00 5a 20 20 int)(sin(ang).*.(r.-.10)),...Z..
2be80 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 ............cx.+.(int)(cos(ang).
2bea0 2a 20 28 72 20 2d 20 32 29 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 *.(r.-.2)),.cy.+.(int)(sin(ang).
2bec0 2a 20 28 72 20 2d 20 32 29 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 *.(r.-.2)),.0xFF000000);......}.
2bee0 00 00 02 20 20 00 00 00 37 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 5f 62 75 66 2e 74 6d ........7..double.sa.=.tm_buf.tm
2bf00 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b _sec./.60.0.*.2.*.M_PI.-.M_PI_2;
2bf20 00 00 00 50 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e ...P..double.ma.=.(tm_buf.tm_min
2bf40 20 2b 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 .+.tm_buf.tm_sec./.60.0)./.60.0.
2bf60 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 5a 20 20 64 6f 75 62 6c 65 *.2.*.M_PI.-.M_PI_2;...Z..double
2bf80 20 68 61 20 3d 20 28 28 74 6d 5f 62 75 66 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 .ha.=.((tm_buf.tm_hour.%.12).+.(
2bfa0 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 tm_buf.tm_min./.60.0))./.12.0.*.
2bfc0 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 6e 20 20 64 72 61 77 2.*.M_PI.-.M_PI_2;.......n..draw
2bfe0 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 _line(px,.a->w,.a->h,.cx,.cy,.cx
2c000 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 20 63 79 20 .+.(int)(cos(ha).*.r.*.0.5),.cy.
2c020 2b 20 28 69 6e 74 29 28 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 20 30 78 46 46 +.(int)(sin(ha).*.r.*.0.5),.0xFF
2c040 30 30 30 30 30 30 29 3b 00 00 00 6e 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 000000);...n..draw_line(px,.a->w
2c060 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 6d ,.a->h,.cx,.cy,.cx.+.(int)(cos(m
2c080 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 6d 61 a).*.r.*.0.7),.cy.+.(int)(sin(ma
2c0a0 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 6e 20 20 ).*.r.*.0.7),.0xFF000000);...n..
2c0c0 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 draw_line(px,.a->w,.a->h,.cx,.cy
2c0e0 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c ,.cx.+.(int)(cos(sa).*.r.*.0.9),
2c100 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 .cy.+.(int)(sin(sa).*.r.*.0.9),.
2c120 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 0xFFFF0000);.......)..wl_surface
2c140 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 _attach(a->ws,.a->buf,.0,.0);...
2c160 34 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 4..wl_surface_damage_buffer(a->w
2c180 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 s,.0,.0,.a->w,.a->h);......wl_su
2c1a0 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 1a 20 20 61 2d 3e 6e 65 65 rface_commit(a->ws);......a->nee
2c1c0 64 73 5f 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 61 73 ds_redraw.=.false;....}.......as
2c1e0 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 tatic.void.xt_cfg(void.*d,.struc
2c200 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 t.xdg_toplevel.*xt,.int32_t.w,.i
2c220 6e 74 33 32 5f 74 20 68 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 29 20 7b nt32_t.h,.struct.wl_array.*st).{
2c240 00 00 00 28 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 20 28 76 6f 69 64 29 78 ...(..struct.app.*a.=.d;.(void)x
2c260 74 3b 20 28 76 6f 69 64 29 73 74 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 t;.(void)st;...3..if.(w.>.0.&&.h
2c280 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 .>.0.&&.(w.!=.a->w.||.h.!=.a->h)
2c2a0 29 20 7b 00 00 00 17 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 20 61 2d 3e 68 20 3d 20 68 3b 00 00 ).{........a->w.=.w;.a->h.=.h;..
2c2c0 00 11 20 20 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 22 20 20 20 20 20 20 20 20 77 ......if.(a->buf).{..."........w
2c2e0 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 35 20 20 20 l_buffer_destroy(a->buf);...5...
2c300 20 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 .....munmap(a->pixels,.(size_t)(
2c320 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 28 20 20 20 20 20 20 20 20 61 2d a->w.*.a->h.*.4));...(........a-
2c340 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 >buf.=.NULL;.a->pixels.=.NULL;..
2c360 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 ......}......}....}.......Astati
2c380 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 c.void.xs_cfg(void.*d,.struct.xd
2c3a0 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 14 g_surface.*xs,.uint32_t.s).{....
2c3c0 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 23 20 20 78 64 67 5f 73 75 ..struct.app.*a.=.d;...#..xdg_su
2c3e0 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 29 3b 00 00 00 17 20 rface_ack_configure(xs,.s);.....
2c400 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 19 20 20 61 2d 3e 6e .a->configured.=.true;......a->n
2c420 65 65 64 73 5f 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 71 eeds_redraw.=.true;....}.......q
2c440 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 static.void.registry_handler(voi
2c460 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 d.*data,.struct.wl_registry.*reg
2c480 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 ,.uint32_t.id,.const.char.*iface
2c4a0 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 ,.uint32_t.ver).{......struct.ap
2c4c0 70 20 2a 61 20 3d 20 64 61 74 61 3b 00 00 00 68 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 p.*a.=.data;...h..if.(!strcmp(if
2c4e0 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 20 61 2d 3e 63 6f 6d 70 20 3d ace,."wl_compositor")).a->comp.=
2c500 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 63 .wl_registry_bind(reg,.id,.&wl_c
2c520 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 5e 20 20 65 6c ompositor_interface,.4);...^..el
2c540 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 29 se.if.(!strcmp(iface,."wl_shm"))
2c560 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 .a->shm.=.wl_registry_bind(reg,.
2c580 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 2b 20 20 id,.&wl_shm_interface,.1);...+..
2c5a0 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f else.if.(!strcmp(iface,."xdg_wm_
2c5c0 62 61 73 65 22 29 29 20 7b 00 00 00 41 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 base")).{...A....a->wm.=.wl_regi
2c5e0 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f stry_bind(reg,.id,.&xdg_wm_base_
2c600 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 51 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e interface,.1);...Q....static.con
2c620 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 st.struct.xdg_wm_base_listener.w
2c640 6d 5f 6c 69 73 74 20 3d 20 7b 28 76 6f 69 64 2a 29 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e m_list.=.{(void*)xdg_wm_base_pon
2c660 67 7d 3b 00 00 00 31 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 g};...1....xdg_wm_base_add_liste
2c680 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 74 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 ner(a->wm,.&wm_list,.a);......}.
2c6a0 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 ...}........int.main(void).{....
2c6c0 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 17 20 20 61 2e 77 20 3d ..struct.app.a.=.{0};......a.w.=
2c6e0 20 34 30 30 3b 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 .400;.a.h.=.400;......signal(SIG
2c700 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 32 20 20 69 66 20 28 21 28 61 2e 64 20 3d 20 77 INT,.on_sig);...2..if.(!(a.d.=.w
2c720 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 29 29 20 72 65 74 75 72 6e l_display_connect(NULL))).return
2c740 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f .1;...'..a.reg.=.wl_display_get_
2c760 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 49 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 registry(a.d);...I..static.const
2c780 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 .struct.wl_registry_listener.reg
2c7a0 5f 6c 69 73 74 20 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 7d 3b 00 00 00 31 20 _list.=.{registry_handler};...1.
2c7c0 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c .wl_registry_add_listener(a.reg,
2c7e0 20 26 72 65 67 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 .&reg_list,.&a);......wl_display
2c800 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 00 00 00 00 2e 20 20 61 2e 77 73 20 3d _roundtrip(a.d);..........a.ws.=
2c820 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e .wl_compositor_create_surface(a.
2c840 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 comp);...1..a.xs.=.xdg_wm_base_g
2c860 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 3e 20 et_xdg_surface(a.wm,.a.ws);...>.
2c880 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 .static.const.struct.xdg_surface
2c8a0 5f 6c 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 73 74 20 3d 20 7b 78 73 5f 63 66 67 7d 3b 00 00 00 _listener.xs_list.=.{xs_cfg};...
2c8c0 2f 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 /..xdg_surface_add_listener(a.xs
2c8e0 2c 20 26 78 73 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 ,.&xs_list,.&a);...(..a.xt.=.xdg
2c900 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 4e _surface_get_toplevel(a.xs);...N
2c920 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 ..static.const.struct.xdg_toplev
2c940 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 20 3d 20 7b 78 74 5f 63 66 67 2c 20 28 el_listener.xt_list.=.{xt_cfg,.(
2c960 76 6f 69 64 2a 29 6f 6e 5f 73 69 67 7d 3b 00 00 00 30 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c void*)on_sig};...0..xdg_toplevel
2c980 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 2c 20 26 61 _add_listener(a.xt,.&xt_list,.&a
2c9a0 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 );...*..xdg_toplevel_set_title(a
2c9c0 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 02 20 20 00 00 00 2c 20 20 78 64 67 5f .xt,."wlclock");.........,..xdg_
2c9e0 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 69 6e 5f 73 69 7a 65 28 61 2e 78 74 2c 20 31 30 30 2c toplevel_set_min_size(a.xt,.100,
2ca00 20 31 30 30 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e .100);......wl_surface_commit(a.
2ca20 77 73 29 3b 00 00 00 00 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f ws);.......9..int.tfd.=.timerfd_
2ca40 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 create(CLOCK_MONOTONIC,.TFD_CLOE
2ca60 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 XEC);...F..timerfd_settime(tfd,.
2ca80 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 0,.&(struct.itimerspec){{1,.0},.
2caa0 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 13 20 20 77 68 69 6c 65 20 28 {1,.0}},.NULL);..........while.(
2cac0 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 running).{...-....while.(wl_disp
2cae0 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 00 00 00 29 20 lay_prepare_read(a.d).!=.0)...).
2cb00 20 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 .......wl_display_dispatch_pendi
2cb20 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 ng(a.d);........wl_display_flush
2cb40 28 61 2e 64 29 3b 00 00 00 00 00 00 00 4e 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 (a.d);.......N....struct.pollfd.
2cb60 70 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e pfds[2].=.{{wl_display_get_fd(a.
2cb80 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 20 d),.POLLIN},.{tfd,.POLLIN}};....
2cba0 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 70 66 64 73 2c 20 32 2c 20 2d 31 29 20 3e 20 30 29 20 7b ....if.(poll(pfds,.2,.-1).>.0).{
2cbc0 00 00 00 40 20 20 20 20 20 20 69 66 20 28 70 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 ...@......if.(pfds[0].revents.&.
2cbe0 50 4f 4c 4c 49 4e 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 POLLIN).wl_display_read_events(a
2cc00 2e 64 29 3b 00 00 00 27 20 20 20 20 20 20 65 6c 73 65 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 .d);...'......else.wl_display_ca
2cc20 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 06 20 20 20 20 20 20 00 00 00 25 20 20 20 ncel_read(a.d);.............%...
2cc40 20 20 20 69 66 20 28 70 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 ...if.(pfds[1].revents.&.POLLIN)
2cc60 20 7b 00 00 00 17 20 20 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b 00 00 00 .{............uint64_t.ticks;...
2cc80 48 20 20 20 20 20 20 20 20 69 66 20 28 72 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 H........if.(read(tfd,.&ticks,.s
2cca0 69 7a 65 6f 66 28 74 69 63 6b 73 29 29 20 3e 20 30 29 20 61 2e 6e 65 65 64 73 5f 72 65 64 72 61 izeof(ticks)).>.0).a.needs_redra
2ccc0 77 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 0c 20 20 20 20 7d 20 65 6c w.=.true;..........}........}.el
2cce0 73 65 20 7b 00 00 00 24 20 20 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 se.{...$........wl_display_cance
2cd00 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 l_read(a.d);........}...........
2cd20 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 %....wl_display_dispatch_pending
2cd40 28 61 2e 64 29 3b 00 00 00 23 20 20 20 20 69 66 20 28 61 2e 6e 65 65 64 73 5f 72 65 64 72 61 77 (a.d);...#....if.(a.needs_redraw
2cd60 29 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 0d 20 20 63 6c ).render(&a);......}..........cl
2cd80 6f 73 65 28 74 66 64 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e ose(tfd);......wl_display_discon
2cda0 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 nect(a.d);......return.0;....}5.
2cdc0 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 d5 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................................
2cde0 00 00 00 00 00 00 7a 1b 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 23 00 00 ......z...............5._....#..
2ce00 00 25 00 00 00 00 00 00 00 00 00 00 00 24 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 .%...........$..................
2ce20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ce40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ce60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ce80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2cea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2cec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2cee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2cf00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2cf20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2cf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2cf60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 9f ab ............................i...
2cf80 04 01 00 00 00 00 00 f5 18 00 00 00 d4 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 .............................}..
2cfa0 00 00 00 d5 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 7e 00 00 00 00 00 00 00 00 00 00 .....................~..........
2cfc0 00 01 00 00 00 0f 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 f5 18 00 00 00 7f 00 00 00 00 00 ........wl_surface_at...........
2cfe0 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 ................................
2d000 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 ...............5................
2d020 00 00 00 00 00 00 00 7e 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .......~........................
2d040 10 00 00 00 00 00 00 f5 18 00 00 00 00 7e 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 56 00 00 .............~...............V..
2d060 00 01 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 79 0b 00 00 00 00 00 00 35 81 5f .....................y.......5._
2d080 d0 00 00 00 24 00 00 00 26 00 00 00 00 00 00 00 00 00 00 00 25 00 00 00 d5 00 00 00 00 00 00 00 ....$...&...........%...........
2d0a0 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d200 00 00 00 69 9d 9f ac 04 01 00 00 00 0f 00 f5 18 00 00 00 01 00 00 01 04 00 00 00 d5 00 00 00 ce ...i............................
2d220 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 ....#include.<errno.h>....#inclu
2d240 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 de.<fcntl.h>....#include.<math.h
2d260 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 >....#include.<poll.h>....#inclu
2d280 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f de.<signal.h>....#include.<stdbo
2d2a0 6f 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 ol.h>....#include.<stdio.h>....#
2d2c0 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c include.<stdlib.h>....#include.<
2d2e0 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e string.h>....#include.<sys/mman.
2d300 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 h>....#include.<sys/timerfd.h>..
2d320 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 ..#include.<time.h>....#include.
2d340 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d <unistd.h>....#include.<wayland-
2d360 63 6c 69 65 6e 74 2e 68 3e 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c client.h>...&#include."xdg-shell
2d380 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 00 00 00 00 0c 23 69 66 6e 64 -client-protocol.h"........#ifnd
2d3a0 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 ef.M_PI...##define.M_PI.3.141592
2d3c0 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 65358979323846....#endif....#ifn
2d3e0 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 def.M_PI_2...%#define.M_PI_2.1.5
2d400 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 7079632679489661923....#endif...
2d420 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f ....)static.volatile.sig_atomic_
2d440 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 33 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e t.running.=.1;...3static.void.on
2d460 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 20 28 76 6f 69 64 29 73 3b 20 72 75 6e 6e 69 6e 67 20 3d _sig(int.s).{.(void)s;.running.=
2d480 20 30 3b 20 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 .0;.}........struct.app.{......s
2d4a0 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 truct.wl_display.*d;......struct
2d4c0 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 .wl_registry.*reg;......struct.w
2d4e0 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 l_compositor.*comp;......struct.
2d500 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f wl_shm.*shm;......struct.xdg_wm_
2d520 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 base.*wm;......struct.wl_surface
2d540 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 .*ws;......struct.xdg_surface.*x
2d560 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b s;......struct.xdg_toplevel.*xt;
2d580 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 ......void.*pixels;......struct.
2d5a0 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 wl_buffer.*buf;......int.w,.h;..
2d5c0 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 14 20 20 62 6f 6f 6c 20 6e ....bool.configured;......bool.n
2d5e0 65 65 64 73 5f 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 eeds_redraw;....};.......)static
2d600 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 .int.create_shm_file(size_t.size
2d620 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 ).{......char.template[].=."/tmp
2d640 2f 77 6c 63 6c 6f 63 6b 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 /wlclock-shm-XXXXXX";......int.f
2d660 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 16 20 20 69 66 20 28 d.=.mkstemp(template);......if.(
2d680 66 64 20 3c 20 30 29 20 65 78 69 74 28 31 29 3b 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d fd.<.0).exit(1);......unlink(tem
2d6a0 70 6c 61 74 65 29 3b 00 00 00 3d 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 28 plate);...=..if.(ftruncate(fd,.(
2d6c0 6f 66 66 5f 74 29 73 69 7a 65 29 20 3c 20 30 29 20 7b 20 63 6c 6f 73 65 28 66 64 29 3b 20 65 78 off_t)size).<.0).{.close(fd);.ex
2d6e0 69 74 28 31 29 3b 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 it(1);.}......return.fd;....}...
2d700 00 00 00 00 2c 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 ....,static.void.allocate_buffer
2d720 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 30 20 20 69 66 20 28 21 61 2d 3e 73 (struct.app.*a).{...0..if.(!a->s
2d740 68 6d 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 20 72 65 hm.||.a->w.<=.0.||.a->h.<=.0).re
2d760 74 75 72 6e 3b 00 00 00 0f 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 1e 20 20 20 20 turn;......if.(a->buf).{........
2d780 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 31 20 20 wl_buffer_destroy(a->buf);...1..
2d7a0 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e ..munmap(a->pixels,.(size_t)(a->
2d7c0 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 12 20 20 20 20 61 2d 3e 62 75 66 20 3d 20 w.*.a->h.*.4));........a->buf.=.
2d7e0 4e 55 4c 4c 3b 00 00 00 15 20 20 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 NULL;........a->pixels.=.NULL;..
2d800 00 03 20 20 7d 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 ....}...*..size_t.size.=.(size_t
2d820 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 )(a->w.*.a->h.*.4);...!..int.fd.
2d840 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d =.create_shm_file(size);...J..a-
2d860 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f >pixels.=.mmap(NULL,.size,.PROT_
2d880 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 READ.|.PROT_WRITE,.MAP_SHARED,.f
2d8a0 64 2c 20 30 29 3b 00 00 00 36 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 d,.0);...6..if.(a->pixels.==.MAP
2d8c0 5f 46 41 49 4c 45 44 29 20 7b 20 63 6c 6f 73 65 28 66 64 29 3b 20 65 78 69 74 28 31 29 3b 20 7d _FAILED).{.close(fd);.exit(1);.}
2d8e0 00 00 00 4b 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d ...K..struct.wl_shm_pool.*pool.=
2d900 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 .wl_shm_create_pool(a->shm,.fd,.
2d920 28 69 6e 74 33 32 5f 74 29 73 69 7a 65 29 3b 00 00 00 5c 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c (int32_t)size);...\..a->buf.=.wl
2d940 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c _shm_pool_create_buffer(pool,.0,
2d960 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 20 57 4c 5f 53 48 4d 5f 46 4f .a->w,.a->h,.a->w.*.4,.WL_SHM_FO
2d980 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c RMAT_ARGB8888);......wl_shm_pool
2d9a0 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 _destroy(pool);......close(fd);.
2d9c0 00 00 01 7d 00 00 00 00 00 00 00 5f 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e ...}......._static.void.draw_lin
2d9e0 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e e(uint32_t.*px,.int.w,.int.h,.in
2da00 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 75 69 t.x0,.int.y0,.int.x1,.int.y1,.ui
2da20 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 nt32_t.c).{.../..int.dx.=.abs(x1
2da40 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 .-.x0),.sx.=.x0.<.x1.?.1.:.-1;..
2da60 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d .0..int.dy.=.-abs(y1.-.y0),.sy.=
2da80 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 .y0.<.y1.?.1.:.-1;......int.err.
2daa0 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 =.dx.+.dy,.e2;......while.(1).{.
2dac0 00 00 44 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 ..D....if.(x0.>=.0.&&.x0.<.w.&&.
2dae0 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 y0.>=.0.&&.y0.<.h).px[y0.*.w.+.x
2db00 30 5d 20 3d 20 63 3b 00 00 00 24 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 0].=.c;...$....if.(x0.==.x1.&&.y
2db20 30 20 3d 3d 20 79 31 29 20 62 72 65 61 6b 3b 00 00 00 11 20 20 20 20 65 32 20 3d 20 32 20 2a 20 0.==.y1).break;........e2.=.2.*.
2db40 65 72 72 3b 00 00 00 2a 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 20 65 72 72 20 err;...*....if.(e2.>=.dy).{.err.
2db60 2b 3d 20 64 79 3b 20 78 30 20 2b 3d 20 73 78 3b 20 7d 00 00 00 2a 20 20 20 20 69 66 20 28 65 32 +=.dy;.x0.+=.sx;.}...*....if.(e2
2db80 20 3c 3d 20 64 78 29 20 7b 20 65 72 72 20 2b 3d 20 64 78 3b 20 79 30 20 2b 3d 20 73 79 3b 20 7d .<=.dx).{.err.+=.dx;.y0.+=.sy;.}
2dba0 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 58 73 74 61 74 69 63 20 76 6f 69 64 20 ......}....}.......Xstatic.void.
2dbc0 64 72 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c draw_circle(uint32_t.*px,.int.w,
2dbe0 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 .int.h,.int.cx,.int.cy,.int.r,.u
2dc00 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d int32_t.c).{..."..int.x.=.0,.y.=
2dc20 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 .r,.d.=.3.-.2.*.r;......while.(y
2dc40 20 3e 3d 20 78 29 20 7b 00 00 00 4c 20 20 20 20 69 6e 74 20 70 74 73 5b 38 5d 5b 32 5d 20 3d 20 .>=.x).{...L....int.pts[8][2].=.
2dc60 7b 7b 63 78 2b 78 2c 20 63 79 2b 79 7d 2c 20 7b 63 78 2d 78 2c 20 63 79 2b 79 7d 2c 20 7b 63 78 {{cx+x,.cy+y},.{cx-x,.cy+y},.{cx
2dc80 2b 78 2c 20 63 79 2d 79 7d 2c 20 7b 63 78 2d 78 2c 20 63 79 2d 79 7d 2c 00 00 00 4d 20 20 20 20 +x,.cy-y},.{cx-x,.cy-y},...M....
2dca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 2b 79 2c 20 63 79 2b 78 7d 2c 20 7b .................{cx+y,.cy+x},.{
2dcc0 63 78 2d 79 2c 20 63 79 2b 78 7d 2c 20 7b 63 78 2b 79 2c 20 63 79 2d 78 7d 2c 20 7b 63 78 2d 79 cx-y,.cy+x},.{cx+y,.cy-x},.{cx-y
2dce0 2c 20 63 79 2d 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b ,.cy-x}};........for.(int.i.=.0;
2dd00 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 4d 20 20 20 20 20 20 69 66 20 28 70 74 73 5b 69 5d .i.<.8;.i++)...M......if.(pts[i]
2dd20 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 74 73 [0].>=.0.&&.pts[i][0].<.w.&&.pts
2dd40 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 [i][1].>=.0.&&.pts[i][1].<.h)...
2dd60 2a 20 20 20 20 20 20 20 20 70 78 5b 70 74 73 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 74 73 5b *........px[pts[i][1].*.w.+.pts[
2dd80 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 43 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 20 i][0]].=.c;...C....if.(d.>.0).{.
2dda0 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 20 79 2d 2d 3b 20 7d 20 65 6c d.+=.4.*.(x.-.y).+.10;.y--;.}.el
2ddc0 73 65 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 se.d.+=.4.*.x.+.6;........x++;..
2dde0 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 ....}....}.......#static.void.re
2de00 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 42 20 20 69 66 20 28 21 nder(struct.app.*a).{...B..if.(!
2de20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d a->configured.||.a->w.<=.0.||.a-
2de40 3e 68 20 3c 3d 20 30 20 7c 7c 20 21 61 2d 3e 73 68 6d 29 20 72 65 74 75 72 6e 3b 00 00 00 22 20 >h.<=.0.||.!a->shm).return;...".
2de60 20 69 66 20 28 21 61 2d 3e 62 75 66 29 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 61 29 .if.(!a->buf).allocate_buffer(a)
2de80 3b 00 00 00 19 20 20 69 66 20 28 21 61 2d 3e 70 69 78 65 6c 73 29 20 72 65 74 75 72 6e 3b 00 00 ;......if.(!a->pixels).return;..
2dea0 00 00 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 ........time_t.tt.=.time(NULL);.
2dec0 00 00 13 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 5f 62 75 66 3b 00 00 00 1c 20 20 6c 6f 63 61 .....struct.tm.tm_buf;......loca
2dee0 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 5f 62 75 66 29 3b 00 00 00 00 00 00 00 1b 20 20 ltime_r(&tt,.&tm_buf);..........
2df00 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 2e 20 20 6d uint32_t.*px.=.a->pixels;......m
2df20 65 6d 73 65 74 28 70 78 2c 20 30 78 66 66 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 emset(px,.0xff,.(size_t)(a->w.*.
2df40 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f a->h.*.4));...#..int.cx.=.a->w./
2df60 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 .2,.cy.=.a->h./.2;.../..int.r.=.
2df80 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 (a->w.<.a->h.?.a->w.:.a->h)./.2.
2dfa0 2d 20 31 30 3b 00 00 00 13 20 20 69 66 20 28 72 20 3c 20 35 29 20 72 20 3d 20 35 3b 00 00 00 00 -.10;......if.(r.<.5).r.=.5;....
2dfc0 00 00 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 ...5..draw_circle(px,.a->w,.a->h
2dfe0 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 20 20 20 66 ,.cx,.cy,.r,.0xFF000000);......f
2e000 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 or.(int.i.=.0;.i.<.12;.i++).{...
2e020 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a .....double.ang.=.i./.12.0.*.2.*
2e040 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 5f 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 .M_PI.-.M_PI_2;..._....draw_line
2e060 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 (px,.a->w,.a->h,.cx.+.(int)(cos(
2e080 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e ang).*.(r.-.10)),.cy.+.(int)(sin
2e0a0 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 00 00 00 5a 20 20 20 20 20 20 20 20 20 20 (ang).*.(r.-.10)),...Z..........
2e0c0 20 20 20 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 ....cx.+.(int)(cos(ang).*.(r.-.2
2e0e0 29 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 )),.cy.+.(int)(sin(ang).*.(r.-.2
2e100 29 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 02 20 20 00 00 00 )),.0xFF000000);......}.........
2e120 37 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 7..double.sa.=.tm_buf.tm_sec./.6
2e140 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 50 20 20 64 6f 0.0.*.2.*.M_PI.-.M_PI_2;...P..do
2e160 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 5f 62 75 uble.ma.=.(tm_buf.tm_min.+.tm_bu
2e180 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f f.tm_sec./.60.0)./.60.0.*.2.*.M_
2e1a0 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 5a 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 PI.-.M_PI_2;...Z..double.ha.=.((
2e1c0 74 6d 5f 62 75 66 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 5f 62 75 66 2e 74 tm_buf.tm_hour.%.12).+.(tm_buf.t
2e1e0 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 m_min./.60.0))./.12.0.*.2.*.M_PI
2e200 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 6e 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 .-.M_PI_2;.......n..draw_line(px
2e220 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 ,.a->w,.a->h,.cx,.cy,.cx.+.(int)
2e240 28 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 (cos(ha).*.r.*.0.5),.cy.+.(int)(
2e260 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b sin(ha).*.r.*.0.5),.0xFF000000);
2e280 00 00 00 6e 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 ...n..draw_line(px,.a->w,.a->h,.
2e2a0 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a cx,.cy,.cx.+.(int)(cos(ma).*.r.*
2e2c0 20 30 2e 37 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 .0.7),.cy.+.(int)(sin(ma).*.r.*.
2e2e0 30 2e 37 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 6e 20 20 64 72 61 77 5f 6c 69 6e 0.7),.0xFF000000);...n..draw_lin
2e300 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 e(px,.a->w,.a->h,.cx,.cy,.cx.+.(
2e320 69 6e 74 29 28 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 63 79 20 2b 20 28 69 int)(cos(sa).*.r.*.0.9),.cy.+.(i
2e340 6e 74 29 28 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 30 78 46 46 46 46 30 30 nt)(sin(sa).*.r.*.0.9),.0xFFFF00
2e360 30 30 29 3b 00 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 00);.......)..wl_surface_attach(
2e380 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 a->ws,.a->buf,.0,.0);...4..wl_su
2e3a0 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c rface_damage_buffer(a->ws,.0,.0,
2e3c0 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f .a->w,.a->h);......wl_surface_co
2e3e0 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 1a 20 20 61 2d 3e 6e 65 65 64 73 5f 72 65 64 72 61 mmit(a->ws);......a->needs_redra
2e400 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 61 73 74 61 74 69 63 20 76 6f w.=.false;....}.......astatic.vo
2e420 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f id.xt_cfg(void.*d,.struct.xdg_to
2e440 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 plevel.*xt,.int32_t.w,.int32_t.h
2e460 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 29 20 7b 00 00 00 28 20 20 73 74 ,.struct.wl_array.*st).{...(..st
2e480 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 20 28 76 6f 69 64 29 78 74 3b 20 28 76 6f 69 64 ruct.app.*a.=.d;.(void)xt;.(void
2e4a0 29 73 74 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 )st;...3..if.(w.>.0.&&.h.>.0.&&.
2e4c0 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 17 20 (w.!=.a->w.||.h.!=.a->h)).{.....
2e4e0 20 20 20 61 2d 3e 77 20 3d 20 77 3b 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 11 20 20 20 20 69 66 ...a->w.=.w;.a->h.=.h;........if
2e500 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 22 20 20 20 20 20 20 20 20 77 6c 5f 62 75 66 66 65 72 .(a->buf).{..."........wl_buffer
2e520 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 35 20 20 20 20 20 20 20 20 6d 75 6e _destroy(a->buf);...5........mun
2e540 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 map(a->pixels,.(size_t)(a->w.*.a
2e560 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 28 20 20 20 20 20 20 20 20 61 2d 3e 62 75 66 20 3d 20 4e ->h.*.4));...(........a->buf.=.N
2e580 55 4c 4c 3b 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 05 20 20 20 20 7d 00 ULL;.a->pixels.=.NULL;........}.
2e5a0 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 78 .....}....}.......Astatic.void.x
2e5c0 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 s_cfg(void.*d,.struct.xdg_surfac
2e5e0 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 e.*xs,.uint32_t.s).{......struct
2e600 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 23 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 .app.*a.=.d;...#..xdg_surface_ac
2e620 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 k_configure(xs,.s);......a->conf
2e640 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 19 20 20 61 2d 3e 6e 65 65 64 73 5f 72 65 64 igured.=.true;......a->needs_red
2e660 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 71 73 74 61 74 69 63 20 76 raw.=.true;....}.......qstatic.v
2e680 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c oid.registry_handler(void.*data,
2e6a0 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 2c 20 75 69 6e 74 33 32 .struct.wl_registry.*reg,.uint32
2e6c0 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 20 75 69 6e 74 33 32 _t.id,.const.char.*iface,.uint32
2e6e0 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 _t.ver).{......struct.app.*a.=.d
2e700 61 74 61 3b 00 00 00 68 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c ata;...h..if.(!strcmp(iface,."wl
2e720 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 _compositor")).a->comp.=.wl_regi
2e740 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f stry_bind(reg,.id,.&wl_composito
2e760 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 5e 20 20 65 6c 73 65 20 69 66 20 28 21 r_interface,.4);...^..else.if.(!
2e780 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 29 20 61 2d 3e 73 68 6d 20 strcmp(iface,."wl_shm")).a->shm.
2e7a0 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f =.wl_registry_bind(reg,.id,.&wl_
2e7c0 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 2b 20 20 65 6c 73 65 20 69 66 20 shm_interface,.1);...+..else.if.
2e7e0 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 (!strcmp(iface,."xdg_wm_base")).
2e800 7b 00 00 00 41 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e {...A....a->wm.=.wl_registry_bin
2e820 64 28 72 65 67 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 d(reg,.id,.&xdg_wm_base_interfac
2e840 65 2c 20 31 29 3b 00 00 00 51 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 e,.1);...Q....static.const.struc
2e860 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 20 3d t.xdg_wm_base_listener.wm_list.=
2e880 20 7b 28 76 6f 69 64 2a 29 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 7d 3b 00 00 00 31 20 .{(void*)xdg_wm_base_pong};...1.
2e8a0 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 ...xdg_wm_base_add_listener(a->w
2e8c0 6d 2c 20 26 77 6d 5f 6c 69 73 74 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 m,.&wm_list,.a);......}....}....
2e8e0 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 73 74 72 75 63 74 ....int.main(void).{......struct
2e900 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 17 20 20 61 2e 77 20 3d 20 34 30 30 3b 20 61 2e .app.a.=.{0};......a.w.=.400;.a.
2e920 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f h.=.400;......signal(SIGINT,.on_
2e940 73 69 67 29 3b 00 00 00 32 20 20 69 66 20 28 21 28 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 sig);...2..if.(!(a.d.=.wl_displa
2e960 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 29 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 y_connect(NULL))).return.1;...'.
2e980 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 .a.reg.=.wl_display_get_registry
2e9a0 28 61 2e 64 29 3b 00 00 00 49 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 (a.d);...I..static.const.struct.
2e9c0 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 20 3d 20 wl_registry_listener.reg_list.=.
2e9e0 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 7d 3b 00 00 00 31 20 20 77 6c 5f 72 65 67 69 {registry_handler};...1..wl_regi
2ea00 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c 69 stry_add_listener(a.reg,.&reg_li
2ea20 73 74 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 st,.&a);......wl_display_roundtr
2ea40 69 70 28 61 2e 64 29 3b 00 00 00 00 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 ip(a.d);..........a.ws.=.wl_comp
2ea60 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 ositor_create_surface(a.comp);..
2ea80 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 .1..a.xs.=.xdg_wm_base_get_xdg_s
2eaa0 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 3e 20 20 73 74 61 74 69 63 20 urface(a.wm,.a.ws);...>..static.
2eac0 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 const.struct.xdg_surface_listene
2eae0 72 20 78 73 5f 6c 69 73 74 20 3d 20 7b 78 73 5f 63 66 67 7d 3b 00 00 00 2f 20 20 78 64 67 5f 73 r.xs_list.=.{xs_cfg};.../..xdg_s
2eb00 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 5f 6c 69 urface_add_listener(a.xs,.&xs_li
2eb20 73 74 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 st,.&a);...(..a.xt.=.xdg_surface
2eb40 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 4e 20 20 73 74 61 74 69 63 _get_toplevel(a.xs);...N..static
2eb60 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 .const.struct.xdg_toplevel_liste
2eb80 6e 65 72 20 78 74 5f 6c 69 73 74 20 3d 20 7b 78 74 5f 63 66 67 2c 20 28 76 6f 69 64 2a 29 6f 6e ner.xt_list.=.{xt_cfg,.(void*)on
2eba0 5f 73 69 67 7d 3b 00 00 00 30 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 _sig};...0..xdg_toplevel_add_lis
2ebc0 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 2a 20 20 tener(a.xt,.&xt_list,.&a);...*..
2ebe0 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c xdg_toplevel_set_title(a.xt,."wl
2ec00 63 6c 6f 63 6b 22 29 3b 00 00 00 02 20 20 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c clock");.........,..xdg_toplevel
2ec20 5f 73 65 74 5f 6d 69 6e 5f 73 69 7a 65 28 61 2e 78 74 2c 20 31 30 30 2c 20 31 30 30 29 3b 00 00 _set_min_size(a.xt,.100,.100);..
2ec40 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 00 ....wl_surface_commit(a.ws);....
2ec60 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 ...9..int.tfd.=.timerfd_create(C
2ec80 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 LOCK_MONOTONIC,.TFD_CLOEXEC);...
2eca0 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 F..timerfd_settime(tfd,.0,.&(str
2ecc0 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c uct.itimerspec){{1,.0},.{1,.0}},
2ece0 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 .NULL);..........while.(running)
2ed00 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 .{...-....while.(wl_display_prep
2ed20 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 00 00 00 29 20 20 20 20 20 20 20 20 77 are_read(a.d).!=.0)...)........w
2ed40 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b l_display_dispatch_pending(a.d);
2ed60 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 ........wl_display_flush(a.d);..
2ed80 00 00 00 00 00 4e 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 66 64 73 5b 32 5d 20 .....N....struct.pollfd.pfds[2].
2eda0 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c =.{{wl_display_get_fd(a.d),.POLL
2edc0 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 20 20 20 20 20 69 66 20 28 IN},.{tfd,.POLLIN}};........if.(
2ede0 70 6f 6c 6c 28 70 66 64 73 2c 20 32 2c 20 2d 31 29 20 3e 20 30 29 20 7b 00 00 00 40 20 20 20 20 poll(pfds,.2,.-1).>.0).{...@....
2ee00 20 20 69 66 20 28 70 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 ..if.(pfds[0].revents.&.POLLIN).
2ee20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 00 00 00 27 wl_display_read_events(a.d);...'
2ee40 20 20 20 20 20 20 65 6c 73 65 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 ......else.wl_display_cancel_rea
2ee60 64 28 61 2e 64 29 3b 00 00 00 06 20 20 20 20 20 20 00 00 00 25 20 20 20 20 20 20 69 66 20 28 70 d(a.d);.............%......if.(p
2ee80 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 17 20 20 fds[1].revents.&.POLLIN).{......
2eea0 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b 00 00 00 48 20 20 20 20 20 20 20 ......uint64_t.ticks;...H.......
2eec0 20 69 66 20 28 72 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 69 7a 65 6f 66 28 74 69 .if.(read(tfd,.&ticks,.sizeof(ti
2eee0 63 6b 73 29 29 20 3e 20 30 29 20 61 2e 6e 65 65 64 73 5f 72 65 64 72 61 77 20 3d 20 74 72 75 65 cks)).>.0).a.needs_redraw.=.true
2ef00 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 0c 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 24 ;..........}........}.else.{...$
2ef20 20 20 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 ........wl_display_cancel_read(a
2ef40 2e 64 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 25 20 20 20 20 77 6c 5f .d);........}...........%....wl_
2ef60 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 display_dispatch_pending(a.d);..
2ef80 00 23 20 20 20 20 69 66 20 28 61 2e 6e 65 65 64 73 5f 72 65 64 72 61 77 29 20 72 65 6e 64 65 72 .#....if.(a.needs_redraw).render
2efa0 28 26 61 29 3b 35 81 f5 18 00 00 00 00 01 00 00 00 09 00 00 00 cd 00 00 00 17 00 00 00 01 01 00 (&a);5..........................
2efc0 00 05 00 00 00 29 00 00 00 00 00 00 00 05 1b 00 00 00 00 00 00 9c 1c 00 00 00 00 00 00 35 81 5f .....).......................5._
2efe0 d0 00 00 00 25 00 00 00 27 00 00 00 00 00 00 00 00 00 00 00 26 00 00 00 01 00 00 00 00 00 00 00 ....%...'...........&...........
2f000 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f140 00 00 01 00 00 00 00 00 00 00 00 00 00 01 09 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 ..........................V.....
2f160 00 00 00 69 9d a0 69 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 09 ...i..i.........................
2f180 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 ....#define._POSIX_C_SOURCE.2008
2f1a0 30 39 4c 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 09L...&#include."xdg-shell-clien
2f1c0 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f t-protocol.h"....#include.<errno
2f1e0 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e .h>....#include.<fcntl.h>....#in
2f200 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c clude.<math.h>....#include.<poll
2f220 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 .h>....#include.<signal.h>....#i
2f240 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c nclude.<stdbool.h>....#include.<
2f260 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 stdio.h>....#include.<stdlib.h>.
2f280 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 ...#include.<string.h>....#inclu
2f2a0 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 de.<sys/mman.h>....#include.<sys
2f2c0 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e /timerfd.h>....#include.<time.h>
2f2e0 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c ....#include.<unistd.h>....#incl
2f300 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 ude.<wayland-client.h>........#i
2f320 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 fndef.M_PI...##define.M_PI.3.141
2f340 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 59265358979323846....#endif....#
2f360 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 ifndef.M_PI_2...%#define.M_PI_2.
2f380 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 1.57079632679489661923....#endif
2f3a0 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d .......)static.volatile.sig_atom
2f3c0 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 ic_t.running.=.1;....static.void
2f3e0 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 .on_sig(int.s).{......(void)s;..
2f400 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 ....running.=.0;....}........str
2f420 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 uct.app.{......struct.wl_display
2f440 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 .*d;......struct.wl_registry.*re
2f460 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f g;......struct.wl_compositor.*co
2f480 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 mp;......struct.wl_shm.*shm;....
2f4a0 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 ..struct.xdg_wm_base.*wm;......s
2f4c0 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 truct.wl_surface.*ws;......struc
2f4e0 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 t.xdg_surface.*xs;......struct.x
2f500 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 dg_toplevel.*xt;......void.*pixe
2f520 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 ls;......struct.wl_buffer.*buf;.
2f540 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 .....int.w,.h;......bool.configu
2f560 72 65 64 3b 00 00 00 14 20 20 62 6f 6f 6c 20 6e 65 65 64 73 5f 72 65 64 72 61 77 3b 00 00 00 02 red;......bool.needs_redraw;....
2f580 7d 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f };.......)static.int.create_shm_
2f5a0 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 file(size_t.size).{......char.te
2f5c0 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 73 68 6d 2d 58 58 58 mplate[].=."/tmp/wlclock-shm-XXX
2f5e0 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 XXX";......int.fd.=.mkstemp(temp
2f600 6c 61 74 65 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 late);......if.(fd.<.0)........e
2f620 78 69 74 28 31 29 3b 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 xit(1);......unlink(template);..
2f640 00 27 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 28 6f 66 66 5f 74 29 73 69 7a .'..if.(ftruncate(fd,.(off_t)siz
2f660 65 29 20 3c 20 30 29 20 7b 00 00 00 0e 20 20 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0c 20 e).<.0).{........close(fd);.....
2f680 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 ...exit(1);......}......return.f
2f6a0 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2c 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 d;....}.......,static.void.alloc
2f6c0 61 74 65 5f 62 75 66 66 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 28 20 ate_buffer(struct.app.*a).{...(.
2f6e0 20 69 66 20 28 21 61 2d 3e 73 68 6d 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e .if.(!a->shm.||.a->w.<=.0.||.a->
2f700 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0f 20 20 69 66 20 28 h.<=.0)........return;......if.(
2f720 61 2d 3e 62 75 66 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 a->buf).{........wl_buffer_destr
2f740 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 31 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 oy(a->buf);...1....munmap(a->pix
2f760 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b els,.(size_t)(a->w.*.a->h.*.4));
2f780 00 00 00 12 20 20 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 15 20 20 20 20 61 2d ........a->buf.=.NULL;........a-
2f7a0 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 2a 20 20 73 69 7a 65 >pixels.=.NULL;......}...*..size
2f7c0 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a _t.size.=.(size_t)(a->w.*.a->h.*
2f7e0 20 34 29 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 .4);...!..int.fd.=.create_shm_fi
2f800 6c 65 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 le(size);...J..a->pixels.=.mmap(
2f820 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 NULL,.size,.PROT_READ.|.PROT_WRI
2f840 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 20 20 20 69 66 20 TE,.MAP_SHARED,.fd,.0);......if.
2f860 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 00 0e 20 (a->pixels.==.MAP_FAILED).{.....
2f880 20 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 ...close(fd);........exit(1);...
2f8a0 03 20 20 7d 00 00 00 4b 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f ...}...K..struct.wl_shm_pool.*po
2f8c0 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 ol.=.wl_shm_create_pool(a->shm,.
2f8e0 66 64 2c 20 28 69 6e 74 33 32 5f 74 29 73 69 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 75 66 20 fd,.(int32_t)size);...C..a->buf.
2f900 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c =.wl_shm_pool_create_buffer(pool
2f920 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d 20 20 ,.0,.a->w,.a->h,.a->w.*.4,...=..
2f940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2f960 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 ...WL_SHM_FORMAT_ARGB8888);.....
2f980 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 .wl_shm_pool_destroy(pool);.....
2f9a0 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 .close(fd);....}.......Istatic.v
2f9c0 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 oid.draw_line(uint32_t.*px,.int.
2f9e0 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 w,.int.h,.int.x0,.int.y0,.int.x1
2fa00 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 79 ,...+......................int.y
2fa20 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 1,.uint32_t.c).{.../..int.dx.=.a
2fa40 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 bs(x1.-.x0),.sx.=.x0.<.x1.?.1.:.
2fa60 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c -1;...0..int.dy.=.-abs(y1.-.y0),
2fa80 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 18 20 20 69 6e 74 .sy.=.y0.<.y1.?.1.:.-1;......int
2faa0 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 .err.=.dx.+.dy,.e2;......while.(
2fac0 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 1).{.../....if.(x0.>=.0.&&.x0.<.
2fae0 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 1a 20 20 20 20 20 w.&&.y0.>=.0.&&.y0.<.h).........
2fb00 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 1d 20 20 20 20 69 66 20 .px[y0.*.w.+.x0].=.c;........if.
2fb20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 20 (x0.==.x1.&&.y0.==.y1)..........
2fb40 62 72 65 61 6b 3b 00 00 00 11 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 13 20 break;........e2.=.2.*.err;.....
2fb60 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 ...if.(e2.>=.dy).{..........err.
2fb80 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 +=.dy;..........x0.+=.sx;.......
2fba0 20 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 20 20 .}........if.(e2.<=.dx).{.......
2fbc0 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b ...err.+=.dx;..........y0.+=.sy;
2fbe0 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 ........}......}....}.......Jsta
2fc00 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 tic.void.draw_circle(uint32_t.*p
2fc20 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c x,.int.w,.int.h,.int.cx,.int.cy,
2fc40 20 69 6e 74 20 72 2c 00 00 00 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .int.r,...%.....................
2fc60 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c ...uint32_t.c).{..."..int.x.=.0,
2fc80 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c .y.=.r,.d.=.3.-.2.*.r;......whil
2fca0 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 4a 20 20 20 20 69 6e 74 20 70 74 73 5b 38 5d 5b 32 e.(y.>=.x).{...J....int.pts[8][2
2fcc0 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 ].=.{{cx.+.x,.cy.+.y},.{cx.-.x,.
2fce0 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 4a 20 20 cy.+.y},.{cx.+.x,.cy.-.y},...J..
2fd00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d ...................{cx.-.x,.cy.-
2fd20 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 .y},.{cx.+.y,.cy.+.x},.{cx.-.y,.
2fd40 63 79 20 2b 20 78 7d 2c 00 00 00 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cy.+.x},...9....................
2fd60 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d .{cx.+.y,.cy.-.x},.{cx.-.y,.cy.-
2fd80 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c .x}};........for.(int.i.=.0;.i.<
2fda0 20 38 3b 20 69 2b 2b 29 00 00 00 4d 20 20 20 20 20 20 69 66 20 28 70 74 73 5b 69 5d 5b 30 5d 20 .8;.i++)...M......if.(pts[i][0].
2fdc0 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 74 73 5b 69 5d 5b >=.0.&&.pts[i][0].<.w.&&.pts[i][
2fde0 31 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 2a 20 20 20 1].>=.0.&&.pts[i][1].<.h)...*...
2fe00 20 20 20 20 20 70 78 5b 70 74 73 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 74 73 5b 69 5d 5b 30 .....px[pts[i][1].*.w.+.pts[i][0
2fe20 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 ]].=.c;........if.(d.>.0).{.....
2fe40 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 .....d.+=.4.*.(x.-.y).+.10;.....
2fe60 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 .....y--;........}.else.........
2fe80 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 .d.+=.4.*.x.+.6;........x++;....
2fea0 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 ..}....}.......#static.void.rend
2fec0 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 3a 20 20 69 66 20 28 21 61 2d er(struct.app.*a).{...:..if.(!a-
2fee0 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 >configured.||.a->w.<=.0.||.a->h
2ff00 20 3c 3d 20 30 20 7c 7c 20 21 61 2d 3e 73 68 6d 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b .<=.0.||.!a->shm)........return;
2ff20 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 17 20 20 20 20 61 6c 6c 6f 63 61 ......if.(!a->buf)........alloca
2ff40 74 65 5f 62 75 66 66 65 72 28 61 29 3b 00 00 00 11 20 20 69 66 20 28 21 61 2d 3e 70 69 78 65 6c te_buffer(a);......if.(!a->pixel
2ff60 73 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 00 00 00 00 19 20 20 74 69 6d 65 5f s)........return;..........time_
2ff80 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 13 20 20 73 74 72 75 63 74 20 74 t.tt.=.time(NULL);......struct.t
2ffa0 6d 20 74 6d 5f 62 75 66 3b 00 00 00 1c 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 m.tm_buf;......localtime_r(&tt,.
2ffc0 26 74 6d 5f 62 75 66 29 3b 00 00 00 00 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 &tm_buf);..........uint32_t.*px.
2ffe0 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 2e 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 66 =.a->pixels;......memset(px,.0xf
30000 66 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 f,.(size_t)(a->w.*.a->h.*.4));..
30020 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 .#..int.cx.=.a->w./.2,.cy.=.a->h
30040 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 ./.2;.../..int.r.=.(a->w.<.a->h.
30060 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 66 ?.a->w.:.a->h)./.2.-.10;......if
30080 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 35 20 20 .(r.<.5)........r.=.5;.......5..
300a0 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 draw_circle(px,.a->w,.a->h,.cx,.
300c0 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e cy,.r,.0xFF000000);......for.(in
300e0 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 t.i.=.0;.i.<.12;.i++).{........d
30100 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 ouble.ang.=.i./.12.0.*.2.*.M_PI.
30120 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 3e 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 -.M_PI_2;...>....draw_line(px,.a
30140 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a ->w,.a->h,.cx.+.(int)(cos(ang).*
30160 20 28 72 20 2d 20 31 30 29 29 2c 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 .(r.-.10)),...N..............cy.
30180 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 20 63 78 +.(int)(sin(ang).*.(r.-.10)),.cx
301a0 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 00 00 00 .+.(int)(cos(ang).*.(r.-.2)),...
301c0 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e :..............cy.+.(int)(sin(an
301e0 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 g).*.(r.-.2)),.0xFF000000);.....
30200 20 7d 00 00 00 00 00 00 00 37 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 5f 62 75 66 2e 74 .}.......7..double.sa.=.tm_buf.t
30220 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 m_sec./.60.0.*.2.*.M_PI.-.M_PI_2
30240 3b 00 00 00 50 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 ;...P..double.ma.=.(tm_buf.tm_mi
30260 6e 20 2b 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 n.+.tm_buf.tm_sec./.60.0)./.60.0
30280 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c .*.2.*.M_PI.-.M_PI_2;......doubl
302a0 65 20 68 61 20 3d 00 00 00 4a 20 20 20 20 20 20 28 28 74 6d 5f 62 75 66 2e 74 6d 5f 68 6f 75 72 e.ha.=...J......((tm_buf.tm_hour
302c0 20 25 20 31 32 29 20 2b 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 .%.12).+.(tm_buf.tm_min./.60.0))
302e0 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 00 00 00 0d 20 20 20 20 20 20 4d 5f ./.12.0.*.2.*.M_PI.-..........M_
30300 50 49 5f 32 3b 00 00 00 00 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e PI_2;.......B..draw_line(px,.a->
30320 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 w,.a->h,.cx,.cy,.cx.+.(int)(cos(
30340 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 63 ha).*.r.*.0.5),...7............c
30360 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 20 30 78 y.+.(int)(sin(ha).*.r.*.0.5),.0x
30380 46 46 30 30 30 30 30 30 29 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d FF000000);...B..draw_line(px,.a-
303a0 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 >w,.a->h,.cx,.cy,.cx.+.(int)(cos
303c0 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 (ma).*.r.*.0.7),...7............
303e0 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 20 30 cy.+.(int)(sin(ma).*.r.*.0.7),.0
30400 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 xFF000000);...B..draw_line(px,.a
30420 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f ->w,.a->h,.cx,.cy,.cx.+.(int)(co
30440 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 s(sa).*.r.*.0.9),...7...........
30460 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 .cy.+.(int)(sin(sa).*.r.*.0.9),.
30480 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 0xFFFF0000);.......)..wl_surface
304a0 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 _attach(a->ws,.a->buf,.0,.0);...
304c0 34 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 4..wl_surface_damage_buffer(a->w
304e0 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 s,.0,.0,.a->w,.a->h);......wl_su
30500 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 1a 20 20 61 2d 3e 6e 65 65 rface_commit(a->ws);......a->nee
30520 64 73 5f 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 ds_redraw.=.false;....}.......Js
30540 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 tatic.void.xt_cfg(void.*d,.struc
30560 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 t.xdg_toplevel.*xt,.int32_t.w,.i
30580 6e 74 33 32 5f 74 20 68 2c 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt32_t.h,...)...................
305a0 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 29 20 7b 00 00 00 14 20 20 73 74 72 75 struct.wl_array.*st).{......stru
305c0 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 0b 20 20 28 76 6f 69 64 29 78 74 3b 00 00 00 ct.app.*a.=.d;......(void)xt;...
305e0 0b 20 20 28 76 6f 69 64 29 73 74 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 ...(void)st;...3..if.(w.>.0.&&.h
30600 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 .>.0.&&.(w.!=.a->w.||.h.!=.a->h)
30620 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 ).{........a->w.=.w;........a->h
30640 20 3d 20 68 3b 00 00 00 11 20 20 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 20 20 20 .=.h;........if.(a->buf).{......
30660 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 ....wl_buffer_destroy(a->buf);..
30680 00 33 20 20 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f .3......munmap(a->pixels,.(size_
306a0 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 14 20 20 20 20 20 20 61 t)(a->w.*.a->h.*.4));..........a
306c0 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 17 20 20 20 20 20 20 61 2d 3e 70 69 78 65 6c 73 ->buf.=.NULL;..........a->pixels
306e0 20 3d 20 4e 55 4c 4c 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 .=.NULL;........}......}....}...
30700 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c ....Astatic.void.xs_cfg(void.*d,
30720 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f .struct.xdg_surface.*xs,.uint32_
30740 74 20 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 t.s).{......struct.app.*a.=.d;..
30760 00 23 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 .#..xdg_surface_ack_configure(xs
30780 2c 20 73 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b ,.s);......a->configured.=.true;
307a0 00 00 00 19 20 20 61 2d 3e 6e 65 65 64 73 5f 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 ......a->needs_redraw.=.true;...
307c0 01 7d 00 00 00 00 00 00 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 .}.......Nstatic.void.registry_h
307e0 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 andler(void.*data,.struct.wl_reg
30800 69 73 74 72 79 20 2a 72 65 67 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 3f 20 20 20 20 istry.*reg,.uint32_t.id,...?....
30820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 .........................const.c
30840 68 61 72 20 2a 69 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 har.*iface,.uint32_t.ver).{.....
30860 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 61 74 61 3b 00 00 00 26 20 20 69 66 20 28 .struct.app.*a.=.data;...&..if.(
30880 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 !strcmp(iface,."wl_compositor"))
308a0 00 00 00 45 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 ...E....a->comp.=.wl_registry_bi
308c0 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 nd(reg,.id,.&wl_compositor_inter
308e0 66 61 63 65 2c 20 34 29 3b 00 00 00 24 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 face,.4);...$..else.if.(!strcmp(
30900 69 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3d 20 20 20 20 61 2d 3e 73 68 6d 20 iface,."wl_shm"))...=....a->shm.
30920 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f =.wl_registry_bind(reg,.id,.&wl_
30940 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 2b 20 20 65 6c 73 65 20 69 66 20 shm_interface,.1);...+..else.if.
30960 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 (!strcmp(iface,."xdg_wm_base")).
30980 7b 00 00 00 41 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e {...A....a->wm.=.wl_registry_bin
309a0 64 28 72 65 67 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 d(reg,.id,.&xdg_wm_base_interfac
309c0 65 2c 20 31 29 3b 00 00 00 38 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 e,.1);...8....static.const.struc
309e0 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 20 3d t.xdg_wm_base_listener.wm_list.=
30a00 20 7b 00 00 00 22 20 20 20 20 20 20 20 20 28 76 6f 69 64 20 2a 29 78 64 67 5f 77 6d 5f 62 61 73 .{..."........(void.*)xdg_wm_bas
30a20 65 5f 70 6f 6e 67 7d 3b 00 00 00 31 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f e_pong};...1....xdg_wm_base_add_
30a40 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 74 2c 20 61 29 3b 00 00 00 listener(a->wm,.&wm_list,.a);...
30a60 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 ...}....}........int.main(void).
30a80 7b 00 00 00 15 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 {......struct.app.a.=.{0};......
30aa0 61 2e 77 20 3d 20 34 30 30 3b 00 00 00 0c 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 a.w.=.400;......a.h.=.400;......
30ac0 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 28 20 20 69 66 20 signal(SIGINT,.on_sig);...(..if.
30ae0 28 21 28 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c (!(a.d.=.wl_display_connect(NULL
30b00 29 29 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 )))........return.1;...'..a.reg.
30b20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 =.wl_display_get_registry(a.d);.
30b40 00 00 49 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 ..I..static.const.struct.wl_regi
30b60 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 20 3d 20 7b 72 65 67 69 73 74 stry_listener.reg_list.=.{regist
30b80 72 79 5f 68 61 6e 64 6c 65 72 7d 3b 00 00 00 31 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 ry_handler};...1..wl_registry_ad
30ba0 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c 69 73 74 2c 20 26 61 29 d_listener(a.reg,.&reg_list,.&a)
30bc0 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 ;......wl_display_roundtrip(a.d)
30be0 3b 00 00 00 00 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f ;..........a.ws.=.wl_compositor_
30c00 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 create_surface(a.comp);...1..a.x
30c20 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 s.=.xdg_wm_base_get_xdg_surface(
30c40 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 3e 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 a.wm,.a.ws);...>..static.const.s
30c60 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 truct.xdg_surface_listener.xs_li
30c80 73 74 20 3d 20 7b 78 73 5f 63 66 67 7d 3b 00 00 00 2f 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f st.=.{xs_cfg};.../..xdg_surface_
30ca0 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 5f 6c 69 73 74 2c 20 26 61 29 add_listener(a.xs,.&xs_list,.&a)
30cc0 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f ;...(..a.xt.=.xdg_surface_get_to
30ce0 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 4f 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 plevel(a.xs);...O..static.const.
30d00 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f struct.xdg_toplevel_listener.xt_
30d20 6c 69 73 74 20 3d 20 7b 78 74 5f 63 66 67 2c 20 28 76 6f 69 64 20 2a 29 6f 6e 5f 73 69 67 7d 3b list.=.{xt_cfg,.(void.*)on_sig};
30d40 00 00 00 30 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 ...0..xdg_toplevel_add_listener(
30d60 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f a.xt,.&xt_list,.&a);...*..xdg_to
30d80 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 plevel_set_title(a.xt,."wlclock"
30da0 29 3b 00 00 00 00 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 69 6e );.......,..xdg_toplevel_set_min
30dc0 5f 73 69 7a 65 28 61 2e 78 74 2c 20 31 30 30 2c 20 31 30 30 29 3b 00 00 00 1a 20 20 77 6c 5f 73 _size(a.xt,.100,.100);......wl_s
30de0 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 00 00 00 00 39 20 20 69 6e urface_commit(a.ws);.......9..in
30e00 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e t.tfd.=.timerfd_create(CLOCK_MON
30e20 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 OTONIC,.TFD_CLOEXEC);...F..timer
30e40 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d fd_settime(tfd,.0,.&(struct.itim
30e60 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 erspec){{1,.0},.{1,.0}},.NULL);.
30e80 00 00 00 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 .........while.(running).{...-..
30ea0 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 ..while.(wl_display_prepare_read
30ec0 28 61 2e 64 29 20 21 3d 20 30 29 00 00 00 27 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f (a.d).!=.0)...'......wl_display_
30ee0 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c dispatch_pending(a.d);........wl
30f00 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 00 00 00 00 4e 20 20 20 20 _display_flush(a.d);.......N....
30f20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 struct.pollfd.pfds[2].=.{{wl_dis
30f40 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c play_get_fd(a.d),.POLLIN},.{tfd,
30f60 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 20 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 70 66 64 73 2c .POLLIN}};........if.(poll(pfds,
30f80 20 32 2c 20 2d 31 29 20 3e 20 30 29 20 7b 00 00 00 23 20 20 20 20 20 20 69 66 20 28 70 66 64 73 .2,.-1).>.0).{...#......if.(pfds
30fa0 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 24 20 20 20 20 20 20 20 [0].revents.&.POLLIN)...$.......
30fc0 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 00 00 00 .wl_display_read_events(a.d);...
30fe0 0a 20 20 20 20 20 20 65 6c 73 65 00 00 00 24 20 20 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 .......else...$........wl_displa
31000 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 00 00 00 00 25 20 20 20 20 20 y_cancel_read(a.d);.......%.....
31020 20 69 66 20 28 70 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b .if.(pfds[1].revents.&.POLLIN).{
31040 00 00 00 17 20 20 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b 00 00 00 31 20 ............uint64_t.ticks;...1.
31060 20 20 20 20 20 20 20 69 66 20 28 72 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 69 7a .......if.(read(tfd,.&ticks,.siz
31080 65 6f 66 28 74 69 63 6b 73 29 29 20 3e 20 30 29 00 00 00 20 20 20 20 20 20 20 20 20 20 20 61 2e eof(ticks)).>.0)..............a.
310a0 6e 65 65 64 73 5f 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 needs_redraw.=.true;..........}.
310c0 00 00 0c 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 .......}.else.{..."......wl_disp
310e0 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 05 20 20 20 20 7d 00 00 lay_cancel_read(a.d);........}..
31100 00 00 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 .....%....wl_display_dispatch_pe
31120 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 17 20 20 20 20 69 66 20 28 61 2e 6e 65 65 64 73 5f 72 nding(a.d);........if.(a.needs_r
31140 65 64 72 61 77 29 00 00 00 11 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 edraw)..........render(&a);.....
31160 20 7d 00 00 00 00 00 00 00 0d 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 1d 20 20 77 6c 5f .}..........close(tfd);......wl_
31180 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 display_disconnect(a.d);......re
311a0 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 09 01 00 00 turn.0;....}5...................
311c0 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 1d 00 00 00 00 00 00 01 00 00 00 ................................
311e0 00 00 00 00 35 81 5f d0 00 00 00 26 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 27 00 00 00 01 ....5._....&...(...........'....
31200 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
312a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
312c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
312e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31340 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 ................................
31360 00 56 00 00 00 00 00 00 00 00 69 9d a0 6a 04 01 00 00 00 00 00 f5 18 00 00 01 09 00 00 00 00 00 .V........i..j..................
31380 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 01 0a 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 ................................
313a0 00 01 06 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1b 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f .....................wl_display_
313c0 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 f5 18 00 00 01 07 00 00 00 00 00 00 00 00 00 00 00 00 disconnect(a.d..................
313e0 f5 18 00 00 00 e9 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 06 20 20 74 69 6d 65 f5 18 00 00 ........................time....
31400 00 ea 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 dd 00 00 00 00 00 00 00 00 00 00 00 01 ................................
31420 00 00 00 00 f5 18 00 00 00 de 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 d5 00 00 00 00 ................................
31440 00 00 00 00 00 00 00 01 00 00 00 28 20 20 69 66 20 28 21 28 61 2e 64 20 3d 20 77 6c 5f 64 69 73 ...........(..if.(!(a.d.=.wl_dis
31460 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 29 29 f5 18 00 00 00 d6 00 00 00 00 00 00 play_connect(NULL)))............
31480 00 00 00 00 00 00 f5 18 00 00 00 bf 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 ................................
314a0 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 97 00 00 00 00 00 00 00 00 00 00 00 01 ................................
314c0 00 00 00 04 20 20 64 6f f5 18 00 00 00 98 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 ......do........................
314e0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 ................................
31500 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97 00 00 00 04 00 ..5.............................
31520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 f5 18 00 00 00 00 ................................
31540 97 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 ................(...............
31560 00 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 f5 18 00 00 00 00 bf 00 00 00 00 00 00 00 00 00 ................................
31580 00 00 00 00 00 00 16 00 00 00 28 00 00 00 00 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 ..........(.....................
315a0 00 00 00 00 00 00 f5 18 00 00 00 00 d5 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 ................(...............
315c0 00 00 00 00 00 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 ................................
315e0 00 00 dd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 06 00 00 00 00 18 00 00 00 00 ................................
31600 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 e9 00 00 00 06 00 00 00 ................................
31620 00 00 00 00 00 00 00 00 1d 00 00 00 1b 00 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31640 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 06 01 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 03 00 ................................
31660 00 00 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 35 81 ..............................5.
31680 5f d0 00 00 00 27 00 00 00 29 00 00 00 00 00 00 00 00 00 00 00 28 00 00 01 0a 00 00 00 00 00 00 _....'...)...........(..........
316a0 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
316c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
316e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
317a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
317c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
317e0 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 ...........................V....
31800 00 00 00 00 69 9d a0 6a 04 01 00 00 00 10 00 f5 18 00 00 01 09 00 00 00 00 00 00 00 00 00 00 00 ....i..j........................
31820 01 00 00 00 00 35 81 f5 18 00 00 00 00 09 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .....5..........................
31840 00 00 00 00 00 11 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 ................................
31860 00 00 00 09 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 1d 00 00 00 ................................
31880 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 28 00 00 00 2a 00 ...................5._....(...*.
318a0 00 00 00 00 00 00 00 00 00 00 29 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 ..........).....................
318c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
318e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
319a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
319c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
319e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ................................
31a00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 69 9d a0 be 04 01 00 ................V........i......
31a20 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 09 00 00 00 1f 23 64 65 66 69 6e ..........................#defin
31a40 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 00 26 23 69 6e e._POSIX_C_SOURCE.200809L...&#in
31a60 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c clude."xdg-shell-client-protocol
31a80 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e .h"....#include.<errno.h>....#in
31aa0 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 clude.<fcntl.h>....#include.<mat
31ac0 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e h.h>....#include.<poll.h>....#in
31ae0 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 clude.<signal.h>....#include.<st
31b00 64 62 6f 6f 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 dbool.h>....#include.<stdio.h>..
31b20 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 ..#include.<stdlib.h>....#includ
31b40 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d e.<string.h>....#include.<sys/mm
31b60 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 an.h>....#include.<sys/timerfd.h
31b80 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 >....#include.<time.h>....#inclu
31ba0 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 de.<unistd.h>....#include.<wayla
31bc0 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 nd-client.h>........#ifndef.M_PI
31be0 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 ...##define.M_PI.3.1415926535897
31c00 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 9323846....#endif....#ifndef.M_P
31c20 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 I_2...%#define.M_PI_2.1.57079632
31c40 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 679489661923....#endif.......)st
31c60 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 atic.volatile.sig_atomic_t.runni
31c80 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e ng.=.1;....static.void.on_sig(in
31ca0 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e t.s).{......(void)s;......runnin
31cc0 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 g.=.0;....}........struct.app.{.
31ce0 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 .....struct.wl_display.*d;......
31d00 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 struct.wl_registry.*reg;......st
31d20 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 ruct.wl_compositor.*comp;......s
31d40 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 truct.wl_shm.*shm;......struct.x
31d60 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 dg_wm_base.*wm;......struct.wl_s
31d80 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 urface.*ws;......struct.xdg_surf
31da0 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 ace.*xs;......struct.xdg_topleve
31dc0 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 l.*xt;......void.*pixels;......s
31de0 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 truct.wl_buffer.*buf;......int.w
31e00 2c 20 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 14 20 20 ,.h;......bool.configured;......
31e20 62 6f 6f 6c 20 6e 65 65 64 73 5f 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 29 bool.needs_redraw;....};.......)
31e40 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f static.int.create_shm_file(size_
31e60 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d t.size).{......char.template[].=
31e80 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1d 20 ."/tmp/wlclock-shm-XXXXXX";.....
31ea0 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 0d .int.fd.=.mkstemp(template);....
31ec0 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 ..if.(fd.<.0)........exit(1);...
31ee0 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 27 20 20 69 66 20 28 66 74 ...unlink(template);...'..if.(ft
31f00 72 75 6e 63 61 74 65 28 66 64 2c 20 28 6f 66 66 5f 74 29 73 69 7a 65 29 20 3c 20 30 29 20 7b 00 runcate(fd,.(off_t)size).<.0).{.
31f20 00 00 0e 20 20 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 .......close(fd);........exit(1)
31f40 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 ;......}......return.fd;....}...
31f60 00 00 00 00 2c 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 ....,static.void.allocate_buffer
31f80 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 28 20 20 69 66 20 28 21 61 2d 3e 73 (struct.app.*a).{...(..if.(!a->s
31fa0 68 6d 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 hm.||.a->w.<=.0.||.a->h.<=.0)...
31fc0 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0f 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 .....return;......if.(a->buf).{.
31fe0 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 .......wl_buffer_destroy(a->buf)
32000 3b 00 00 00 31 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 ;...1....munmap(a->pixels,.(size
32020 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 12 20 20 20 20 61 2d _t)(a->w.*.a->h.*.4));........a-
32040 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 15 20 20 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 >buf.=.NULL;........a->pixels.=.
32060 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 NULL;......}...*..size_t.size.=.
32080 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 21 20 20 (size_t)(a->w.*.a->h.*.4);...!..
320a0 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 int.fd.=.create_shm_file(size);.
320c0 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 ..J..a->pixels.=.mmap(NULL,.size
320e0 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 ,.PROT_READ.|.PROT_WRITE,.MAP_SH
32100 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 20 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 ARED,.fd,.0);......if.(a->pixels
32120 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 00 0e 20 20 20 20 63 6c 6f 73 65 28 66 .==.MAP_FAILED).{........close(f
32140 64 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 4b 20 20 d);........exit(1);......}...K..
32160 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 struct.wl_shm_pool.*pool.=.wl_sh
32180 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 28 69 6e 74 33 32 m_create_pool(a->shm,.fd,.(int32
321a0 5f 74 29 73 69 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 _t)size);...C..a->buf.=.wl_shm_p
321c0 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c ool_create_buffer(pool,.0,.a->w,
321e0 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 .a->h,.a->w.*.4,...=............
32200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f .........................WL_SHM_
32220 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f FORMAT_ARGB8888);......wl_shm_po
32240 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 ol_destroy(pool);......close(fd)
32260 3b 00 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c ;....}.......Istatic.void.draw_l
32280 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 ine(uint32_t.*px,.int.w,.int.h,.
322a0 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 00 00 00 2b 20 20 20 20 20 int.x0,.int.y0,.int.x1,...+.....
322c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f .................int.y1,.uint32_
322e0 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 t.c).{.../..int.dx.=.abs(x1.-.x0
32300 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 ),.sx.=.x0.<.x1.?.1.:.-1;...0..i
32320 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c nt.dy.=.-abs(y1.-.y0),.sy.=.y0.<
32340 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 .y1.?.1.:.-1;......int.err.=.dx.
32360 2b 20 64 79 2c 20 65 32 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 2f 20 20 +.dy,.e2;......while.(1).{.../..
32380 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d ..if.(x0.>=.0.&&.x0.<.w.&&.y0.>=
323a0 20 30 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 1a 20 20 20 20 20 20 70 78 5b 79 30 20 2a 20 77 .0.&&.y0.<.h)..........px[y0.*.w
323c0 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 .+.x0].=.c;........if.(x0.==.x1.
323e0 26 26 20 79 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 11 &&.y0.==.y1)..........break;....
32400 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 ....e2.=.2.*.err;........if.(e2.
32420 3e 3d 20 64 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f >=.dy).{..........err.+=.dy;....
32440 20 20 20 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 ......x0.+=.sx;........}........
32460 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 if.(e2.<=.dx).{..........err.+=.
32480 64 78 3b 00 00 00 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 dx;..........y0.+=.sy;........}.
324a0 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 64 .....}....}.......Jstatic.void.d
324c0 72 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 raw_circle(uint32_t.*px,.int.w,.
324e0 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 int.h,.int.cx,.int.cy,.int.r,...
32500 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f %........................uint32_
32520 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 t.c).{..."..int.x.=.0,.y.=.r,.d.
32540 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 =.3.-.2.*.r;......while.(y.>=.x)
32560 20 7b 00 00 00 4a 20 20 20 20 69 6e 74 20 70 74 73 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b .{...J....int.pts[8][2].=.{{cx.+
32580 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b .x,.cy.+.y},.{cx.-.x,.cy.+.y},.{
325a0 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 4a 20 20 20 20 20 20 20 20 20 20 20 20 cx.+.x,.cy.-.y},...J............
325c0 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b .........{cx.-.x,.cy.-.y},.{cx.+
325e0 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 .y,.cy.+.x},.{cx.-.y,.cy.+.x},..
32600 00 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 .9.....................{cx.+.y,.
32620 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 cy.-.x},.{cx.-.y,.cy.-.x}};.....
32640 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 ...for.(int.i.=.0;.i.<.8;.i++)..
32660 00 4d 20 20 20 20 20 20 69 66 20 28 70 74 73 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 74 .M......if.(pts[i][0].>=.0.&&.pt
32680 73 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 s[i][0].<.w.&&.pts[i][1].>=.0.&&
326a0 20 70 74 73 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 2a 20 20 20 20 20 20 20 20 70 78 5b 70 74 .pts[i][1].<.h)...*........px[pt
326c0 73 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 74 73 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 s[i][1].*.w.+.pts[i][0]].=.c;...
326e0 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 .....if.(d.>.0).{..........d.+=.
32700 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 4.*.(x.-.y).+.10;..........y--;.
32720 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 .......}.else..........d.+=.4.*.
32740 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 x.+.6;........x++;......}....}..
32760 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 .....#static.void.render(struct.
32780 61 70 70 20 2a 61 29 20 7b 00 00 00 3a 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 app.*a).{...:..if.(!a->configure
327a0 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 20 7c 7c 20 21 d.||.a->w.<=.0.||.a->h.<=.0.||.!
327c0 61 2d 3e 73 68 6d 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 a->shm)........return;......if.(
327e0 21 61 2d 3e 62 75 66 29 00 00 00 17 20 20 20 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 !a->buf)........allocate_buffer(
32800 61 29 3b 00 00 00 11 20 20 69 66 20 28 21 61 2d 3e 70 69 78 65 6c 73 29 00 00 00 0b 20 20 20 20 a);......if.(!a->pixels)........
32820 72 65 74 75 72 6e 3b 00 00 00 00 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d return;..........time_t.tt.=.tim
32840 65 28 4e 55 4c 4c 29 3b 00 00 00 13 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 5f 62 75 66 3b 00 e(NULL);......struct.tm.tm_buf;.
32860 00 00 1c 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 5f 62 75 66 29 3b 00 .....localtime_r(&tt,.&tm_buf);.
32880 00 00 00 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c .........uint32_t.*px.=.a->pixel
328a0 73 3b 00 00 00 2e 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 66 66 2c 20 28 73 69 7a 65 5f 74 s;......memset(px,.0xff,.(size_t
328c0 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 )(a->w.*.a->h.*.4));...#..int.cx
328e0 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 .=.a->w./.2,.cy.=.a->h./.2;.../.
32900 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 .int.r.=.(a->w.<.a->h.?.a->w.:.a
32920 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 66 20 28 72 20 3c 20 35 29 00 00 ->h)./.2.-.10;......if.(r.<.5)..
32940 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c ......r.=.5;.......5..draw_circl
32960 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 e(px,.a->w,.a->h,.cx,.cy,.r,.0xF
32980 46 30 30 30 30 30 30 29 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 F000000);......for.(int.i.=.0;.i
329a0 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 .<.12;.i++).{........double.ang.
329c0 3d 20 69 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 =.i./.12.0.*.2.*.M_PI.-.M_PI_2;.
329e0 00 00 3e 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c ..>....draw_line(px,.a->w,.a->h,
32a00 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 .cx.+.(int)(cos(ang).*.(r.-.10))
32a20 2c 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 ,...N..............cy.+.(int)(si
32a40 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 29 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 n(ang).*.(r.-.10)),.cx.+.(int)(c
32a60 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 29 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 os(ang).*.(r.-.2)),...:.........
32a80 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 .....cy.+.(int)(sin(ang).*.(r.-.
32aa0 32 29 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 37 2)),.0xFF000000);......}.......7
32ac0 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 ..double.sa.=.tm_buf.tm_sec./.60
32ae0 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 50 20 20 64 6f 75 .0.*.2.*.M_PI.-.M_PI_2;...P..dou
32b00 62 6c 65 20 6d 61 20 3d 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 5f 62 75 66 ble.ma.=.(tm_buf.tm_min.+.tm_buf
32b20 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 .tm_sec./.60.0)./.60.0.*.2.*.M_P
32b40 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 4a I.-.M_PI_2;......double.ha.=...J
32b60 20 20 20 20 20 20 28 28 74 6d 5f 62 75 66 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 ......((tm_buf.tm_hour.%.12).+.(
32b80 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 tm_buf.tm_min./.60.0))./.12.0.*.
32ba0 32 20 2a 20 4d 5f 50 49 20 2d 00 00 00 0d 20 20 20 20 20 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 2.*.M_PI.-..........M_PI_2;.....
32bc0 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 ..B..draw_line(px,.a->w,.a->h,.c
32be0 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 x,.cy,.cx.+.(int)(cos(ha).*.r.*.
32c00 30 2e 35 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 0.5),...7............cy.+.(int)(
32c20 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b sin(ha).*.r.*.0.5),.0xFF000000);
32c40 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 ...B..draw_line(px,.a->w,.a->h,.
32c60 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a cx,.cy,.cx.+.(int)(cos(ma).*.r.*
32c80 20 30 2e 37 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 .0.7),...7............cy.+.(int)
32ca0 28 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 (sin(ma).*.r.*.0.7),.0xFF000000)
32cc0 3b 00 00 00 42 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c ;...B..draw_line(px,.a->w,.a->h,
32ce0 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 63 6f 73 28 73 61 29 20 2a 20 72 20 .cx,.cy,.cx.+.(int)(cos(sa).*.r.
32d00 2a 20 30 2e 39 29 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 *.0.9),...7............cy.+.(int
32d20 29 28 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 29 2c 20 30 78 46 46 46 46 30 30 30 30 )(sin(sa).*.r.*.0.9),.0xFFFF0000
32d40 29 3b 00 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d );.......)..wl_surface_attach(a-
32d60 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 >ws,.a->buf,.0,.0);...4..wl_surf
32d80 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 ace_damage_buffer(a->ws,.0,.0,.a
32da0 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d ->w,.a->h);......wl_surface_comm
32dc0 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 1a 20 20 61 2d 3e 6e 65 65 64 73 5f 72 65 64 72 61 77 20 it(a->ws);......a->needs_redraw.
32de0 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 =.false;....}.......Jstatic.void
32e00 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c .xt_cfg(void.*d,.struct.xdg_topl
32e20 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 evel.*xt,.int32_t.w,.int32_t.h,.
32e40 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f ..)...................struct.wl_
32e60 61 72 72 61 79 20 2a 73 74 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 array.*st).{......struct.app.*a.
32e80 3d 20 64 3b 00 00 00 0b 20 20 28 76 6f 69 64 29 78 74 3b 00 00 00 0b 20 20 28 76 6f 69 64 29 73 =.d;......(void)xt;......(void)s
32ea0 74 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 t;...3..if.(w.>.0.&&.h.>.0.&&.(w
32ec0 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 0d 20 20 20 .!=.a->w.||.h.!=.a->h)).{.......
32ee0 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 11 20 .a->w.=.w;........a->h.=.h;.....
32f00 20 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 20 20 20 20 20 20 20 77 6c 5f 62 75 66 ...if.(a->buf).{..........wl_buf
32f20 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 33 20 20 20 20 20 20 6d 75 fer_destroy(a->buf);...3......mu
32f40 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 nmap(a->pixels,.(size_t)(a->w.*.
32f60 61 2d 3e 68 20 2a 20 34 29 29 3b 00 00 00 14 20 20 20 20 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 a->h.*.4));..........a->buf.=.NU
32f80 4c 4c 3b 00 00 00 17 20 20 20 20 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 LL;..........a->pixels.=.NULL;..
32fa0 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 ......}......}....}.......Astati
32fc0 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 c.void.xs_cfg(void.*d,.struct.xd
32fe0 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 29 20 7b 00 00 00 14 g_surface.*xs,.uint32_t.s).{....
33000 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 23 20 20 78 64 67 5f 73 75 ..struct.app.*a.=.d;...#..xdg_su
33020 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 29 3b 00 00 00 17 20 rface_ack_configure(xs,.s);.....
33040 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 19 20 20 61 2d 3e 6e .a->configured.=.true;......a->n
33060 65 65 64 73 5f 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4e eeds_redraw.=.true;....}.......N
33080 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 static.void.registry_handler(voi
330a0 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 d.*data,.struct.wl_registry.*reg
330c0 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.uint32_t.id,...?..............
330e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 ...............const.char.*iface
33100 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 ,.uint32_t.ver).{......struct.ap
33120 70 20 2a 61 20 3d 20 64 61 74 61 3b 00 00 00 26 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 p.*a.=.data;...&..if.(!strcmp(if
33140 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 45 20 20 20 20 61 2d ace,."wl_compositor"))...E....a-
33160 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 >comp.=.wl_registry_bind(reg,.id
33180 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 ,.&wl_compositor_interface,.4);.
331a0 00 00 24 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c ..$..else.if.(!strcmp(iface,."wl
331c0 5f 73 68 6d 22 29 29 00 00 00 3d 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 _shm"))...=....a->shm.=.wl_regis
331e0 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 try_bind(reg,.id,.&wl_shm_interf
33200 61 63 65 2c 20 31 29 3b 00 00 00 2b 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 ace,.1);...+..else.if.(!strcmp(i
33220 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 41 20 20 20 20 61 face,."xdg_wm_base")).{...A....a
33240 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c ->wm.=.wl_registry_bind(reg,.id,
33260 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 38 .&xdg_wm_base_interface,.1);...8
33280 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 ....static.const.struct.xdg_wm_b
332a0 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 20 3d 20 7b 00 00 00 22 20 20 20 20 ase_listener.wm_list.=.{..."....
332c0 20 20 20 20 28 76 6f 69 64 20 2a 29 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 7d 3b 00 00 ....(void.*)xdg_wm_base_pong};..
332e0 00 31 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 .1....xdg_wm_base_add_listener(a
33300 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 74 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 ->wm,.&wm_list,.a);......}....}.
33320 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 73 74 72 .......int.main(void).{......str
33340 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d 20 34 30 30 3b uct.app.a.=.{0};......a.w.=.400;
33360 00 00 00 0c 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 ......a.h.=.400;......signal(SIG
33380 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 28 20 20 69 66 20 28 21 28 61 2e 64 20 3d 20 77 INT,.on_sig);...(..if.(!(a.d.=.w
333a0 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 29 29 00 00 00 0d 20 20 20 l_display_connect(NULL))).......
333c0 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c .return.1;...'..a.reg.=.wl_displ
333e0 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 49 20 20 73 74 61 74 69 ay_get_registry(a.d);...I..stati
33400 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 c.const.struct.wl_registry_liste
33420 6e 65 72 20 72 65 67 5f 6c 69 73 74 20 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 ner.reg_list.=.{registry_handler
33440 7d 3b 00 00 00 31 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 };...1..wl_registry_add_listener
33460 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f (a.reg,.&reg_list,.&a);......wl_
33480 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 00 00 00 00 2e 20 display_roundtrip(a.d);.........
334a0 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 .a.ws.=.wl_compositor_create_sur
334c0 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d face(a.comp);...1..a.xs.=.xdg_wm
334e0 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 _base_get_xdg_surface(a.wm,.a.ws
33500 29 3b 00 00 00 3e 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f );...>..static.const.struct.xdg_
33520 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 73 74 20 3d 20 7b 78 73 5f 63 surface_listener.xs_list.=.{xs_c
33540 66 67 7d 3b 00 00 00 2f 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e fg};.../..xdg_surface_add_listen
33560 65 72 28 61 2e 78 73 2c 20 26 78 73 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 er(a.xs,.&xs_list,.&a);...(..a.x
33580 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 t.=.xdg_surface_get_toplevel(a.x
335a0 73 29 3b 00 00 00 4f 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 s);...O..static.const.struct.xdg
335c0 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 20 3d 20 7b 78 74 _toplevel_listener.xt_list.=.{xt
335e0 5f 63 66 67 2c 20 28 76 6f 69 64 20 2a 29 6f 6e 5f 73 69 67 7d 3b 00 00 00 30 20 20 78 64 67 5f _cfg,.(void.*)on_sig};...0..xdg_
33600 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f toplevel_add_listener(a.xt,.&xt_
33620 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 list,.&a);...*..xdg_toplevel_set
33640 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 00 00 00 00 2c _title(a.xt,."wlclock");.......,
33660 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 69 6e 5f 73 69 7a 65 28 61 2e 78 74 ..xdg_toplevel_set_min_size(a.xt
33680 2c 20 31 30 30 2c 20 31 30 30 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d ,.100,.100);......wl_surface_com
336a0 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 00 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 mit(a.ws);.......9..int.tfd.=.ti
336c0 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 merfd_create(CLOCK_MONOTONIC,.TF
336e0 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 D_CLOEXEC);...F..timerfd_settime
33700 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 (tfd,.0,.&(struct.itimerspec){{1
33720 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 13 20 20 77 ,.0},.{1,.0}},.NULL);..........w
33740 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c 65 20 28 77 hile.(running).{...-....while.(w
33760 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 l_display_prepare_read(a.d).!=.0
33780 29 00 00 00 27 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 )...'......wl_display_dispatch_p
337a0 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 ending(a.d);........wl_display_f
337c0 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 00 00 00 00 4e 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c lush(a.d);.......N....struct.pol
337e0 6c 66 64 20 70 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 lfd.pfds[2].=.{{wl_display_get_f
33800 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b d(a.d),.POLLIN},.{tfd,.POLLIN}};
33820 00 00 00 20 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 70 66 64 73 2c 20 32 2c 20 2d 31 29 20 3e 20 ........if.(poll(pfds,.2,.-1).>.
33840 30 29 20 7b 00 00 00 23 20 20 20 20 20 20 69 66 20 28 70 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 0).{...#......if.(pfds[0].revent
33860 73 20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 24 20 20 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 s.&.POLLIN)...$........wl_displa
33880 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 00 00 00 0a 20 20 20 20 20 20 65 6c 73 y_read_events(a.d);..........els
338a0 65 00 00 00 24 20 20 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 e...$........wl_display_cancel_r
338c0 65 61 64 28 61 2e 64 29 3b 00 00 00 00 00 00 00 25 20 20 20 20 20 20 69 66 20 28 70 66 64 73 5b ead(a.d);.......%......if.(pfds[
338e0 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 17 20 20 20 20 20 20 1].revents.&.POLLIN).{..........
33900 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b 00 00 00 31 20 20 20 20 20 20 20 20 69 66 20 ..uint64_t.ticks;...1........if.
33920 28 72 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 69 7a 65 6f 66 28 74 69 63 6b 73 29 (read(tfd,.&ticks,.sizeof(ticks)
33940 29 20 3e 20 30 29 00 00 00 20 20 20 20 20 20 20 20 20 20 20 61 2e 6e 65 65 64 73 5f 72 65 64 72 ).>.0)..............a.needs_redr
33960 61 77 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 0c 20 20 20 20 7d 20 65 aw.=.true;..........}........}.e
33980 6c 73 65 20 7b 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c lse.{..."......wl_display_cancel
339a0 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 25 20 20 20 20 _read(a.d);........}.......%....
339c0 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 wl_display_dispatch_pending(a.d)
339e0 3b 00 00 00 17 20 20 20 20 69 66 20 28 61 2e 6e 65 65 64 73 5f 72 65 64 72 61 77 29 00 00 00 11 ;........if.(a.needs_redraw)....
33a00 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 0d ......render(&a);......}........
33a20 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 ..close(tfd);......wl_display_di
33a40 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 sconnect(a.d);......return.0;...
33a60 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 09 01 00 00 00 00 00 00 01 00 00 00 00 00 .}5.............................
33a80 00 00 00 00 00 00 00 00 00 00 11 1d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 ..........................5._...
33aa0 00 29 00 00 00 2b 00 00 00 00 00 00 00 00 00 00 00 2a 00 00 00 01 00 00 00 00 00 00 00 00 ff ff .)...+...........*..............
33ac0 ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ................................
33c00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 .......................V........
33c20 69 9d a0 bf 04 01 00 00 00 00 00 f5 18 00 00 01 29 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 i...............)...............
33c40 01 7d f5 18 00 00 01 2a 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 19 00 00 00 00 00 00 .}.....*........................
33c60 00 00 00 00 00 01 00 00 00 12 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 f5 18 00 00 ................wl_display_d....
33c80 01 1a 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 0c 00 00 00 00 00 00 00 00 00 00 00 01 ................................
33ca0 00 00 00 1c 20 20 20 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c ........&(struct.itimerspec){{1,
33cc0 f5 18 00 00 01 0d 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 f9 00 00 00 00 00 00 00 00 ................................
33ce0 00 00 00 01 00 00 00 05 20 20 73 74 61 f5 18 00 00 00 fa 00 00 00 00 00 00 00 00 00 00 00 00 f5 ..........sta...................
33d00 18 00 00 00 ef 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 14 20 20 73 74 61 74 69 63 20 63 6f .......................static.co
33d20 6e 73 74 20 73 74 72 75 63 f5 18 00 00 00 f0 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 nst.struc.......................
33d40 da 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0b 20 20 20 20 20 20 20 20 20 20 20 f5 18 00 00 ................................
33d60 00 db 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 d2 00 00 00 00 00 00 00 00 00 00 00 01 ................................
33d80 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...)............................
33da0 20 75 69 6e 74 33 32 5f 74 20 76 65 72 f5 18 00 00 00 d3 00 00 00 00 00 00 00 00 00 00 00 00 f5 .uint32_t.ver...................
33dc0 18 00 00 00 bf 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 2c 20 20 69 66 20 28 77 20 3e 20 30 ....................,..if.(w.>.0
33de0 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 .&&.h.>.0.&&.(w.!=.a->w.||.h.!=.
33e00 61 f5 18 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 b7 00 00 00 00 00 00 00 a...............................
33e20 00 00 00 00 01 00 00 00 21 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f ........!static.void.xt_close(vo
33e40 69 64 20 2a 64 61 74 61 2c 20 f5 18 00 00 00 b8 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 id.*data,.......................
33e60 00 93 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 15 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 ....................draw_circle(
33e80 70 78 2c 20 61 2d 3e f5 18 00 00 00 94 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 75 00 px,.a->.......................u.
33ea0 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0c 20 20 20 20 69 6e 74 20 70 74 73 5b f5 18 00 00 00 ...................int.pts[.....
33ec0 76 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 58 00 00 00 00 00 00 00 00 00 00 00 01 00 v.................X.............
33ee0 00 00 13 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 f5 18 00 00 00 59 00 00 00 00 .....wl_shm_pool_destr.....Y....
33f00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 ................................
33f20 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 ................5...............
33f40 00 00 00 00 00 00 00 00 58 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........X.......................
33f60 00 08 00 00 00 00 00 00 f5 18 00 00 00 00 58 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 1d 00 ..............X.................
33f80 00 00 0c 00 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 ................................
33fa0 00 00 00 00 75 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 15 00 00 00 00 0b 00 00 ....u...........................
33fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 93 00 00 00 15 00 ................................
33fe0 00 00 00 00 00 00 00 00 00 00 24 00 00 00 21 00 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 ..........$...!.................
34000 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 b7 00 00 00 21 00 00 00 00 00 00 00 00 00 00 00 ....................!...........
34020 08 00 00 00 2c 00 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 ....,...........................
34040 f5 18 00 00 00 00 bf 00 00 00 2c 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 29 00 00 00 00 13 ..........,...............).....
34060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 d2 00 00 00 ................................
34080 29 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 0b 00 00 00 00 15 00 00 00 00 00 00 00 00 00 00 )...............................
340a0 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 da 00 00 00 0b 00 00 00 00 00 00 00 00 00 ................................
340c0 00 00 15 00 00 00 14 00 00 00 00 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 ................................
340e0 00 00 f5 18 00 00 00 00 ef 00 00 00 14 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 05 00 00 00 ................................
34100 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 f9 00 ................................
34120 00 00 05 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 1c 00 00 00 00 19 00 00 00 00 00 00 00 00 ................................
34140 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 0c 01 00 00 1c 00 00 00 00 00 00 00 ................................
34160 00 00 00 00 0d 00 00 00 12 00 00 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ................................
34180 00 00 00 00 f5 18 00 00 00 00 19 01 00 00 12 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 01 00 ................................
341a0 00 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 01 00 00 00 00 00 00 35 81 5f d0 00 00 ..........................5._...
341c0 00 2a 00 00 00 2c 00 00 00 00 00 00 00 00 00 00 00 2b 00 00 01 2a 00 00 00 00 00 00 00 00 ff ff .*...,...........+...*..........
341e0 ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
342a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
342c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
342e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ................................
34320 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 .......................V........
34340 69 9d a0 c0 04 01 00 00 00 11 00 f5 18 00 00 00 19 00 00 01 07 00 00 01 2a 00 00 00 fc 00 00 00 i.......................*.......
34360 33 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 20 28 76 6f 3static.void.on_sig(int.s).{.(vo
34380 69 64 29 73 3b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 0c 73 74 72 75 id)s;.running.=.0;.}........stru
343a0 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 ct.app.{......struct.wl_display.
343c0 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 *d;......struct.wl_registry.*reg
343e0 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d ;......struct.wl_compositor.*com
34400 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 p;......struct.wl_shm.*shm;.....
34420 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 .struct.xdg_wm_base.*wm;......st
34440 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 ruct.wl_surface.*ws;......struct
34460 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 .xdg_surface.*xs;......struct.xd
34480 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 00 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 g_toplevel.*xt;..........void.*p
344a0 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 ixels;......struct.wl_buffer.*bu
344c0 66 3b 00 00 00 00 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 35 20 20 69 6e 74 20 62 f;..........int.w,.h;...5..int.b
344e0 75 66 5f 77 2c 20 62 75 66 5f 68 3b 20 20 20 2f 2f 20 e2 86 90 20 74 72 61 63 6b 20 61 63 74 75 uf_w,.buf_h;...//.....track.actu
34500 61 6c 20 62 75 66 66 65 72 20 73 69 7a 65 00 00 00 00 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e al.buffer.size..........bool.con
34520 66 69 67 75 72 65 64 3b 00 00 00 14 20 20 62 6f 6f 6c 20 6e 65 65 64 73 5f 72 65 64 72 61 77 3b figured;......bool.needs_redraw;
34540 00 00 00 02 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e ....};.......Jstatic.void.wm_pin
34560 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 g(void.*data,.struct.xdg_wm_base
34580 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 .*wm,.uint32_t.serial).{......xd
345a0 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d g_wm_base_pong(wm,.serial);....}
345c0 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 .......)static.int.create_shm_fi
345e0 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 le(size_t.size).{......char.temp
34600 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 73 68 6d 2d 58 58 58 58 58 late[].=."/tmp/wlclock-shm-XXXXX
34620 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 X";......int.fd.=.mkstemp(templa
34640 74 65 29 3b 00 00 00 16 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 65 78 69 74 28 31 29 3b 00 00 te);......if.(fd.<.0).exit(1);..
34660 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 27 20 20 69 66 20 28 66 ....unlink(template);...'..if.(f
34680 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 65 78 69 74 28 31 29 3b truncate(fd,.size).<.0).exit(1);
346a0 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2b 73 74 61 ......return.fd;....}.......+sta
346c0 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 66 65 72 28 73 74 72 75 63 74 20 61 tic.void.destroy_buffer(struct.a
346e0 70 70 20 2a 61 29 20 7b 00 00 00 16 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 20 72 65 74 75 72 pp.*a).{......if.(!a->buf).retur
34700 6e 3b 00 00 00 00 00 00 00 32 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f n;.......2..size_t.size.=.(size_
34720 74 29 28 61 2d 3e 62 75 66 5f 77 20 2a 20 61 2d 3e 62 75 66 5f 68 20 2a 20 34 29 3b 00 00 00 1c t)(a->buf_w.*.a->buf_h.*.4);....
34740 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a ..wl_buffer_destroy(a->buf);....
34760 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 00 00 00 ..munmap(a->pixels,.size);......
34780 00 10 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 20 20 61 2d 3e 70 69 78 65 6c ....a->buf.=.NULL;......a->pixel
347a0 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2c 73 74 61 74 69 63 20 76 6f 69 s.=.NULL;....}.......,static.voi
347c0 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 d.allocate_buffer(struct.app.*a)
347e0 20 7b 00 00 00 14 20 20 64 65 73 74 72 6f 79 5f 62 75 66 66 65 72 28 61 29 3b 00 00 00 00 00 00 .{......destroy_buffer(a);......
34800 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 .*..size_t.size.=.(size_t)(a->w.
34820 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 *.a->h.*.4);...!..int.fd.=.creat
34840 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 00 00 00 00 4a 20 20 61 2d 3e 70 69 e_shm_file(size);.......J..a->pi
34860 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 xels.=.mmap(NULL,.size,.PROT_REA
34880 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 D.|.PROT_WRITE,.MAP_SHARED,.fd,.
348a0 30 29 3b 00 00 00 27 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 0);...'..if.(a->pixels.==.MAP_FA
348c0 49 4c 45 44 29 20 65 78 69 74 28 31 29 3b 00 00 00 00 00 00 00 1c 20 20 73 74 72 75 63 74 20 77 ILED).exit(1);..........struct.w
348e0 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 00 00 00 2b 20 20 20 20 20 20 77 6c 5f 73 l_shm_pool.*pool.=...+......wl_s
34900 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 hm_create_pool(a->shm,.fd,.size)
34920 3b 00 00 00 00 00 00 00 2d 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f ;.......-..a->buf.=.wl_shm_pool_
34940 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 00 00 00 30 20 20 20 20 20 20 create_buffer(pool,.0,...0......
34960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 ...............................a
34980 2d 3e 77 2c 20 61 2d 3e 68 2c 00 00 00 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ->w,.a->h,......................
349a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d ...................a->w.*.4,...=
349c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
349e0 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 .....WL_SHM_FORMAT_ARGB8888);...
34a00 00 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 .......wl_shm_pool_destroy(pool)
34a20 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 00 00 00 00 12 20 20 61 2d 3e 62 75 ;......close(fd);..........a->bu
34a40 66 5f 77 20 3d 20 61 2d 3e 77 3b 00 00 00 12 20 20 61 2d 3e 62 75 66 5f 68 20 3d 20 61 2d 3e 68 f_w.=.a->w;......a->buf_h.=.a->h
34a60 3b 00 00 00 01 7d 00 00 00 00 00 00 00 31 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c ;....}.......1static.void.draw_l
34a80 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 00 ine(uint32_t.*px,.int.w,.int.h,.
34aa0 00 00 35 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 78 30 2c ..5......................int.x0,
34ac0 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 23 20 20 20 20 .int.y0,.int.x1,.int.y1,...#....
34ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 ..................uint32_t.c).{.
34b00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d ../..int.dx.=.abs(x1.-.x0),.sx.=
34b20 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d .x0.<.x1.?.1.:.-1;...0..int.dy.=
34b40 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 .-abs(y1.-.y0),.sy.=.y0.<.y1.?.1
34b60 20 3a 20 2d 31 3b 00 00 00 14 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 3b 00 00 .:.-1;......int.err.=.dx.+.dy;..
34b80 00 00 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 ........while.(1).{.../....if.(x
34ba0 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 0.>=.0.&&.x0.<.w.&&.y0.>=.0.&&.y
34bc0 30 20 3c 20 68 29 00 00 00 1a 20 20 20 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 0.<.h)..........px[y0.*.w.+.x0].
34be0 3d 20 63 3b 00 00 00 24 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d =.c;...$....if.(x0.==.x1.&&.y0.=
34c00 3d 20 79 31 29 20 62 72 65 61 6b 3b 00 00 00 15 20 20 20 20 69 6e 74 20 65 32 20 3d 20 32 20 2a =.y1).break;........int.e2.=.2.*
34c20 20 65 72 72 3b 00 00 00 2a 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 20 65 72 72 .err;...*....if.(e2.>=.dy).{.err
34c40 20 2b 3d 20 64 79 3b 20 78 30 20 2b 3d 20 73 78 3b 20 7d 00 00 00 2a 20 20 20 20 69 66 20 28 65 .+=.dy;.x0.+=.sx;.}...*....if.(e
34c60 32 20 3c 3d 20 64 78 29 20 7b 20 65 72 72 20 2b 3d 20 64 78 3b 20 79 30 20 2b 3d 20 73 79 3b 20 2.<=.dx).{.err.+=.dx;.y0.+=.sy;.
34c80 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 33 73 74 61 74 69 63 20 76 6f 69 64 }......}....}.......3static.void
34ca0 20 64 72 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 .draw_circle(uint32_t.*px,.int.w
34cc0 2c 20 69 6e 74 20 68 2c 00 00 00 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.int.h,........................
34ce0 20 20 20 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 25 20 20 ....int.cx,.int.cy,.int.r,...%..
34d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 ......................uint32_t.c
34d20 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 ).{..."..int.x.=.0,.y.=.r,.d.=.3
34d40 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 .-.2.*.r;......while.(y.>=.x).{.
34d60 00 00 15 20 20 20 20 69 6e 74 20 70 74 73 5b 38 5d 5b 32 5d 20 3d 20 7b 00 00 00 3a 20 20 20 20 .......int.pts[8][2].=.{...:....
34d80 20 20 7b 63 78 2b 78 2c 20 63 79 2b 79 7d 2c 7b 63 78 2d 78 2c 20 63 79 2b 79 7d 2c 7b 63 78 2b ..{cx+x,.cy+y},{cx-x,.cy+y},{cx+
34da0 78 2c 20 63 79 2d 79 7d 2c 7b 63 78 2d 78 2c 20 63 79 2d 79 7d 2c 00 00 00 39 20 20 20 20 20 20 x,.cy-y},{cx-x,.cy-y},...9......
34dc0 7b 63 78 2b 79 2c 20 63 79 2b 78 7d 2c 7b 63 78 2d 79 2c 20 63 79 2b 78 7d 2c 7b 63 78 2b 79 2c {cx+y,.cy+x},{cx-y,.cy+x},{cx+y,
34de0 20 63 79 2d 78 7d 2c 7b 63 78 2d 79 2c 20 63 79 2d 78 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 .cy-x},{cx-y,.cy-x}........};...
34e00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 .....for.(int.i.=.0;.i.<.8;.i++)
34e20 00 00 00 2c 20 20 20 20 20 20 69 66 20 28 70 74 73 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 ...,......if.(pts[i][0].>=.0.&&.
34e40 70 74 73 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 00 00 00 2a 20 20 20 20 20 20 20 20 20 20 70 74 pts[i][0].<.w.&&...*..........pt
34e60 73 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 s[i][1].>=.0.&&.pts[i][1].<.h)..
34e80 00 2a 20 20 20 20 20 20 20 20 70 78 5b 70 74 73 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 74 73 .*........px[pts[i][1].*.w.+.pts
34ea0 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 00 00 00 00 2e 20 20 20 20 69 66 20 28 64 20 3e 20 [i][0]].=.c;............if.(d.>.
34ec0 30 29 20 7b 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 20 79 2d 2d 3b 0).{.d.+=.4.*.(x.-.y).+.10;.y--;
34ee0 20 7d 00 00 00 18 20 20 20 20 65 6c 73 65 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 .}........else.d.+=.4.*.x.+.6;..
34f00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 ......x++;......}....}.......#st
34f20 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 atic.void.render(struct.app.*a).
34f40 7b 00 00 00 37 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e {...7..if.(!a->configured.||.a->
34f60 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 20 72 65 74 75 72 6e 3b 00 00 00 22 w.<=.0.||.a->h.<=.0).return;..."
34f80 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 61 ..if.(!a->buf).allocate_buffer(a
34fa0 29 3b 00 00 00 00 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 );..........uint32_t.*px.=.a->pi
34fc0 78 65 6c 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 xels;...$..memset(px,.0xFF,.a->w
34fe0 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 00 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 .*.a->h.*.4);..........time_t.tt
35000 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 13 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d .=.time(NULL);......struct.tm.tm
35020 5f 62 75 66 3b 00 00 00 1c 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 5f _buf;......localtime_r(&tt,.&tm_
35040 62 75 66 29 3b 00 00 00 00 00 00 00 14 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 buf);..........int.cx.=.a->w./.2
35060 3b 00 00 00 14 20 20 69 6e 74 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 ;......int.cy.=.a->h./.2;.../..i
35080 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e nt.r.=.(a->w.<.a->h.?.a->w.:.a->
350a0 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 00 00 00 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c h)./.2.-.10;.......5..draw_circl
350c0 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 e(px,.a->w,.a->h,.cx,.cy,.r,.0xF
350e0 46 30 30 30 30 30 30 29 3b 00 00 00 00 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 F000000);..........for.(int.i.=.
35100 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2c 20 20 20 20 64 6f 75 62 6c 65 20 0;.i.<.12;.i++).{...,....double.
35120 61 6e 67 20 3d 20 69 20 2f 20 31 32 2e 30 20 2a 20 32 2a 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 ang.=.i./.12.0.*.2*M_PI.-.M_PI_2
35140 3b 00 00 00 1d 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e ;........draw_line(px,.a->w,.a->
35160 68 2c 00 00 00 1b 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 2a 28 72 2d 31 30 29 h,..........cx.+.cos(ang)*(r-10)
35180 2c 00 00 00 1b 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 2a 28 72 2d 31 30 29 2c ,..........cy.+.sin(ang)*(r-10),
351a0 00 00 00 1a 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 2a 28 72 2d 32 29 2c 00 00 ..........cx.+.cos(ang)*(r-2),..
351c0 00 1a 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 2a 28 72 2d 32 29 2c 00 00 00 12 ........cy.+.sin(ang)*(r-2),....
351e0 20 20 20 20 20 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 ......0xFF000000);......}.......
35200 35 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 5..double.sa.=.tm_buf.tm_sec./.6
35220 30 2e 30 20 2a 20 32 2a 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 0.0.*.2*M_PI.-.M_PI_2;...J..doub
35240 6c 65 20 6d 61 20 3d 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 5f 62 75 66 2e le.ma.=.(tm_buf.tm_min.+.tm_buf.
35260 74 6d 5f 73 65 63 2f 36 30 2e 30 29 2f 36 30 2e 30 20 2a 20 32 2a 4d 5f 50 49 20 2d 20 4d 5f 50 tm_sec/60.0)/60.0.*.2*M_PI.-.M_P
35280 49 5f 32 3b 00 00 00 50 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 5f 62 75 66 2e 74 I_2;...P..double.ha.=.((tm_buf.t
352a0 6d 5f 68 6f 75 72 25 31 32 29 2b 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 2f 36 30 2e 30 29 29 m_hour%12)+(tm_buf.tm_min/60.0))
352c0 2f 31 32 2e 30 20 2a 20 32 2a 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 23 /12.0.*.2*M_PI.-.M_PI_2;.......#
352e0 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 ..draw_line(px,.a->w,.a->h,.cx,.
35300 63 79 2c 00 00 00 1f 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 29 2a cy,................cx.+.cos(ha)*
35320 72 2a 30 2e 35 2c 00 00 00 1f 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 r*0.5,................cy.+.sin(h
35340 61 29 2a 72 2a 30 2e 35 2c 00 00 00 18 20 20 20 20 20 20 20 20 20 20 20 20 30 78 46 46 30 30 30 a)*r*0.5,................0xFF000
35360 30 30 30 29 3b 00 00 00 00 00 00 00 23 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 000);.......#..draw_line(px,.a->
35380 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 00 00 00 1f 20 20 20 20 20 20 20 20 20 20 20 20 w,.a->h,.cx,.cy,................
353a0 63 78 20 2b 20 63 6f 73 28 6d 61 29 2a 72 2a 30 2e 37 2c 00 00 00 1f 20 20 20 20 20 20 20 20 20 cx.+.cos(ma)*r*0.7,.............
353c0 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 2a 72 2a 30 2e 37 2c 00 00 00 18 20 20 20 20 20 20 ...cy.+.sin(ma)*r*0.7,..........
353e0 20 20 20 20 20 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 00 00 00 00 23 20 20 64 72 61 77 ......0xFF000000);.......#..draw
35400 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 00 00 00 _line(px,.a->w,.a->h,.cx,.cy,...
35420 1f 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 29 2a 72 2a 30 2e 39 2c .............cx.+.cos(sa)*r*0.9,
35440 00 00 00 1f 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 73 61 29 2a 72 2a 30 ................cy.+.sin(sa)*r*0
35460 2e 39 2c 00 00 00 18 20 20 20 20 20 20 20 20 20 20 20 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 .9,................0xFFFF0000);.
35480 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 ......)..wl_surface_attach(a->ws
354a0 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 63 65 ,.a->buf,.0,.0);...4..wl_surface
354c0 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 _damage_buffer(a->ws,.0,.0,.a->w
354e0 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 ,.a->h);......wl_surface_commit(
35500 61 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3b 73 74 61 74 69 63 20 76 6f 69 64 20 a->ws);....}.......;static.void.
35520 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f xt_close(void.*data,.struct.xdg_
35540 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 toplevel.*xt).{......running.=.0
35560 3b 00 00 00 01 7d 00 00 00 00 00 00 00 37 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 ;....}.......7static.void.xt_cfg
35580 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c (void.*data,.struct.xdg_toplevel
355a0 20 2a 78 74 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 33 .*xt,...(...................int3
355c0 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 2d 20 20 20 20 20 20 20 20 20 20 20 2_t.w,.int32_t.h,...-...........
355e0 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 61 74 65 73 29 ........struct.wl_array.*states)
35600 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 61 74 61 3b 00 00 00 .{......struct.app.*a.=.data;...
35620 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 3..if.(w.>.0.&&.h.>.0.&&.(w.!=.a
35640 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 ->w.||.h.!=.a->h)).{........a->w
35660 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 16 20 20 20 20 64 65 .=.w;........a->h.=.h;........de
35680 73 74 72 6f 79 5f 62 75 66 66 65 72 28 61 29 3b 00 00 00 1b 20 20 20 20 61 2d 3e 6e 65 65 64 73 stroy_buffer(a);........a->needs
356a0 5f 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 _redraw.=.true;......}....}.....
356c0 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 61 74 61 ..Istatic.void.xs_cfg(void.*data
356e0 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 ,.struct.xdg_surface.*xs,.uint32
35700 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 _t.serial).{......struct.app.*a.
35720 3d 20 64 61 74 61 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e =.data;...(..xdg_surface_ack_con
35740 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 figure(xs,.serial);......a->conf
35760 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 19 20 20 61 2d 3e 6e 65 65 64 73 5f 72 65 64 igured.=.true;......a->needs_red
35780 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 raw.=.true;....}.......(static.v
357a0 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c oid.registry_handler(void.*data,
357c0 00 00 00 35 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...5............................
357e0 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 2c 00 00 00 29 20 20 20 .struct.wl_registry.*reg,...)...
35800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 ..........................uint32
35820 5f 74 20 69 64 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _t.id,.../......................
35840 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 00 00 00 2c 20 20 20 .......const.char.*iface,...,...
35860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 ..........................uint32
35880 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 _t.ver).{......struct.app.*a.=.d
358a0 61 74 61 3b 00 00 00 00 00 00 00 26 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c ata;.......&..if.(!strcmp(iface,
358c0 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 27 20 20 20 20 61 2d 3e 63 6f 6d ."wl_compositor"))...'....a->com
358e0 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 00 00 00 p.=.wl_registry_bind(reg,.id,...
35900 3c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 <...............................
35920 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 &wl_compositor_interface,.4);...
35940 24 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 $..else.if.(!strcmp(iface,."wl_s
35960 68 6d 22 29 29 00 00 00 26 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 hm"))...&....a->shm.=.wl_registr
35980 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 y_bind(reg,.id,...4.............
359a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 .................&wl_shm_interfa
359c0 63 65 2c 20 31 29 3b 00 00 00 2b 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 ce,.1);...+..else.if.(!strcmp(if
359e0 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 25 20 20 20 20 61 2d ace,."xdg_wm_base")).{...%....a-
35a00 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 00 >wm.=.wl_registry_bind(reg,.id,.
35a20 00 00 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..8.............................
35a40 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 38 20 &xdg_wm_base_interface,.1);...8.
35a60 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 ...static.const.struct.xdg_wm_ba
35a80 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 20 3d 20 7b 00 00 00 15 20 20 20 20 20 se_listener.wm_list.=.{.........
35aa0 20 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 00 00 00 06 20 20 20 20 7d 3b 00 00 00 31 20 20 ..ping.=.wm_ping........};...1..
35ac0 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d ..xdg_wm_base_add_listener(a->wm
35ae0 2c 20 26 77 6d 5f 6c 69 73 74 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 ,.&wm_list,.a);......}....}.....
35b00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 73 74 72 75 63 74 20 ...int.main(void).{......struct.
35b20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d 20 34 30 30 3b 00 00 00 0c app.a.=.{0};......a.w.=.400;....
35b40 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 00 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 ..a.h.=.400;..........signal(SIG
35b60 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 00 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f INT,.on_sig);.......!..a.d.=.wl_
35b80 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 27 20 20 61 2e 72 65 display_connect(NULL);...'..a.re
35ba0 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 g.=.wl_display_get_registry(a.d)
35bc0 3b 00 00 00 00 00 00 00 37 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 ;.......7..static.const.struct.w
35be0 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 20 3d 20 7b l_registry_listener.reg_list.=.{
35c00 00 00 00 1e 20 20 20 20 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c .........global.=.registry_handl
35c20 65 72 00 00 00 04 20 20 7d 3b 00 00 00 00 00 00 00 31 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f er......};.......1..wl_registry_
35c40 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c 69 73 74 2c 20 26 add_listener(a.reg,.&reg_list,.&
35c60 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e a);......wl_display_roundtrip(a.
35c80 64 29 3b 00 00 00 00 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f d);..........a.ws.=.wl_composito
35ca0 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 r_create_surface(a.comp);...1..a
35cc0 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 .xs.=.xdg_wm_base_get_xdg_surfac
35ce0 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 00 00 00 00 36 20 20 73 74 61 74 69 63 20 63 e(a.wm,.a.ws);.......6..static.c
35d00 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 onst.struct.xdg_surface_listener
35d20 20 78 73 5f 6c 69 73 74 20 3d 20 7b 00 00 00 17 20 20 20 20 2e 63 6f 6e 66 69 67 75 72 65 20 3d .xs_list.=.{.........configure.=
35d40 20 78 73 5f 63 66 67 00 00 00 04 20 20 7d 3b 00 00 00 2f 20 20 78 64 67 5f 73 75 72 66 61 63 65 .xs_cfg......};.../..xdg_surface
35d60 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 5f 6c 69 73 74 2c 20 26 61 _add_listener(a.xs,.&xs_list,.&a
35d80 29 3b 00 00 00 00 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 );.......(..a.xt.=.xdg_surface_g
35da0 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 00 00 00 00 37 20 20 73 74 61 74 et_toplevel(a.xs);.......7..stat
35dc0 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 ic.const.struct.xdg_toplevel_lis
35de0 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 20 3d 20 7b 00 00 00 18 20 20 20 20 2e 63 6f 6e 66 69 67 tener.xt_list.=.{.........config
35e00 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 00 00 00 15 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 78 74 ure.=.xt_cfg,.........close.=.xt
35e20 5f 63 6c 6f 73 65 00 00 00 04 20 20 7d 3b 00 00 00 30 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c _close......};...0..xdg_toplevel
35e40 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 2c 20 26 61 _add_listener(a.xt,.&xt_list,.&a
35e60 29 3b 00 00 00 00 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 );.......*..xdg_toplevel_set_tit
35e80 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 00 00 00 00 1a 20 20 77 6c le(a.xt,."wlclock");..........wl
35ea0 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 00 00 00 00 39 20 20 _surface_commit(a.ws);.......9..
35ec0 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d int.tfd.=.timerfd_create(CLOCK_M
35ee0 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 19 20 20 74 69 6d ONOTONIC,.TFD_CLOEXEC);......tim
35f00 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 00 00 00 2d 20 20 20 20 26 28 73 74 erfd_settime(tfd,.0,...-....&(st
35f20 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 30 7d 2c 7b 31 2c 30 7d 7d 2c 20 4e ruct.itimerspec){{1,0},{1,0}},.N
35f40 55 4c 4c 29 3b 00 00 00 00 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b ULL);..........while.(running).{
35f60 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 ...%....wl_display_dispatch_pend
35f80 69 6e 67 28 61 2e 64 29 3b 00 00 00 00 00 00 00 1d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c ing(a.d);............struct.poll
35fa0 66 64 20 70 66 64 73 5b 32 5d 20 3d 20 7b 00 00 00 29 20 20 20 20 20 20 7b 20 77 6c 5f 64 69 73 fd.pfds[2].=.{...)......{.wl_dis
35fc0 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 20 7d 2c 00 00 00 15 20 play_get_fd(a.d),.POLLIN.},.....
35fe0 20 20 20 20 20 7b 20 74 66 64 2c 20 50 4f 4c 4c 49 4e 20 7d 00 00 00 06 20 20 20 20 7d 3b 35 81 .....{.tfd,.POLLIN.}........};5.
36000 f5 18 00 00 00 00 19 00 00 00 1b 00 00 00 fb 00 00 00 04 00 00 00 ec 00 00 00 4c 00 00 00 21 02 ..........................L...!.
36020 00 00 00 00 00 00 8f 19 00 00 00 00 00 00 02 19 00 00 00 00 00 00 35 81 5f d0 00 00 00 2b 00 00 ......................5._....+..
36040 00 2d 00 00 00 00 00 00 00 00 00 00 00 2c 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 .-...........,..................
36060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
360a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
360c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
360e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
361a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a1 1d ............................i...
361c0 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 1b 00 00 00 1f 23 64 65 .............................#de
361e0 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 00 26 fine._POSIX_C_SOURCE.200809L...&
36200 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f #include."xdg-shell-client-proto
36220 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 col.h"....#include.<errno.h>....
36240 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c #include.<fcntl.h>....#include.<
36260 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 math.h>....#include.<poll.h>....
36280 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 #include.<signal.h>....#include.
362a0 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 <stdbool.h>....#include.<stdio.h
362c0 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 >....#include.<stdlib.h>....#inc
362e0 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 lude.<string.h>....#include.<sys
36300 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 /mman.h>....#include.<sys/timerf
36320 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e d.h>....#include.<time.h>....#in
36340 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 clude.<unistd.h>....#include.<wa
36360 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d yland-client.h>........#ifndef.M
36380 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 _PI...##define.M_PI.3.1415926535
363a0 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 8979323846....#endif....#ifndef.
363c0 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 M_PI_2...%#define.M_PI_2.1.57079
363e0 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 632679489661923....#endif.......
36400 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 )static.volatile.sig_atomic_t.ru
36420 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 nning.=.1;....static.void.on_sig
36440 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e (int.s).{......(void)s;......run
36460 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 ning.=.0;....}........struct.app
36480 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 .{......struct.wl_display.*d;...
364a0 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 ...struct.wl_registry.*reg;.....
364c0 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 .struct.wl_compositor.*comp;....
364e0 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 ..struct.wl_shm.*shm;......struc
36500 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 t.xdg_wm_base.*wm;......struct.w
36520 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 l_surface.*ws;......struct.xdg_s
36540 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c urface.*xs;......struct.xdg_topl
36560 65 76 65 6c 20 2a 78 74 3b 00 00 00 00 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b evel.*xt;..........void.*pixels;
36580 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 00 ......struct.wl_buffer.*buf;....
365a0 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 33 20 20 69 6e 74 20 62 75 66 5f 77 2c 20 ......int.w,.h;...3..int.buf_w,.
365c0 62 75 66 5f 68 3b 20 2f 2f 20 e2 86 90 20 74 72 61 63 6b 20 61 63 74 75 61 6c 20 62 75 66 66 65 buf_h;.//.....track.actual.buffe
365e0 72 20 73 69 7a 65 00 00 00 00 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b r.size..........bool.configured;
36600 00 00 00 14 20 20 62 6f 6f 6c 20 6e 65 65 64 73 5f 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 ......bool.needs_redraw;....};..
36620 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a .....Jstatic.void.wm_ping(void.*
36640 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 data,.struct.xdg_wm_base.*wm,.ui
36660 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 73 nt32_t.serial).{......xdg_wm_bas
36680 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 29 e_pong(wm,.serial);....}.......)
366a0 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f static.int.create_shm_file(size_
366c0 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d t.size).{......char.template[].=
366e0 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1d 20 ."/tmp/wlclock-shm-XXXXXX";.....
36700 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 0d .int.fd.=.mkstemp(template);....
36720 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 ..if.(fd.<.0)........exit(1);...
36740 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 1e 20 20 69 66 20 28 66 74 ...unlink(template);......if.(ft
36760 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 runcate(fd,.size).<.0)........ex
36780 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 it(1);......return.fd;....}.....
367a0 00 00 2b 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 66 65 72 28 73 74 ..+static.void.destroy_buffer(st
367c0 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 ruct.app.*a).{......if.(!a->buf)
367e0 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 00 00 00 00 32 20 20 73 69 7a 65 5f 74 20 ........return;.......2..size_t.
36800 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 28 61 2d 3e 62 75 66 5f 77 20 2a 20 61 2d 3e 62 75 size.=.(size_t)(a->buf_w.*.a->bu
36820 66 5f 68 20 2a 20 34 29 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 f_h.*.4);......wl_buffer_destroy
36840 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c (a->buf);......munmap(a->pixels,
36860 20 73 69 7a 65 29 3b 00 00 00 00 00 00 00 10 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 .size);..........a->buf.=.NULL;.
36880 00 00 13 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 .....a->pixels.=.NULL;....}.....
368a0 00 00 2c 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 73 ..,static.void.allocate_buffer(s
368c0 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 14 20 20 64 65 73 74 72 6f 79 5f 62 75 66 truct.app.*a).{......destroy_buf
368e0 66 65 72 28 61 29 3b 00 00 00 00 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 fer(a);.......*..size_t.size.=.(
36900 73 69 7a 65 5f 74 29 28 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 21 20 20 69 size_t)(a->w.*.a->h.*.4);...!..i
36920 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 nt.fd.=.create_shm_file(size);..
36940 00 00 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 .....J..a->pixels.=.mmap(NULL,.s
36960 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 ize,.PROT_READ.|.PROT_WRITE,.MAP
36980 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1e 20 20 69 66 20 28 61 2d 3e 70 69 78 _SHARED,.fd,.0);......if.(a->pix
369a0 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 els.==.MAP_FAILED)........exit(1
369c0 29 3b 00 00 00 00 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a );.......B..struct.wl_shm_pool.*
369e0 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d pool.=.wl_shm_create_pool(a->shm
36a00 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 00 00 00 00 43 20 20 61 2d 3e 62 75 66 20 3d 20 77 ,.fd,.size);.......C..a->buf.=.w
36a20 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 l_shm_pool_create_buffer(pool,.0
36a40 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d 20 20 20 20 20 ,.a->w,.a->h,.a->w.*.4,...=.....
36a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36a80 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 00 00 00 00 1c WL_SHM_FORMAT_ARGB8888);........
36aa0 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c ..wl_shm_pool_destroy(pool);....
36ac0 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 00 00 00 00 12 20 20 61 2d 3e 62 75 66 5f 77 20 3d ..close(fd);..........a->buf_w.=
36ae0 20 61 2d 3e 77 3b 00 00 00 12 20 20 61 2d 3e 62 75 66 5f 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 .a->w;......a->buf_h.=.a->h;....
36b00 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 }.......Istatic.void.draw_line(u
36b20 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 int32_t.*px,.int.w,.int.h,.int.x
36b40 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 0,.int.y0,.int.x1,...+..........
36b60 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 ............int.y1,.uint32_t.c).
36b80 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 {.../..int.dx.=.abs(x1.-.x0),.sx
36ba0 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 .=.x0.<.x1.?.1.:.-1;...0..int.dy
36bc0 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f .=.-abs(y1.-.y0),.sy.=.y0.<.y1.?
36be0 20 31 20 3a 20 2d 31 3b 00 00 00 14 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 3b .1.:.-1;......int.err.=.dx.+.dy;
36c00 00 00 00 00 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 ..........while.(1).{.../....if.
36c20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 (x0.>=.0.&&.x0.<.w.&&.y0.>=.0.&&
36c40 20 79 30 20 3c 20 68 29 00 00 00 1a 20 20 20 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 .y0.<.h)..........px[y0.*.w.+.x0
36c60 5d 20 3d 20 63 3b 00 00 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 ].=.c;........if.(x0.==.x1.&&.y0
36c80 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 15 20 20 20 20 69 .==.y1)..........break;........i
36ca0 6e 74 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3e nt.e2.=.2.*.err;........if.(e2.>
36cc0 3d 20 64 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 =.dy).{..........err.+=.dy;.....
36ce0 20 20 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 69 .....x0.+=.sx;........}........i
36d00 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 f.(e2.<=.dx).{..........err.+=.d
36d20 78 3b 00 00 00 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 00 x;..........y0.+=.sy;........}..
36d40 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 ....}....}.......Jstatic.void.dr
36d60 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 aw_circle(uint32_t.*px,.int.w,.i
36d80 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 25 nt.h,.int.cx,.int.cy,.int.r,...%
36da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 ........................uint32_t
36dc0 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d .c).{..."..int.x.=.0,.y.=.r,.d.=
36de0 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 .3.-.2.*.r;......while.(y.>=.x).
36e00 7b 00 00 00 4a 20 20 20 20 69 6e 74 20 70 74 73 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 {...J....int.pts[8][2].=.{{cx.+.
36e20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 x,.cy.+.y},.{cx.-.x,.cy.+.y},.{c
36e40 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 4a 20 20 20 20 20 20 20 20 20 20 20 20 20 x.+.x,.cy.-.y},...J.............
36e60 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 ........{cx.-.x,.cy.-.y},.{cx.+.
36e80 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 y,.cy.+.x},.{cx.-.y,.cy.+.x},...
36ea0 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 9.....................{cx.+.y,.c
36ec0 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 y.-.x},.{cx.-.y,.cy.-.x}};......
36ee0 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 ..for.(int.i.=.0;.i.<.8;.i++)...
36f00 4d 20 20 20 20 20 20 69 66 20 28 70 74 73 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 74 73 M......if.(pts[i][0].>=.0.&&.pts
36f20 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 74 73 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 [i][0].<.w.&&.pts[i][1].>=.0.&&.
36f40 70 74 73 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 2a 20 20 20 20 20 20 20 20 70 78 5b 70 74 73 pts[i][1].<.h)...*........px[pts
36f60 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 74 73 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 00 [i][1].*.w.+.pts[i][0]].=.c;....
36f80 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 ........if.(d.>.0).{..........d.
36fa0 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d +=.4.*.(x.-.y).+.10;..........y-
36fc0 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 -;........}.else..........d.+=.4
36fe0 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 .*.x.+.6;........x++;......}....
37000 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 }.......#static.void.render(stru
37020 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 ct.app.*a).{.../..if.(!a->config
37040 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 ured.||.a->w.<=.0.||.a->h.<=.0).
37060 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 .......return;......if.(!a->buf)
37080 00 00 00 17 20 20 20 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 61 29 3b 00 00 00 00 00 ........allocate_buffer(a);.....
370a0 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 .....uint32_t.*px.=.a->pixels;..
370c0 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 .$..memset(px,.0xFF,.a->w.*.a->h
370e0 20 2a 20 34 29 3b 00 00 00 00 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 .*.4);..........time_t.tt.=.time
37100 28 4e 55 4c 4c 29 3b 00 00 00 13 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 5f 62 75 66 3b 00 00 (NULL);......struct.tm.tm_buf;..
37120 00 1c 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 5f 62 75 66 29 3b 00 00 ....localtime_r(&tt,.&tm_buf);..
37140 00 00 00 00 00 14 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 3b 00 00 00 14 20 20 ........int.cx.=.a->w./.2;......
37160 69 6e 74 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 int.cy.=.a->h./.2;.../..int.r.=.
37180 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 (a->w.<.a->h.?.a->w.:.a->h)./.2.
371a0 2d 20 31 30 3b 00 00 00 00 00 00 00 35 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 61 -.10;.......5..draw_circle(px,.a
371c0 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 ->w,.a->h,.cx,.cy,.r,.0xFF000000
371e0 29 3b 00 00 00 00 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 );..........for.(int.i.=.0;.i.<.
37200 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 12;.i++).{........double.ang.=.i
37220 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 37 ./.12.0.*.2.*.M_PI.-.M_PI_2;...7
37240 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 ....draw_line(px,.a->w,.a->h,.cx
37260 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 2c 00 00 00 40 20 20 20 20 20 .+.cos(ang).*.(r.-.10),...@.....
37280 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 .........cy.+.sin(ang).*.(r.-.10
372a0 29 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 2c 00 00 00 33 20 ),.cx.+.cos(ang).*.(r.-.2),...3.
372c0 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 .............cy.+.sin(ang).*.(r.
372e0 2d 20 32 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 -.2),.0xFF000000);......}.......
37300 37 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 5f 62 75 66 2e 74 6d 5f 73 65 63 20 2f 20 36 7..double.sa.=.tm_buf.tm_sec./.6
37320 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 50 20 20 64 6f 0.0.*.2.*.M_PI.-.M_PI_2;...P..do
37340 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 5f 62 75 uble.ma.=.(tm_buf.tm_min.+.tm_bu
37360 66 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f f.tm_sec./.60.0)./.60.0.*.2.*.M_
37380 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 PI.-.M_PI_2;......double.ha.=...
373a0 4a 20 20 20 20 20 20 28 28 74 6d 5f 62 75 66 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 J......((tm_buf.tm_hour.%.12).+.
373c0 28 74 6d 5f 62 75 66 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a (tm_buf.tm_min./.60.0))./.12.0.*
373e0 20 32 20 2a 20 4d 5f 50 49 20 2d 00 00 00 0d 20 20 20 20 20 20 4d 5f 50 49 5f 32 3b 00 00 00 00 .2.*.M_PI.-..........M_PI_2;....
37400 00 00 00 3b 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 ...;..draw_line(px,.a->w,.a->h,.
37420 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 2c 00 cx,.cy,.cx.+.cos(ha).*.r.*.0.5,.
37440 00 00 30 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 29 20 2a 20 72 20 ..0............cy.+.sin(ha).*.r.
37460 2a 20 30 2e 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 00 00 00 00 3b 20 20 64 72 61 *.0.5,.0xFF000000);.......;..dra
37480 77 5f 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 w_line(px,.a->w,.a->h,.cx,.cy,.c
374a0 78 20 2b 20 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 2c 00 00 00 30 20 20 20 20 20 20 x.+.cos(ma).*.r.*.0.7,...0......
374c0 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 2c 20 30 78 ......cy.+.sin(ma).*.r.*.0.7,.0x
374e0 46 46 30 30 30 30 30 30 29 3b 00 00 00 00 00 00 00 3b 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 FF000000);.......;..draw_line(px
37500 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 73 ,.a->w,.a->h,.cx,.cy,.cx.+.cos(s
37520 61 29 20 2a 20 72 20 2a 20 30 2e 39 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 a).*.r.*.0.9,...0............cy.
37540 2b 20 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 2c 20 30 78 46 46 46 46 30 30 30 30 29 +.sin(sa).*.r.*.0.9,.0xFFFF0000)
37560 3b 00 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e ;.......)..wl_surface_attach(a->
37580 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 ws,.a->buf,.0,.0);...4..wl_surfa
375a0 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d ce_damage_buffer(a->ws,.0,.0,.a-
375c0 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 >w,.a->h);......wl_surface_commi
375e0 74 28 61 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 t(a->ws);....}.......Jstatic.voi
37600 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 d.xt_close(void.*data,.struct.xd
37620 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d g_toplevel.*xt).{.running.=.0;.}
37640 00 00 00 00 00 00 00 4d 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 .......Mstatic.void.xt_cfg(void.
37660 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 *data,.struct.xdg_toplevel.*xt,.
37680 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 2d 20 20 20 20 20 20 20 int32_t.w,.int32_t.h,...-.......
376a0 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 61 ............struct.wl_array.*sta
376c0 74 65 73 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 61 74 61 tes).{......struct.app.*a.=.data
376e0 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 ;...3..if.(w.>.0.&&.h.>.0.&&.(w.
37700 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 0d 20 20 20 20 !=.a->w.||.h.!=.a->h)).{........
37720 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 16 20 20 a->w.=.w;........a->h.=.h;......
37740 20 20 64 65 73 74 72 6f 79 5f 62 75 66 66 65 72 28 61 29 3b 00 00 00 1b 20 20 20 20 61 2d 3e 6e ..destroy_buffer(a);........a->n
37760 65 65 64 73 5f 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 eeds_redraw.=.true;......}....}.
37780 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a ......Istatic.void.xs_cfg(void.*
377a0 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 data,.struct.xdg_surface.*xs,.ui
377c0 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 nt32_t.serial).{......struct.app
377e0 20 2a 61 20 3d 20 64 61 74 61 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b .*a.=.data;...(..xdg_surface_ack
37800 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e _configure(xs,.serial);......a->
37820 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 19 20 20 61 2d 3e 6e 65 65 64 73 configured.=.true;......a->needs
37840 5f 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4e 73 74 61 74 _redraw.=.true;....}.......Nstat
37860 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 ic.void.registry_handler(void.*d
37880 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 2c 20 75 69 ata,.struct.wl_registry.*reg,.ui
378a0 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt32_t.id,...?..................
378c0 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 20 75 69 ...........const.char.*iface,.ui
378e0 6e 74 33 32 5f 74 20 76 65 72 29 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 nt32_t.ver).{......struct.app.*a
37900 20 3d 20 64 61 74 61 3b 00 00 00 00 00 00 00 26 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 .=.data;.......&..if.(!strcmp(if
37920 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 45 20 20 20 20 61 2d ace,."wl_compositor"))...E....a-
37940 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 >comp.=.wl_registry_bind(reg,.id
37960 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 ,.&wl_compositor_interface,.4);.
37980 00 00 24 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c ..$..else.if.(!strcmp(iface,."wl
379a0 5f 73 68 6d 22 29 29 00 00 00 3d 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 _shm"))...=....a->shm.=.wl_regis
379c0 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 try_bind(reg,.id,.&wl_shm_interf
379e0 61 63 65 2c 20 31 29 3b 00 00 00 2b 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 ace,.1);...+..else.if.(!strcmp(i
37a00 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 41 20 20 20 20 61 face,."xdg_wm_base")).{...A....a
37a20 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 2c 20 69 64 2c ->wm.=.wl_registry_bind(reg,.id,
37a40 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 49 .&xdg_wm_base_interface,.1);...I
37a60 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 ....static.const.struct.xdg_wm_b
37a80 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 ase_listener.wm_list.=.{.ping.=.
37aa0 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 31 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 wm_ping};...1....xdg_wm_base_add
37ac0 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 74 2c 20 61 29 3b 00 00 _listener(a->wm,.&wm_list,.a);..
37ae0 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 ....}....}........int.main(void)
37b00 20 7b 00 00 00 15 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 .{......struct.app.a.=.{0};.....
37b20 20 61 2e 77 20 3d 20 34 30 30 3b 00 00 00 0c 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 00 00 .a.w.=.400;......a.h.=.400;.....
37b40 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 00 .....signal(SIGINT,.on_sig);....
37b60 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e ...!..a.d.=.wl_display_connect(N
37b80 55 4c 4c 29 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 ULL);...'..a.reg.=.wl_display_ge
37ba0 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 00 00 00 00 40 20 20 73 74 61 74 69 63 t_registry(a.d);.......@..static
37bc0 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e .const.struct.wl_registry_listen
37be0 65 72 20 72 65 67 5f 6c 69 73 74 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 00 00 00 4d 20 20 20 20 er.reg_list.=.{.global.=...M....
37c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 67 69 73 74 72 79 5f .......................registry_
37c40 68 61 6e 64 6c 65 72 7d 3b 00 00 00 00 00 00 00 31 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 handler};.......1..wl_registry_a
37c60 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c 69 73 74 2c 20 26 61 dd_listener(a.reg,.&reg_list,.&a
37c80 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 );......wl_display_roundtrip(a.d
37ca0 29 3b 00 00 00 00 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 );..........a.ws.=.wl_compositor
37cc0 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e _create_surface(a.comp);...1..a.
37ce0 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 xs.=.xdg_wm_base_get_xdg_surface
37d00 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 00 00 00 00 4b 20 20 73 74 61 74 69 63 20 63 6f (a.wm,.a.ws);.......K..static.co
37d20 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 nst.struct.xdg_surface_listener.
37d40 78 73 5f 6c 69 73 74 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b xs_list.=.{.configure.=.xs_cfg};
37d60 00 00 00 2f 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 .../..xdg_surface_add_listener(a
37d80 2e 78 73 2c 20 26 78 73 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 00 00 00 00 28 20 20 61 2e 78 .xs,.&xs_list,.&a);.......(..a.x
37da0 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 t.=.xdg_surface_get_toplevel(a.x
37dc0 73 29 3b 00 00 00 00 00 00 00 4b 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 s);.......K..static.const.struct
37de0 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 20 3d .xdg_toplevel_listener.xt_list.=
37e00 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 00 00 00 4a 20 20 20 20 20 20 .{.configure.=.xt_cfg,...J......
37e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f ..................close.=.xt_clo
37e60 73 65 7d 3b 00 00 00 30 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 se};...0..xdg_toplevel_add_liste
37e80 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 2c 20 26 61 29 3b 00 00 00 00 00 00 00 2a ner(a.xt,.&xt_list,.&a);.......*
37ea0 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 ..xdg_toplevel_set_title(a.xt,."
37ec0 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 00 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 wlclock");..........wl_surface_c
37ee0 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 00 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 ommit(a.ws);.......9..int.tfd.=.
37f00 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 timerfd_create(CLOCK_MONOTONIC,.
37f20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 TFD_CLOEXEC);...F..timerfd_setti
37f40 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b me(tfd,.0,.&(struct.itimerspec){
37f60 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 13 20 {1,.0},.{1,.0}},.NULL);.........
37f80 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 .while.(running).{...%....wl_dis
37fa0 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 00 00 play_dispatch_pending(a.d);.....
37fc0 00 00 4e 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 66 64 73 5b 32 5d 20 3d 20 7b ..N....struct.pollfd.pfds[2].=.{
37fe0 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d {wl_display_get_fd(a.d),.POLLIN}
38000 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 00 00 00 00 16 20 20 20 20 70 6f 6c ,.{tfd,.POLLIN}};............pol
38020 6c 28 70 66 64 73 2c 20 32 2c 20 2d 31 29 3b 00 00 00 00 00 00 00 21 20 20 20 20 69 66 20 28 70 l(pfds,.2,.-1);.......!....if.(p
38040 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 1f 20 20 20 20 fds[0].revents.&.POLLIN)........
38060 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 00 00 ..wl_display_dispatch(a.d);.....
38080 00 00 23 20 20 20 20 69 66 20 28 70 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c ..#....if.(pfds[1].revents.&.POL
380a0 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 69 63 6b 73 3b 00 LIN).{..........uint64_t.ticks;.
380c0 00 00 27 20 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 69 63 6b 73 2c 20 73 69 7a 65 6f ..'......read(tfd,.&ticks,.sizeo
380e0 66 28 74 69 63 6b 73 29 29 3b 00 00 00 1c 20 20 20 20 20 20 61 2e 6e 65 65 64 73 5f 72 65 64 72 f(ticks));..........a.needs_redr
38100 61 77 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 17 20 20 20 20 69 aw.=.true;........}............i
38120 66 20 28 61 2e 6e 65 65 64 73 5f 72 65 64 72 61 77 29 00 00 00 11 20 20 20 20 20 20 72 65 6e 64 f.(a.needs_redraw)..........rend
38140 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 0d 20 20 63 6c 6f 73 65 28 74 66 er(&a);......}..........close(tf
38160 64 29 3b 00 00 00 15 20 20 64 65 73 74 72 6f 79 5f 62 75 66 66 65 72 28 26 61 29 3b 00 00 00 1d d);......destroy_buffer(&a);....
38180 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 ..wl_display_disconnect(a.d);...
381a0 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 ...return.0;....}5..............
381c0 00 1b 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 87 1c 00 00 00 00 00 ................................
381e0 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 2c 00 00 00 2e 00 00 00 00 00 00 00 00 00 00 00 .........5._....,...............
38200 2d 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 -...............................
38220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
382a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
382c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
382e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a1 1e 04 01 00 00 00 00 00 f5 18 00 00 00 d2 ...............i................
38380 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 d3 00 00 00 00 00 00 00 00 00 ................}...............
383a0 00 00 00 f5 18 00 00 00 be 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 05 20 20 77 6c 5f f5 18 ...........................wl_..
383c0 00 00 00 bf 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 a3 00 00 00 00 00 00 00 00 00 00 ................................
383e0 00 01 00 00 00 03 20 20 20 f5 18 00 00 00 a4 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 ................................
38400 7c 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0a 20 20 20 20 20 20 20 20 20 63 f5 18 00 00 00 |.........................c.....
38420 7d 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 }...............................
38440 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 .....................5..........
38460 00 00 00 00 00 00 00 00 00 00 00 00 00 7c 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .............|..................
38480 00 00 00 00 00 00 0c 00 00 00 00 00 00 f5 18 00 00 00 00 7c 00 00 00 0a 00 00 00 00 00 00 00 00 ...................|............
384a0 00 00 00 27 00 00 00 03 00 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 ...'............................
384c0 00 00 00 f5 18 00 00 00 00 a3 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 1b 00 00 00 05 00 00 ................................
384e0 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 be ................................
38500 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00 00 15 00 00 00 00 00 00 00 ................................
38520 00 00 00 00 00 00 00 5f 02 00 00 00 00 00 00 35 81 5f d0 00 00 00 2d 00 00 00 2f 00 00 00 00 00 ......._.......5._....-.../.....
38540 00 00 00 00 00 00 2e 00 00 00 d3 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 ................................
38560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
385a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
385c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
385e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
386a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a1 1f 04 01 00 00 00 12 00 .....................i..........
386c0 f5 18 00 00 00 1a 00 00 00 f3 00 00 00 d3 00 00 00 b3 00 00 00 2d 73 74 61 74 69 63 20 76 6f 69 .....................-static.voi
386e0 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 7b 28 76 6f 69 64 29 73 3b 72 75 6e 6e 69 6e 67 3d d.on_sig(int.s){(void)s;running=
38700 30 3b 7d 00 00 00 00 00 00 00 0b 73 74 72 75 63 74 20 61 70 70 7b 00 00 00 16 20 20 73 74 72 75 0;}........struct.app{......stru
38720 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 2a 64 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 77 6c 5f ct.wl_display*d;......struct.wl_
38740 72 65 67 69 73 74 72 79 2a 72 65 67 3b 00 00 00 1c 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d registry*reg;......struct.wl_com
38760 70 6f 73 69 74 6f 72 2a 63 6f 6d 70 3b 00 00 00 14 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d positor*comp;......struct.wl_shm
38780 2a 73 68 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 2a 77 6d *shm;......struct.xdg_wm_base*wm
387a0 3b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 2a 77 73 3b 00 00 00 18 ;......struct.wl_surface*ws;....
387c0 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 2a 78 73 3b 00 00 00 19 20 20 73 74 ..struct.xdg_surface*xs;......st
387e0 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 2a 78 74 3b 00 00 00 0e 20 20 76 6f 69 64 2a ruct.xdg_toplevel*xt;......void*
38800 70 69 78 65 6c 73 3b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 2a 62 75 pixels;......struct.wl_buffer*bu
38820 66 3b 00 00 00 0a 20 20 69 6e 74 20 77 2c 68 3b 00 00 00 0c 20 20 69 6e 74 20 62 77 2c 62 68 3b f;......int.w,h;......int.bw,bh;
38840 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c ......bool.configured;......bool
38860 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 .redraw;....};.......Estatic.voi
38880 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 2a 64 61 74 61 2c 73 74 72 75 63 74 20 78 64 67 5f 77 d.wm_ping(void*data,struct.xdg_w
388a0 6d 5f 62 61 73 65 2a 77 6d 2c 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 7b 00 00 00 1e 20 m_base*wm,uint32_t.serial){.....
388c0 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 73 65 72 69 61 6c 29 3b 00 00 00 .xdg_wm_base_pong(wm,serial);...
388e0 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 28 .}.......#static.int.create_shm(
38900 73 69 7a 65 5f 74 20 73 69 7a 65 29 7b 00 00 00 21 20 20 63 68 61 72 20 74 5b 5d 3d 22 2f 74 6d size_t.size){...!..char.t[]="/tm
38920 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 14 20 20 69 6e 74 20 66 64 3d 6d p/wlclock-XXXXXX";......int.fd=m
38940 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 12 20 20 69 66 28 66 64 3c 30 29 65 78 69 74 28 31 29 3b kstemp(t);......if(fd<0)exit(1);
38960 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 22 20 20 69 66 28 66 74 72 75 6e 63 61 ......unlink(t);..."..if(ftrunca
38980 74 65 28 66 64 2c 73 69 7a 65 29 3c 30 29 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 te(fd,size)<0)exit(1);......retu
389a0 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 64 rn.fd;....}.......&static.void.d
389c0 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 2a 61 29 7b 00 00 00 14 20 20 69 estroy_buf(struct.app*a){......i
389e0 66 28 21 61 2d 3e 62 75 66 29 72 65 74 75 72 6e 3b 00 00 00 24 20 20 73 69 7a 65 5f 74 20 73 69 f(!a->buf)return;...$..size_t.si
38a00 7a 65 3d 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 2a 61 2d 3e 62 68 2a 34 3b 00 00 00 1c 20 20 77 ze=(size_t)a->bw*a->bh*4;......w
38a20 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 19 20 20 6d l_buffer_destroy(a->buf);......m
38a40 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 73 69 7a 65 29 3b 00 00 00 0e 20 20 61 2d 3e 62 unmap(a->pixels,size);......a->b
38a60 75 66 3d 4e 55 4c 4c 3b 00 00 00 11 20 20 61 2d 3e 70 69 78 65 6c 73 3d 4e 55 4c 4c 3b 00 00 00 uf=NULL;......a->pixels=NULL;...
38a80 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 .}.......$static.void.alloc_buf(
38aa0 73 74 72 75 63 74 20 61 70 70 2a 61 29 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 struct.app*a){......destroy_buf(
38ac0 61 29 3b 00 00 00 22 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 3d 28 73 69 7a 65 5f 74 29 61 2d 3e a);..."..size_t.size=(size_t)a->
38ae0 77 2a 61 2d 3e 68 2a 34 3b 00 00 00 1a 20 20 69 6e 74 20 66 64 3d 63 72 65 61 74 65 5f 73 68 6d w*a->h*4;......int.fd=create_shm
38b00 28 73 69 7a 65 29 3b 00 00 00 41 20 20 61 2d 3e 70 69 78 65 6c 73 3d 6d 6d 61 70 28 4e 55 4c 4c (size);...A..a->pixels=mmap(NULL
38b20 2c 73 69 7a 65 2c 50 52 4f 54 5f 52 45 41 44 7c 50 52 4f 54 5f 57 52 49 54 45 2c 4d 41 50 5f 53 ,size,PROT_READ|PROT_WRITE,MAP_S
38b40 48 41 52 45 44 2c 66 64 2c 30 29 3b 00 00 00 23 20 20 69 66 28 61 2d 3e 70 69 78 65 6c 73 3d 3d HARED,fd,0);...#..if(a->pixels==
38b60 4d 41 50 5f 46 41 49 4c 45 44 29 65 78 69 74 28 31 29 3b 00 00 00 3d 20 20 73 74 72 75 63 74 20 MAP_FAILED)exit(1);...=..struct.
38b80 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 2a 70 6f 6f 6c 3d 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 wl_shm_pool*pool=wl_shm_create_p
38ba0 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 66 64 2c 73 69 7a 65 29 3b 00 00 00 53 20 20 61 2d 3e 62 75 66 ool(a->shm,fd,size);...S..a->buf
38bc0 3d 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c =wl_shm_pool_create_buffer(pool,
38be0 30 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 61 2d 3e 77 2a 34 2c 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 0,a->w,a->h,a->w*4,WL_SHM_FORMAT
38c00 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 _ARGB8888);......wl_shm_pool_des
38c20 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0d 20 troy(pool);......close(fd);.....
38c40 20 61 2d 3e 62 77 3d 61 2d 3e 77 3b 00 00 00 0d 20 20 61 2d 3e 62 68 3d 61 2d 3e 68 3b 00 00 00 .a->bw=a->w;......a->bh=a->h;...
38c60 01 7d 00 00 00 00 00 00 00 51 73 74 61 74 69 63 20 76 6f 69 64 20 6c 69 6e 65 28 75 69 6e 74 33 .}.......Qstatic.void.line(uint3
38c80 32 5f 74 2a 70 78 2c 69 6e 74 20 77 2c 69 6e 74 20 68 2c 69 6e 74 20 78 30 2c 69 6e 74 20 79 30 2_t*px,int.w,int.h,int.x0,int.y0
38ca0 2c 69 6e 74 20 78 31 2c 69 6e 74 20 79 31 2c 75 69 6e 74 33 32 5f 74 20 63 29 7b 00 00 00 22 20 ,int.x1,int.y1,uint32_t.c){...".
38cc0 20 69 6e 74 20 64 78 3d 61 62 73 28 78 31 2d 78 30 29 2c 73 78 3d 78 30 3c 78 31 3f 31 3a 2d 31 .int.dx=abs(x1-x0),sx=x0<x1?1:-1
38ce0 3b 00 00 00 23 20 20 69 6e 74 20 64 79 3d 2d 61 62 73 28 79 31 2d 79 30 29 2c 73 79 3d 79 30 3c ;...#..int.dy=-abs(y1-y0),sy=y0<
38d00 79 31 3f 31 3a 2d 31 3b 00 00 00 10 20 20 69 6e 74 20 65 72 72 3d 64 78 2b 64 79 3b 00 00 00 0b y1?1:-1;......int.err=dx+dy;....
38d20 20 20 77 68 69 6c 65 28 31 29 7b 00 00 00 2e 20 20 20 20 69 66 28 78 30 3e 3d 30 26 26 78 30 3c ..while(1){........if(x0>=0&&x0<
38d40 77 26 26 79 30 3e 3d 30 26 26 79 30 3c 68 29 70 78 5b 79 30 2a 77 2b 78 30 5d 3d 63 3b 00 00 00 w&&y0>=0&&y0<h)px[y0*w+x0]=c;...
38d60 1c 20 20 20 20 69 66 28 78 30 3d 3d 78 31 26 26 79 30 3d 3d 79 31 29 62 72 65 61 6b 3b 00 00 00 .....if(x0==x1&&y0==y1)break;...
38d80 11 20 20 20 20 69 6e 74 20 65 32 3d 32 2a 65 72 72 3b 00 00 00 1f 20 20 20 20 69 66 28 65 32 3e .....int.e2=2*err;........if(e2>
38da0 3d 64 79 29 7b 65 72 72 2b 3d 64 79 3b 78 30 2b 3d 73 78 3b 7d 00 00 00 1f 20 20 20 20 69 66 28 =dy){err+=dy;x0+=sx;}........if(
38dc0 65 32 3c 3d 64 78 29 7b 65 72 72 2b 3d 64 78 3b 79 30 2b 3d 73 79 3b 7d 00 00 00 03 20 20 7d 00 e2<=dx){err+=dx;y0+=sy;}......}.
38de0 00 00 01 7d 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 ...}.......Kstatic.void.circle(u
38e00 69 6e 74 33 32 5f 74 2a 70 78 2c 69 6e 74 20 77 2c 69 6e 74 20 68 2c 69 6e 74 20 63 78 2c 69 6e int32_t*px,int.w,int.h,int.cx,in
38e20 74 20 63 79 2c 69 6e 74 20 72 2c 75 69 6e 74 33 32 5f 74 20 63 29 7b 00 00 00 16 20 20 69 6e 74 t.cy,int.r,uint32_t.c){......int
38e40 20 78 3d 30 2c 79 3d 72 2c 64 3d 33 2d 32 2a 72 3b 00 00 00 0e 20 20 77 68 69 6c 65 28 79 3e 3d .x=0,y=r,d=3-2*r;......while(y>=
38e60 78 29 7b 00 00 00 41 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 3d 7b 7b 63 78 2b 78 2c 63 79 x){...A....int.p[8][2]={{cx+x,cy
38e80 2b 79 7d 2c 7b 63 78 2d 78 2c 63 79 2b 79 7d 2c 7b 63 78 2b 78 2c 63 79 2d 79 7d 2c 7b 63 78 2d +y},{cx-x,cy+y},{cx+x,cy-y},{cx-
38ea0 78 2c 63 79 2d 79 7d 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 x,cy-y},...B.................{cx
38ec0 2b 79 2c 63 79 2b 78 7d 2c 7b 63 78 2d 79 2c 63 79 2b 78 7d 2c 7b 63 78 2b 79 2c 63 79 2d 78 7d +y,cy+x},{cx-y,cy+x},{cx+y,cy-x}
38ee0 2c 7b 63 78 2d 79 2c 63 79 2d 78 7d 7d 3b 00 00 00 18 20 20 20 20 66 6f 72 28 69 6e 74 20 69 3d ,{cx-y,cy-x}};........for(int.i=
38f00 30 3b 69 3c 38 3b 69 2b 2b 29 00 00 00 36 20 20 20 20 20 20 69 66 28 70 5b 69 5d 5b 30 5d 3e 3d 0;i<8;i++)...6......if(p[i][0]>=
38f20 30 26 26 70 5b 69 5d 5b 30 5d 3c 77 26 26 70 5b 69 5d 5b 31 5d 3e 3d 30 26 26 70 5b 69 5d 5b 31 0&&p[i][0]<w&&p[i][1]>=0&&p[i][1
38f40 5d 3c 68 29 00 00 00 20 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 2a 77 2b 70 5b 69 ]<h)............px[p[i][1]*w+p[i
38f60 5d 5b 30 5d 5d 3d 63 3b 00 00 00 2d 20 20 20 20 69 66 28 64 3e 30 29 7b 64 2b 3d 34 2a 28 78 2d ][0]]=c;...-....if(d>0){d+=4*(x-
38f80 79 29 2b 31 30 3b 79 2d 2d 3b 7d 65 6c 73 65 20 64 2b 3d 34 2a 78 2b 36 3b 00 00 00 08 20 20 20 y)+10;y--;}else.d+=4*x+6;.......
38fa0 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 21 73 74 61 74 69 63 20 .x++;......}....}.......!static.
38fc0 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 2a 61 29 7b 00 00 00 2d 20 20 void.render(struct.app*a){...-..
38fe0 69 66 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 7c 7c 61 2d 3e 77 3c 3d 30 7c 7c 61 2d 3e 68 if(!a->configured||a->w<=0||a->h
39000 3c 3d 30 29 72 65 74 75 72 6e 3b 00 00 00 1a 20 20 69 66 28 21 61 2d 3e 62 75 66 29 61 6c 6c 6f <=0)return;......if(!a->buf)allo
39020 63 5f 62 75 66 28 61 29 3b 00 00 00 18 20 20 75 69 6e 74 33 32 5f 74 2a 70 78 3d 61 2d 3e 70 69 c_buf(a);......uint32_t*px=a->pi
39040 78 65 6c 73 3b 00 00 00 1e 20 20 6d 65 6d 73 65 74 28 70 78 2c 30 78 46 46 2c 61 2d 3e 77 2a 61 xels;......memset(px,0xFF,a->w*a
39060 2d 3e 68 2a 34 29 3b 00 00 00 17 20 20 74 69 6d 65 5f 74 20 74 74 3d 74 69 6d 65 28 4e 55 4c 4c ->h*4);......time_t.tt=time(NULL
39080 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 18 20 20 6c 6f 63 61 );......struct.tm.tmv;......loca
390a0 6c 74 69 6d 65 5f 72 28 26 74 74 2c 26 74 6d 76 29 3b 00 00 00 1a 20 20 69 6e 74 20 63 78 3d 61 ltime_r(&tt,&tmv);......int.cx=a
390c0 2d 3e 77 2f 32 2c 63 79 3d 61 2d 3e 68 2f 32 3b 00 00 00 23 20 20 69 6e 74 20 72 3d 28 61 2d 3e ->w/2,cy=a->h/2;...#..int.r=(a->
390e0 77 3c 61 2d 3e 68 3f 61 2d 3e 77 3a 61 2d 3e 68 29 2f 32 2d 31 30 3b 00 00 00 0d 20 20 69 66 28 w<a->h?a->w:a->h)/2-10;......if(
39100 72 3c 35 29 72 3d 35 3b 00 00 00 2a 20 20 63 69 72 63 6c 65 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e r<5)r=5;...*..circle(px,a->w,a->
39120 68 2c 63 78 2c 63 79 2c 72 2c 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 18 20 20 66 6f 72 28 h,cx,cy,r,0xFF000000);......for(
39140 69 6e 74 20 69 3d 30 3b 69 3c 31 32 3b 69 2b 2b 29 7b 00 00 00 24 20 20 20 20 64 6f 75 62 6c 65 int.i=0;i<12;i++){...$....double
39160 20 61 6e 67 3d 69 2f 31 32 2e 30 2a 32 2a 4d 5f 50 49 2d 4d 5f 50 49 5f 32 3b 00 00 00 16 20 20 .ang=i/12.0*2*M_PI-M_PI_2;......
39180 20 20 6c 69 6e 65 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 00 00 00 1c 20 20 20 20 20 20 20 20 ..line(px,a->w,a->h,............
391a0 20 63 78 2b 63 6f 73 28 61 6e 67 29 2a 28 72 2d 31 30 29 2c 00 00 00 1c 20 20 20 20 20 20 20 20 .cx+cos(ang)*(r-10),............
391c0 20 63 79 2b 73 69 6e 28 61 6e 67 29 2a 28 72 2d 31 30 29 2c 00 00 00 1b 20 20 20 20 20 20 20 20 .cy+sin(ang)*(r-10),............
391e0 20 63 78 2b 63 6f 73 28 61 6e 67 29 2a 28 72 2d 32 29 2c 00 00 00 1b 20 20 20 20 20 20 20 20 20 .cx+cos(ang)*(r-2),.............
39200 63 79 2b 73 69 6e 28 61 6e 67 29 2a 28 72 2d 32 29 2c 00 00 00 15 20 20 20 20 20 20 20 20 20 30 cy+sin(ang)*(r-2),.............0
39220 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 2a 20 20 64 6f 75 62 6c 65 20 73 xFF000000);......}...*..double.s
39240 61 3d 74 6d 76 2e 74 6d 5f 73 65 63 2f 36 30 2e 30 2a 32 2a 4d 5f 50 49 2d 4d 5f 50 49 5f 32 3b a=tmv.tm_sec/60.0*2*M_PI-M_PI_2;
39260 00 00 00 3c 20 20 64 6f 75 62 6c 65 20 6d 61 3d 28 74 6d 76 2e 74 6d 5f 6d 69 6e 2b 74 6d 76 2e ...<..double.ma=(tmv.tm_min+tmv.
39280 74 6d 5f 73 65 63 2f 36 30 2e 30 29 2f 36 30 2e 30 2a 32 2a 4d 5f 50 49 2d 4d 5f 50 49 5f 32 3b tm_sec/60.0)/60.0*2*M_PI-M_PI_2;
392a0 00 00 00 44 20 20 64 6f 75 62 6c 65 20 68 61 3d 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 25 31 32 ...D..double.ha=((tmv.tm_hour%12
392c0 29 2b 28 74 6d 76 2e 74 6d 5f 6d 69 6e 2f 36 30 2e 30 29 29 2f 31 32 2e 30 2a 32 2a 4d 5f 50 49 )+(tmv.tm_min/60.0))/12.0*2*M_PI
392e0 2d 4d 5f 50 49 5f 32 3b 00 00 00 48 20 20 6c 69 6e 65 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c -M_PI_2;...H..line(px,a->w,a->h,
39300 63 78 2c 63 79 2c 63 78 2b 63 6f 73 28 68 61 29 2a 72 2a 30 2e 35 2c 63 79 2b 73 69 6e 28 68 61 cx,cy,cx+cos(ha)*r*0.5,cy+sin(ha
39320 29 2a 72 2a 30 2e 35 2c 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 48 20 20 6c 69 6e 65 28 70 )*r*0.5,0xFF000000);...H..line(p
39340 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 63 78 2c 63 79 2c 63 78 2b 63 6f 73 28 6d 61 29 2a 72 2a 30 x,a->w,a->h,cx,cy,cx+cos(ma)*r*0
39360 2e 37 2c 63 79 2b 73 69 6e 28 6d 61 29 2a 72 2a 30 2e 37 2c 30 78 46 46 30 30 30 30 30 30 29 3b .7,cy+sin(ma)*r*0.7,0xFF000000);
39380 00 00 00 48 20 20 6c 69 6e 65 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 63 78 2c 63 79 2c 63 78 ...H..line(px,a->w,a->h,cx,cy,cx
393a0 2b 63 6f 73 28 73 61 29 2a 72 2a 30 2e 39 2c 63 79 2b 73 69 6e 28 73 61 29 2a 72 2a 30 2e 39 2c +cos(sa)*r*0.9,cy+sin(sa)*r*0.9,
393c0 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 26 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 0xFFFF0000);...&..wl_surface_att
393e0 61 63 68 28 61 2d 3e 77 73 2c 61 2d 3e 62 75 66 2c 30 2c 30 29 3b 00 00 00 30 20 20 77 6c 5f 73 ach(a->ws,a->buf,0,0);...0..wl_s
39400 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 30 2c 30 2c 61 urface_damage_buffer(a->ws,0,0,a
39420 2d 3e 77 2c 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 ->w,a->h);......wl_surface_commi
39440 74 28 61 2d 3e 77 73 29 3b 00 00 00 12 20 20 61 2d 3e 72 65 64 72 61 77 3d 66 61 6c 73 65 3b 00 t(a->ws);......a->redraw=false;.
39460 00 00 01 7d 00 00 00 00 00 00 00 3f 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 ...}.......?static.void.xt_close
39480 28 76 6f 69 64 2a 64 2c 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 2a 78 74 29 7b (void*d,struct.xdg_toplevel*xt){
394a0 72 75 6e 6e 69 6e 67 3d 30 3b 7d 00 00 00 00 00 00 00 58 73 74 61 74 69 63 20 76 6f 69 64 20 78 running=0;}.......Xstatic.void.x
394c0 74 5f 63 66 67 28 76 6f 69 64 2a 64 2c 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c t_cfg(void*d,struct.xdg_toplevel
394e0 2a 78 74 2c 69 6e 74 33 32 5f 74 20 77 2c 69 6e 74 33 32 5f 74 20 68 2c 73 74 72 75 63 74 20 77 *xt,int32_t.w,int32_t.h,struct.w
39500 6c 5f 61 72 72 61 79 2a 73 29 7b 00 00 00 11 20 20 73 74 72 75 63 74 20 61 70 70 2a 61 3d 64 3b l_array*s){......struct.app*a=d;
39520 00 00 00 23 20 20 69 66 28 77 3e 30 26 26 68 3e 30 26 26 28 77 21 3d 61 2d 3e 77 7c 7c 68 21 3d ...#..if(w>0&&h>0&&(w!=a->w||h!=
39540 61 2d 3e 68 29 29 7b 00 00 00 12 20 20 20 20 61 2d 3e 77 3d 77 3b 61 2d 3e 68 3d 68 3b 00 00 00 a->h)){........a->w=w;a->h=h;...
39560 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 13 20 20 20 20 61 2d 3e 72 .....destroy_buf(a);........a->r
39580 65 64 72 61 77 3d 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 edraw=true;......}....}.......As
395a0 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 2a 64 2c 73 74 72 75 63 74 20 tatic.void.xs_cfg(void*d,struct.
395c0 78 64 67 5f 73 75 72 66 61 63 65 2a 78 73 2c 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 7b xdg_surface*xs,uint32_t.serial){
395e0 00 00 00 11 20 20 73 74 72 75 63 74 20 61 70 70 2a 61 3d 64 3b 00 00 00 27 20 20 78 64 67 5f 73 ......struct.app*a=d;...'..xdg_s
39600 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 73 65 72 69 61 6c 29 3b urface_ack_configure(xs,serial);
39620 00 00 00 15 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 3d 74 72 75 65 3b 00 00 00 11 20 20 61 ......a->configured=true;......a
39640 2d 3e 72 65 64 72 61 77 3d 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 58 73 74 61 74 69 ->redraw=true;....}.......Xstati
39660 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 2a 64 2c 73 74 72 75 63 74 20 c.void.reg_global(void*d,struct.
39680 77 6c 5f 72 65 67 69 73 74 72 79 2a 72 2c 75 69 6e 74 33 32 5f 74 20 69 64 2c 63 6f 6e 73 74 20 wl_registry*r,uint32_t.id,const.
396a0 63 68 61 72 2a 69 2c 75 69 6e 74 33 32 5f 74 20 76 29 7b 00 00 00 11 20 20 73 74 72 75 63 74 20 char*i,uint32_t.v){......struct.
396c0 61 70 70 2a 61 3d 64 3b 00 00 00 20 20 20 69 66 28 21 73 74 72 63 6d 70 28 69 2c 22 77 6c 5f 63 app*a=d;......if(!strcmp(i,"wl_c
396e0 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 3e 20 20 20 20 61 2d 3e 63 6f 6d 70 3d 77 6c 5f 72 ompositor"))...>....a->comp=wl_r
39700 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 69 64 2c 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 egistry_bind(r,id,&wl_compositor
39720 5f 69 6e 74 65 72 66 61 63 65 2c 34 29 3b 00 00 00 1e 20 20 65 6c 73 65 20 69 66 28 21 73 74 72 _interface,4);......else.if(!str
39740 63 6d 70 28 69 2c 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 36 20 20 20 20 61 2d 3e 73 68 6d 3d 77 cmp(i,"wl_shm"))...6....a->shm=w
39760 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 69 64 2c 26 77 6c 5f 73 68 6d 5f 69 6e 74 l_registry_bind(r,id,&wl_shm_int
39780 65 72 66 61 63 65 2c 31 29 3b 00 00 00 24 20 20 65 6c 73 65 20 69 66 28 21 73 74 72 63 6d 70 28 erface,1);...$..else.if(!strcmp(
397a0 69 2c 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 7b 00 00 00 3a 20 20 20 20 61 2d 3e 77 6d 3d i,"xdg_wm_base")){...:....a->wm=
397c0 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 69 64 2c 26 78 64 67 5f 77 6d 5f 62 61 wl_registry_bind(r,id,&xdg_wm_ba
397e0 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 31 29 3b 00 00 00 3f 20 20 20 20 73 74 61 74 69 63 20 63 se_interface,1);...?....static.c
39800 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 onst.struct.xdg_wm_base_listener
39820 20 6c 3d 7b 2e 70 69 6e 67 3d 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 29 20 20 20 20 78 64 67 5f 77 .l={.ping=wm_ping};...)....xdg_w
39840 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 26 6c 2c 61 29 3b m_base_add_listener(a->wm,&l,a);
39860 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 0f 69 6e 74 20 6d 61 69 6e 28 76 6f 69 ......}....}........int.main(voi
39880 64 29 7b 00 00 00 13 20 20 73 74 72 75 63 74 20 61 70 70 20 61 3d 7b 30 7d 3b 00 00 00 12 20 20 d){......struct.app.a={0};......
398a0 61 2e 77 3d 34 30 30 3b 61 2e 68 3d 34 30 30 3b 00 00 00 18 20 20 73 69 67 6e 61 6c 28 53 49 47 a.w=400;a.h=400;......signal(SIG
398c0 49 4e 54 2c 6f 6e 5f 73 69 67 29 3b 00 00 00 1f 20 20 61 2e 64 3d 77 6c 5f 64 69 73 70 6c 61 79 INT,on_sig);......a.d=wl_display
398e0 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 13 20 20 69 66 28 21 61 2e 64 29 72 65 74 _connect(NULL);......if(!a.d)ret
39900 75 72 6e 20 31 3b 00 00 00 25 20 20 61 2e 72 65 67 3d 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 urn.1;...%..a.reg=wl_display_get
39920 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 43 20 20 73 74 61 74 69 63 20 63 6f 6e 73 _registry(a.d);...C..static.cons
39940 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c t.struct.wl_registry_listener.rl
39960 3d 7b 2e 67 6c 6f 62 61 6c 3d 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 29 20 20 77 6c 5f 72 ={.global=reg_global};...)..wl_r
39980 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 26 72 6c 2c 26 egistry_add_listener(a.reg,&rl,&
399a0 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e a);......wl_display_roundtrip(a.
399c0 64 29 3b 00 00 00 25 20 20 69 66 28 21 61 2e 63 6f 6d 70 7c 7c 21 61 2e 73 68 6d 7c 7c 21 61 2e d);...%..if(!a.comp||!a.shm||!a.
399e0 77 6d 29 72 65 74 75 72 6e 20 31 3b 00 00 00 2c 20 20 61 2e 77 73 3d 77 6c 5f 63 6f 6d 70 6f 73 wm)return.1;...,..a.ws=wl_compos
39a00 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 2e itor_create_surface(a.comp);....
39a20 20 20 61 2e 78 73 3d 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 ..a.xs=xdg_wm_base_get_xdg_surfa
39a40 63 65 28 61 2e 77 6d 2c 61 2e 77 73 29 3b 00 00 00 43 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 ce(a.wm,a.ws);...C..static.const
39a60 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 6c .struct.xdg_surface_listener.xsl
39a80 3d 7b 2e 63 6f 6e 66 69 67 75 72 65 3d 78 73 5f 63 66 67 7d 3b 00 00 00 29 20 20 78 64 67 5f 73 ={.configure=xs_cfg};...)..xdg_s
39aa0 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 26 78 73 6c 2c 26 61 urface_add_listener(a.xs,&xsl,&a
39ac0 29 3b 00 00 00 26 20 20 61 2e 78 74 3d 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 );...&..a.xt=xdg_surface_get_top
39ae0 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 54 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 level(a.xs);...T..static.const.s
39b00 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 6c 3d truct.xdg_toplevel_listener.xtl=
39b20 7b 2e 63 6f 6e 66 69 67 75 72 65 3d 78 74 5f 63 66 67 2c 2e 63 6c 6f 73 65 3d 78 74 5f 63 6c 6f {.configure=xt_cfg,.close=xt_clo
39b40 73 65 7d 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 se};...*..xdg_toplevel_add_liste
39b60 6e 65 72 28 61 2e 78 74 2c 26 78 74 6c 2c 26 61 29 3b 00 00 00 29 20 20 78 64 67 5f 74 6f 70 6c ner(a.xt,&xtl,&a);...)..xdg_topl
39b80 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 evel_set_title(a.xt,"wlclock");.
39ba0 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 .....wl_surface_commit(a.ws);...
39bc0 2f 20 20 77 68 69 6c 65 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 77 6c 5f 64 69 73 70 6c 61 /..while(!a.configured)wl_displa
39be0 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 y_dispatch(a.d);......render(&a)
39c00 3b 00 00 00 36 20 20 69 6e 74 20 74 66 64 3d 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c ;...6..int.tfd=timerfd_create(CL
39c20 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 40 20 OCK_MONOTONIC,TFD_CLOEXEC);...@.
39c40 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 30 2c 26 28 73 74 72 75 63 74 20 .timerfd_settime(tfd,0,&(struct.
39c60 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 30 7d 2c 7b 31 2c 30 7d 7d 2c 4e 55 4c 4c 29 3b 00 itimerspec){{1,0},{1,0}},NULL);.
39c80 00 00 11 20 20 77 68 69 6c 65 28 72 75 6e 6e 69 6e 67 29 7b 00 00 00 25 20 20 20 20 77 6c 5f 64 .....while(running){...%....wl_d
39ca0 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 isplay_dispatch_pending(a.d);...
39cc0 46 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 5b 32 5d 3d 7b 7b 77 6c 5f 64 69 73 F....struct.pollfd.p[2]={{wl_dis
39ce0 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 50 4f 4c 4c 49 4e 7d 2c 7b 74 66 64 2c 50 4f play_get_fd(a.d),POLLIN},{tfd,PO
39d00 4c 4c 49 4e 7d 7d 3b 00 00 00 11 20 20 20 20 70 6f 6c 6c 28 70 2c 32 2c 2d 31 29 3b 00 00 00 34 LLIN}};........poll(p,2,-1);...4
39d20 20 20 20 20 69 66 28 70 5b 30 5d 2e 72 65 76 65 6e 74 73 26 50 4f 4c 4c 49 4e 29 77 6c 5f 64 69 ....if(p[0].revents&POLLIN)wl_di
39d40 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 1c 20 20 20 20 69 66 28 70 splay_dispatch(a.d);........if(p
39d60 5b 31 5d 2e 72 65 76 65 6e 74 73 26 50 4f 4c 4c 49 4e 29 7b 00 00 00 28 20 20 20 20 20 20 75 69 [1].revents&POLLIN){...(......ui
39d80 6e 74 36 34 5f 74 20 74 3b 72 65 61 64 28 74 66 64 2c 26 74 2c 73 69 7a 65 6f 66 28 74 29 29 3b nt64_t.t;read(tfd,&t,sizeof(t));
39da0 00 00 00 14 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 3d 74 72 75 65 3b 00 00 00 05 20 20 20 20 ..........a.redraw=true;........
39dc0 7d 00 00 00 1b 20 20 20 20 69 66 28 61 2e 72 65 64 72 61 77 29 72 65 6e 64 65 72 28 26 61 29 3b }........if(a.redraw)render(&a);
39de0 35 81 f5 18 00 00 00 00 1a 00 00 00 19 00 00 00 b2 00 00 00 10 00 00 00 d7 00 00 00 06 00 00 00 5...............................
39e00 33 02 00 00 00 00 00 00 d0 14 00 00 00 00 00 00 c6 18 00 00 00 00 00 00 35 81 5f d0 00 00 00 2e 3.......................5._.....
39e20 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 2f 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff ...0.........../................
39e40 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d ..............................i.
39fa0 a3 06 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 f8 00 00 00 1f 23 ...............................#
39fc0 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 define._POSIX_C_SOURCE.200809L..
39fe0 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f .&#include."xdg-shell-client-pro
3a000 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 tocol.h"....#include.<errno.h>..
3a020 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 ..#include.<fcntl.h>....#include
3a040 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 .<math.h>....#include.<poll.h>..
3a060 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 ..#include.<signal.h>....#includ
3a080 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e e.<stdbool.h>....#include.<stdin
3a0a0 74 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 t.h>....#include.<stdio.h>....#i
3a0c0 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 nclude.<stdlib.h>....#include.<s
3a0e0 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 tring.h>....#include.<sys/mman.h
3a100 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 >....#include.<sys/timerfd.h>...
3a120 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c .#include.<time.h>....#include.<
3a140 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 unistd.h>....#include.<wayland-c
3a160 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 lient.h>........#ifndef.M_PI...#
3a180 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 #define.M_PI.3.14159265358979323
3a1a0 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 846....#endif....#ifndef.M_PI_2.
3a1c0 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 ..%#define.M_PI_2.1.570796326794
3a1e0 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 89661923....#endif.......)static
3a200 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d .volatile.sig_atomic_t.running.=
3a220 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 .1;....static.void.on_sig(int.s)
3a240 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 .{......(void)s;......running.=.
3a260 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 0;....}........struct.app.{.....
3a280 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 .struct.wl_display.*d;......stru
3a2a0 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 ct.wl_registry.*reg;......struct
3a2c0 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 .wl_compositor.*comp;......struc
3a2e0 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 t.wl_shm.*shm;......struct.xdg_w
3a300 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 m_base.*wm;......struct.wl_surfa
3a320 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 ce.*ws;......struct.xdg_surface.
3a340 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 *xs;......struct.xdg_toplevel.*x
3a360 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 t;......void.*pixels;......struc
3a380 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b t.wl_buffer.*buf;......int.w,.h;
3a3a0 00 00 00 0d 20 20 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 ......int.bw,.bh;......bool.conf
3a3c0 69 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 igured;......bool.redraw;....};.
3a3e0 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 ......Jstatic.void.wm_ping(void.
3a400 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 *data,.struct.xdg_wm_base.*wm,.u
3a420 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 int32_t.serial).{......xdg_wm_ba
3a440 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 se_pong(wm,.serial);....}.......
3a460 24 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 $static.int.create_shm(size_t.si
3a480 7a 65 29 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c ze).{...#..char.t[].=."/tmp/wlcl
3a4a0 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 ock-XXXXXX";......int.fd.=.mkste
3a4c0 6d 70 28 74 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 mp(t);......if.(fd.<.0)........e
3a4e0 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 1e 20 20 69 66 20 xit(1);......unlink(t);......if.
3a500 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 00 00 00 0c 20 20 20 (ftruncate(fd,.size).<.0).......
3a520 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 .exit(1);......return.fd;....}..
3a540 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 .....(static.void.destroy_buf(st
3a560 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 ruct.app.*a).{......if.(!a->buf)
3a580 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 ........return;...*..size_t.size
3a5a0 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 .=.(size_t)a->bw.*.a->bh.*.4;...
3a5c0 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 ...wl_buffer_destroy(a->buf);...
3a5e0 1a 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 ...munmap(a->pixels,.size);.....
3a600 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d .a->buf.=.NULL;......a->pixels.=
3a620 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 .NULL;....}.......&static.void.a
3a640 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 lloc_buf(struct.app.*a).{......d
3a660 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 estroy_buf(a);...(..size_t.size.
3a680 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 =.(size_t)a->w.*.a->h.*.4;......
3a6a0 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 int.fd.=.create_shm(size);...J..
3a6c0 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f a->pixels.=.mmap(NULL,.size,.PRO
3a6e0 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c T_READ.|.PROT_WRITE,.MAP_SHARED,
3a700 20 66 64 2c 20 30 29 3b 00 00 00 1e 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d .fd,.0);......if.(a->pixels.==.M
3a720 41 50 5f 46 41 49 4c 45 44 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 20 AP_FAILED)........exit(1);...B..
3a740 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 struct.wl_shm_pool.*pool.=.wl_sh
3a760 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b m_create_pool(a->shm,.fd,.size);
3a780 00 00 00 43 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 ...C..a->buf.=.wl_shm_pool_creat
3a7a0 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d e_buffer(pool,.0,.a->w,.a->h,.a-
3a7c0 3e 77 20 2a 20 34 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 >w.*.4,...=.....................
3a7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 ................WL_SHM_FORMAT_AR
3a800 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f GB8888);......wl_shm_pool_destro
3a820 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0f 20 20 61 2d y(pool);......close(fd);......a-
3a840 3e 62 77 20 3d 20 61 2d 3e 77 3b 00 00 00 0f 20 20 61 2d 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 >bw.=.a->w;......a->bh.=.a->h;..
3a860 00 01 7d 00 00 00 00 00 00 00 4c 73 74 61 74 69 63 20 76 6f 69 64 20 6c 69 6e 65 28 75 69 6e 74 ..}.......Lstatic.void.line(uint
3a880 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 32_t.*px,.int.w,.int.h,.int.x0,.
3a8a0 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 1e 20 20 20 20 20 int.y0,.int.x1,.int.y1,.........
3a8c0 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 ............uint32_t.c).{.../..i
3a8e0 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 nt.dx.=.abs(x1.-.x0),.sx.=.x0.<.
3a900 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 x1.?.1.:.-1;...0..int.dy.=.-abs(
3a920 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b y1.-.y0),.sy.=.y0.<.y1.?.1.:.-1;
3a940 00 00 00 14 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 3b 00 00 00 0d 20 20 77 68 ......int.err.=.dx.+.dy;......wh
3a960 69 6c 65 20 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 ile.(1).{.../....if.(x0.>=.0.&&.
3a980 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 1a x0.<.w.&&.y0.>=.0.&&.y0.<.h)....
3a9a0 20 20 20 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 1d 20 20 ......px[y0.*.w.+.x0].=.c;......
3a9c0 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 ..if.(x0.==.x1.&&.y0.==.y1).....
3a9e0 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 15 20 20 20 20 69 6e 74 20 65 32 20 3d 20 32 20 2a 20 .....break;........int.e2.=.2.*.
3aa00 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 10 20 err;........if.(e2.>=.dy).{.....
3aa20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 2b 3d 20 73 .....err.+=.dy;..........x0.+=.s
3aa40 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 x;........}........if.(e2.<=.dx)
3aa60 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 20 20 20 20 .{..........err.+=.dx;..........
3aa80 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 y0.+=.sy;........}......}....}..
3aaa0 00 00 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f .....Estatic.void.circle(uint32_
3aac0 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 t.*px,.int.w,.int.h,.int.cx,.int
3aae0 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .cy,.int.r,.....................
3ab00 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 ..uint32_t.c).{..."..int.x.=.0,.
3ab20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 y.=.r,.d.=.3.-.2.*.r;......while
3ab40 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d .(y.>=.x).{...H....int.p[8][2].=
3ab60 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 .{{cx.+.x,.cy.+.y},.{cx.-.x,.cy.
3ab80 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 +.y},.{cx.+.x,.cy.-.y},...H.....
3aba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 ..............{cx.-.x,.cy.-.y},.
3abc0 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 {cx.+.y,.cy.+.x},.{cx.-.y,.cy.+.
3abe0 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 x},...7...................{cx.+.
3ac00 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 y,.cy.-.x},.{cx.-.y,.cy.-.x}};..
3ac20 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b ......for.(int.i.=.0;.i.<.8;.i++
3ac40 29 00 00 00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 )...E......if.(p[i][0].>=.0.&&.p
3ac60 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b [i][0].<.w.&&.p[i][1].>=.0.&&.p[
3ac80 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d i][1].<.h)...&........px[p[i][1]
3aca0 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 .*.w.+.p[i][0]].=.c;........if.(
3acc0 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 d.>.0).{..........d.+=.4.*.(x.-.
3ace0 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 y).+.10;..........y--;........}.
3ad00 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 else..........d.+=.4.*.x.+.6;...
3ad20 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 .....x++;......}....}.......#sta
3ad40 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b tic.void.render(struct.app.*a).{
3ad60 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 .../..if.(!a->configured.||.a->w
3ad80 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 .<=.0.||.a->h.<=.0)........retur
3ada0 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 20 61 6c 6c 6f n;......if.(!a->buf)........allo
3adc0 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d c_buf(a);......uint32_t.*px.=.a-
3ade0 3e 70 69 78 65 6c 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 61 >pixels;...$..memset(px,.0xFF,.a
3ae00 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 ->w.*.a->h.*.4);......time_t.tt.
3ae20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 =.time(NULL);......struct.tm.tmv
3ae40 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 ;......localtime_r(&tt,.&tmv);..
3ae60 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 .#..int.cx.=.a->w./.2,.cy.=.a->h
3ae80 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 ./.2;.../..int.r.=.(a->w.<.a->h.
3aea0 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 66 ?.a->w.:.a->h)./.2.-.10;......if
3aec0 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 30 20 20 63 69 72 63 .(r.<.5)........r.=.5;...0..circ
3aee0 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 le(px,.a->w,.a->h,.cx,.cy,.r,.0x
3af00 46 46 30 30 30 30 30 30 29 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 FF000000);......for.(int.i.=.0;.
3af20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 i.<.12;.i++).{........double.ang
3af40 20 3d 20 69 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b .=.i./.12.0.*.2.*.M_PI.-.M_PI_2;
3af60 00 00 00 4c 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 ...L....line(px,.a->w,.a->h,.cx.
3af80 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 2c 20 63 79 20 2b 20 73 69 6e 28 +.cos(ang).*.(r.-.10),.cy.+.sin(
3afa0 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 63 78 20 ang).*.(r.-.10),...G.........cx.
3afc0 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 +.cos(ang).*.(r.-.2),.cy.+.sin(a
3afe0 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 ng).*.(r.-.2),.0xFF000000);.....
3b000 20 7d 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f .}...4..double.sa.=.tmv.tm_sec./
3b020 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 .60.0.*.2.*.M_PI.-.M_PI_2;...J..
3b040 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d double.ma.=.(tmv.tm_min.+.tmv.tm
3b060 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d _sec./.60.0)./.60.0.*.2.*.M_PI.-
3b080 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 4c 20 20 20 .M_PI_2;......double.ha.=...L...
3b0a0 20 20 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d ...((tmv.tm_hour.%.12).+.(tmv.tm
3b0c0 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 _min./.60.0))./.12.0.*.2.*.M_PI.
3b0e0 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4e 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d -.M_PI_2;...N..line(px,.a->w,.a-
3b100 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 >h,.cx,.cy,.cx.+.cos(ha).*.r.*.0
3b120 2e 35 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 2c 00 00 00 13 20 .5,.cy.+.sin(ha).*.r.*.0.5,.....
3b140 20 20 20 20 20 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 4e 20 20 6c 69 6e 65 28 70 78 2c ......0xFF000000);...N..line(px,
3b160 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 .a->w,.a->h,.cx,.cy,.cx.+.cos(ma
3b180 29 20 2a 20 72 20 2a 20 30 2e 37 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 ).*.r.*.0.7,.cy.+.sin(ma).*.r.*.
3b1a0 30 2e 37 2c 00 00 00 13 20 20 20 20 20 20 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 4e 20 0.7,...........0xFF000000);...N.
3b1c0 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 .line(px,.a->w,.a->h,.cx,.cy,.cx
3b1e0 20 2b 20 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 2c 20 63 79 20 2b 20 73 69 6e 28 73 .+.cos(sa).*.r.*.0.9,.cy.+.sin(s
3b200 61 29 20 2a 20 72 20 2a 20 30 2e 39 2c 00 00 00 13 20 20 20 20 20 20 20 30 78 46 46 46 46 30 30 a).*.r.*.0.9,...........0xFFFF00
3b220 30 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 00);...)..wl_surface_attach(a->w
3b240 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 63 s,.a->buf,.0,.0);...4..wl_surfac
3b260 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e e_damage_buffer(a->ws,.0,.0,.a->
3b280 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 w,.a->h);......wl_surface_commit
3b2a0 28 61 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b (a->ws);......a->redraw.=.false;
3b2c0 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 ....}.......Gstatic.void.xt_clos
3b2e0 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a e(void.*d,.struct.xdg_toplevel.*
3b300 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 4a 73 74 61 74 xt).{.running.=.0;.}.......Jstat
3b320 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 ic.void.xt_cfg(void.*d,.struct.x
3b340 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 dg_toplevel.*xt,.int32_t.w,.int3
3b360 32 5f 74 20 68 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 2_t.h,...(...................str
3b380 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 uct.wl_array.*s).{......struct.a
3b3a0 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e pp.*a.=.d;...3..if.(w.>.0.&&.h.>
3b3c0 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 .0.&&.(w.!=.a->w.||.h.!=.a->h)).
3b3e0 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d {........a->w.=.w;........a->h.=
3b400 20 68 3b 00 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 15 20 20 .h;........destroy_buf(a);......
3b420 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 ..a->redraw.=.true;......}....}.
3b440 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a ......Fstatic.void.xs_cfg(void.*
3b460 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 d,.struct.xdg_surface.*xs,.uint3
3b480 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 2_t.serial).{......struct.app.*a
3b4a0 20 3d 20 64 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 .=.d;...(..xdg_surface_ack_confi
3b4c0 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 gure(xs,.serial);......a->config
3b4e0 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 13 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 ured.=.true;......a->redraw.=.tr
3b500 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f ue;....}.......Cstatic.void.reg_
3b520 67 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 global(void.*d,.struct.wl_regist
3b540 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 33 20 20 20 20 20 20 20 20 20 ry.*r,.uint32_t.id,...3.........
3b560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c 20 75 69 6e ..............const.char.*i,.uin
3b580 74 33 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 t32_t.v).{......struct.app.*a.=.
3b5a0 64 3b 00 00 00 22 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 6f d;..."..if.(!strcmp(i,."wl_compo
3b5c0 73 69 74 6f 72 22 29 29 00 00 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 sitor"))...C....a->comp.=.wl_reg
3b5e0 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 istry_bind(r,.id,.&wl_compositor
3b600 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 20 20 20 65 6c 73 65 20 69 66 20 28 21 73 _interface,.4);......else.if.(!s
3b620 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 20 20 61 2d 3e 73 68 trcmp(i,."wl_shm"))...;....a->sh
3b640 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f m.=.wl_registry_bind(r,.id,.&wl_
3b660 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 20 shm_interface,.1);...'..else.if.
3b680 28 21 73 74 72 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 (!strcmp(i,."xdg_wm_base")).{...
3b6a0 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c ?....a->wm.=.wl_registry_bind(r,
3b6c0 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b .id,.&xdg_wm_base_interface,.1);
3b6e0 00 00 00 43 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f ...C....static.const.struct.xdg_
3b700 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d wm_base_listener.l.=.{.ping.=.wm
3b720 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c _ping};...+....xdg_wm_base_add_l
3b740 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 istener(a->wm,.&l,.a);......}...
3b760 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 .}........int.main(void).{......
3b780 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d 20 34 struct.app.a.=.{0};......a.w.=.4
3b7a0 30 30 3b 00 00 00 0c 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 00;......a.h.=.400;......signal(
3b7c0 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 SIGINT,.on_sig);...!..a.d.=.wl_d
3b7e0 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 0b 20 20 69 66 20 28 21 isplay_connect(NULL);......if.(!
3b800 61 2e 64 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 a.d)........return.1;...'..a.reg
3b820 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b .=.wl_display_get_registry(a.d);
3b840 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 ...G..static.const.struct.wl_reg
3b860 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 20 72 istry_listener.rl.=.{.global.=.r
3b880 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 eg_global};...+..wl_registry_add
3b8a0 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c 20 20 _listener(a.reg,.&rl,.&a);......
3b8c0 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 21 20 20 wl_display_roundtrip(a.d);...!..
3b8e0 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 00 if.(!a.comp.||.!a.shm.||.!a.wm).
3b900 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f .......return.1;......a.ws.=.wl_
3b920 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 compositor_create_surface(a.comp
3b940 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 );...1..a.xs.=.xdg_wm_base_get_x
3b960 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 61 dg_surface(a.wm,.a.ws);...G..sta
3b980 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 tic.const.struct.xdg_surface_lis
3b9a0 74 65 6e 65 72 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 tener.xsl.=.{.configure.=.xs_cfg
3b9c0 7d 3b 00 00 00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 };...+..xdg_surface_add_listener
3b9e0 28 61 2e 78 73 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 (a.xs,.&xsl,.&a);...(..a.xt.=.xd
3ba00 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 g_surface_get_toplevel(a.xs);...
3ba20 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 G..static.const.struct.xdg_tople
3ba40 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d vel_listener.xtl.=.{.configure.=
3ba60 20 78 74 5f 63 66 67 2c 00 00 00 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .xt_cfg,...F....................
3ba80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e ................................
3baa0 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c close.=.xt_close};...,..xdg_topl
3bac0 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 26 61 evel_add_listener(a.xt,.&xtl,.&a
3bae0 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 );...*..xdg_toplevel_set_title(a
3bb00 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 .xt,."wlclock");......wl_surface
3bb20 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 17 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f _commit(a.ws);......while.(!a.co
3bb40 6e 66 69 67 75 72 65 64 29 00 00 00 1d 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 nfigured)........wl_display_disp
3bb60 61 74 63 68 28 61 2e 64 29 3b 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 39 20 atch(a.d);......render(&a);...9.
3bb80 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f .int.tfd.=.timerfd_create(CLOCK_
3bba0 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 MONOTONIC,.TFD_CLOEXEC);...F..ti
3bbc0 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 merfd_settime(tfd,.0,.&(struct.i
3bbe0 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c timerspec){{1,.0},.{1,.0}},.NULL
3bc00 29 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 25 20 20 20 );......while.(running).{...%...
3bc20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 .wl_display_dispatch_pending(a.d
3bc40 29 3b 00 00 00 4b 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 70 5b 32 5d 20 3d 20 7b );...K....struct.pollfd.p[2].=.{
3bc60 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d {wl_display_get_fd(a.d),.POLLIN}
3bc80 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 13 20 20 20 20 70 6f 6c 6c 28 70 2c ,.{tfd,.POLLIN}};........poll(p,
3bca0 20 32 2c 20 2d 31 29 3b 00 00 00 1e 20 20 20 20 69 66 20 28 70 5b 30 5d 2e 72 65 76 65 6e 74 73 .2,.-1);........if.(p[0].revents
3bcc0 20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 1f 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 .&.POLLIN)..........wl_display_d
3bce0 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 20 20 20 20 20 69 66 20 28 70 5b 31 5d 2e 72 65 ispatch(a.d);........if.(p[1].re
3bd00 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 11 20 20 20 20 20 20 75 69 6e 74 36 vents.&.POLLIN).{..........uint6
3bd20 34 5f 74 20 74 3b 00 00 00 1f 20 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 2c 20 73 69 4_t.t;..........read(tfd,.&t,.si
3bd40 7a 65 6f 66 28 74 29 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 zeof(t));..........a.redraw.=.tr
3bd60 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 11 20 20 20 20 69 66 20 28 61 2e 72 65 64 72 61 77 ue;........}........if.(a.redraw
3bd80 29 00 00 00 11 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 )..........render(&a);......}...
3bda0 0d 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 12 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 ...close(tfd);......destroy_buf(
3bdc0 26 61 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 &a);......wl_display_disconnect(
3bde0 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 a.d);......return.0;....}5......
3be00 00 00 00 00 00 00 00 00 00 f8 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3be20 00 56 1b 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 2f 00 00 00 31 00 00 00 .V...............5._..../...1...
3be40 00 00 00 00 00 00 00 00 30 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 ........0.......................
3be60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3be80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bf00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bf20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bf60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bf80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a3 06 04 01 00 00 00 .......................i........
3bfc0 00 00 f5 18 00 00 00 dc 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 dd 00 ........................}.......
3bfe0 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 d6 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................................
3c000 1b 20 20 20 20 69 66 28 61 2e 72 65 64 72 61 77 29 72 65 6e 64 65 72 28 26 61 29 3b f5 18 00 00 .....if(a.redraw)render(&a);....
3c020 00 d7 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 c4 00 00 00 00 00 00 00 00 00 00 00 01 ................................
3c040 00 00 00 22 20 20 20 20 77 68 69 6c 65 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 ..."....while(wl_display_prepare
3c060 5f 72 65 61 64 28 f5 18 00 00 00 c5 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 b9 00 00 _read(..........................
3c080 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 ba 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c0a0 f5 18 00 00 00 a8 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 00 a9 00 00 ................................
3c0c0 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 8f 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0c ................................
3c0e0 20 20 73 74 72 75 63 74 20 61 70 70 f5 18 00 00 00 90 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 ..struct.app....................
3c100 00 00 00 73 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 11 20 20 69 6e 74 20 63 78 3d 61 2d 3e ...s..................int.cx=a->
3c120 77 2f 32 2c 63 f5 18 00 00 00 74 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 w/2,c.....t.....................
3c140 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 ...............................5
3c160 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 73 00 00 00 11 00 00 00 00 .......................s........
3c180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 f5 18 00 00 00 00 73 00 00 .............................s..
3c1a0 00 11 00 00 00 00 00 00 00 00 00 00 00 1c 00 00 00 0c 00 00 00 00 0b 00 00 00 00 00 00 00 00 00 ................................
3c1c0 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 8f 00 00 00 0c 00 00 00 00 00 00 00 00 ................................
3c1e0 00 00 00 19 00 00 00 02 00 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 ................................
3c200 00 00 00 f5 18 00 00 00 00 a8 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 11 00 00 00 00 00 00 ................................
3c220 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 b9 ................................
3c240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 22 00 00 00 00 14 00 00 00 00 00 00 00 ..................."............
3c260 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 c4 00 00 00 22 00 00 00 00 00 00 ........................."......
3c280 00 00 00 00 00 12 00 00 00 1b 00 00 00 00 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 ................................
3c2a0 00 00 00 00 00 f5 18 00 00 00 00 d6 00 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 01 ................................
3c2c0 00 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 51 00 00 00 00 00 00 00 35 81 5f d0 00 ...................Q.......5._..
3c2e0 00 00 30 00 00 00 32 00 00 00 00 00 00 00 00 00 00 00 31 00 00 00 dd 00 00 00 00 00 00 00 00 ff ..0...2...........1.............
3c300 ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c460 00 69 9d a3 07 04 01 00 00 00 14 00 f5 18 00 00 00 1a 00 00 00 fb 00 00 00 dd 00 00 00 bd 00 00 .i..............................
3c480 00 2d 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 7b 28 76 6f 69 .-static.void.on_sig(int.s){(voi
3c4a0 64 29 73 3b 72 75 6e 6e 69 6e 67 3d 30 3b 7d 00 00 00 00 00 00 00 0b 73 74 72 75 63 74 20 61 70 d)s;running=0;}........struct.ap
3c4c0 70 7b 00 00 00 16 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 2a 64 3b 00 00 00 19 p{......struct.wl_display*d;....
3c4e0 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 2a 72 65 67 3b 00 00 00 1c 20 20 73 ..struct.wl_registry*reg;......s
3c500 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 2a 63 6f 6d 70 3b 00 00 00 14 20 20 73 truct.wl_compositor*comp;......s
3c520 74 72 75 63 74 20 77 6c 5f 73 68 6d 2a 73 68 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 78 64 truct.wl_shm*shm;......struct.xd
3c540 67 5f 77 6d 5f 62 61 73 65 2a 77 6d 3b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 g_wm_base*wm;......struct.wl_sur
3c560 66 61 63 65 2a 77 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 face*ws;......struct.xdg_surface
3c580 2a 78 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 2a 78 74 *xs;......struct.xdg_toplevel*xt
3c5a0 3b 00 00 00 0e 20 20 76 6f 69 64 2a 70 69 78 65 6c 73 3b 00 00 00 17 20 20 73 74 72 75 63 74 20 ;......void*pixels;......struct.
3c5c0 77 6c 5f 62 75 66 66 65 72 2a 62 75 66 3b 00 00 00 0a 20 20 69 6e 74 20 77 2c 68 3b 00 00 00 0c wl_buffer*buf;......int.w,h;....
3c5e0 20 20 69 6e 74 20 62 77 2c 62 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 ..int.bw,bh;......bool.configure
3c600 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 d;......bool.redraw;....};......
3c620 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 2a 64 61 74 61 2c .Estatic.void.wm_ping(void*data,
3c640 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 2a 77 6d 2c 75 69 6e 74 33 32 5f 74 20 73 struct.xdg_wm_base*wm,uint32_t.s
3c660 65 72 69 61 6c 29 7b 00 00 00 1e 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d erial){......xdg_wm_base_pong(wm
3c680 2c 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 69 6e 74 ,serial);....}.......#static.int
3c6a0 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 7b 00 00 00 21 20 20 63 .create_shm(size_t.size){...!..c
3c6c0 68 61 72 20 74 5b 5d 3d 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 har.t[]="/tmp/wlclock-XXXXXX";..
3c6e0 00 14 20 20 69 6e 74 20 66 64 3d 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 12 20 20 69 66 28 66 ....int.fd=mkstemp(t);......if(f
3c700 64 3c 30 29 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 22 d<0)exit(1);......unlink(t);..."
3c720 20 20 69 66 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 73 69 7a 65 29 3c 30 29 65 78 69 74 28 31 ..if(ftruncate(fd,size)<0)exit(1
3c740 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 );......return.fd;....}.......&s
3c760 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 tatic.void.destroy_buf(struct.ap
3c780 70 2a 61 29 7b 00 00 00 14 20 20 69 66 28 21 61 2d 3e 62 75 66 29 72 65 74 75 72 6e 3b 00 00 00 p*a){......if(!a->buf)return;...
3c7a0 24 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 3d 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 2a 61 2d 3e $..size_t.size=(size_t)a->bw*a->
3c7c0 62 68 2a 34 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e bh*4;......wl_buffer_destroy(a->
3c7e0 62 75 66 29 3b 00 00 00 19 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 73 69 7a 65 buf);......munmap(a->pixels,size
3c800 29 3b 00 00 00 0e 20 20 61 2d 3e 62 75 66 3d 4e 55 4c 4c 3b 00 00 00 11 20 20 61 2d 3e 70 69 78 );......a->buf=NULL;......a->pix
3c820 65 6c 73 3d 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 76 6f 69 els=NULL;....}.......$static.voi
3c840 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 2a 61 29 7b 00 00 00 11 20 20 d.alloc_buf(struct.app*a){......
3c860 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 22 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 destroy_buf(a);..."..size_t.size
3c880 3d 28 73 69 7a 65 5f 74 29 61 2d 3e 77 2a 61 2d 3e 68 2a 34 3b 00 00 00 1a 20 20 69 6e 74 20 66 =(size_t)a->w*a->h*4;......int.f
3c8a0 64 3d 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 00 41 20 20 61 2d 3e 70 69 78 65 d=create_shm(size);...A..a->pixe
3c8c0 6c 73 3d 6d 6d 61 70 28 4e 55 4c 4c 2c 73 69 7a 65 2c 50 52 4f 54 5f 52 45 41 44 7c 50 52 4f 54 ls=mmap(NULL,size,PROT_READ|PROT
3c8e0 5f 57 52 49 54 45 2c 4d 41 50 5f 53 48 41 52 45 44 2c 66 64 2c 30 29 3b 00 00 00 23 20 20 69 66 _WRITE,MAP_SHARED,fd,0);...#..if
3c900 28 61 2d 3e 70 69 78 65 6c 73 3d 3d 4d 41 50 5f 46 41 49 4c 45 44 29 65 78 69 74 28 31 29 3b 00 (a->pixels==MAP_FAILED)exit(1);.
3c920 00 00 3d 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 2a 70 6f 6f 6c 3d 77 6c 5f ..=..struct.wl_shm_pool*pool=wl_
3c940 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 66 64 2c 73 69 7a 65 29 3b shm_create_pool(a->shm,fd,size);
3c960 00 00 00 53 20 20 61 2d 3e 62 75 66 3d 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f ...S..a->buf=wl_shm_pool_create_
3c980 62 75 66 66 65 72 28 70 6f 6f 6c 2c 30 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 61 2d 3e 77 2a 34 2c 57 buffer(pool,0,a->w,a->h,a->w*4,W
3c9a0 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f L_SHM_FORMAT_ARGB8888);......wl_
3c9c0 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f shm_pool_destroy(pool);......clo
3c9e0 73 65 28 66 64 29 3b 00 00 00 0d 20 20 61 2d 3e 62 77 3d 61 2d 3e 77 3b 00 00 00 0d 20 20 61 2d se(fd);......a->bw=a->w;......a-
3ca00 3e 62 68 3d 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 51 73 74 61 74 69 63 20 76 6f 69 >bh=a->h;....}.......Qstatic.voi
3ca20 64 20 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 2a 70 78 2c 69 6e 74 20 77 2c 69 6e 74 20 68 2c 69 d.line(uint32_t*px,int.w,int.h,i
3ca40 6e 74 20 78 30 2c 69 6e 74 20 79 30 2c 69 6e 74 20 78 31 2c 69 6e 74 20 79 31 2c 75 69 6e 74 33 nt.x0,int.y0,int.x1,int.y1,uint3
3ca60 32 5f 74 20 63 29 7b 00 00 00 22 20 20 69 6e 74 20 64 78 3d 61 62 73 28 78 31 2d 78 30 29 2c 73 2_t.c){..."..int.dx=abs(x1-x0),s
3ca80 78 3d 78 30 3c 78 31 3f 31 3a 2d 31 3b 00 00 00 23 20 20 69 6e 74 20 64 79 3d 2d 61 62 73 28 79 x=x0<x1?1:-1;...#..int.dy=-abs(y
3caa0 31 2d 79 30 29 2c 73 79 3d 79 30 3c 79 31 3f 31 3a 2d 31 3b 00 00 00 10 20 20 69 6e 74 20 65 72 1-y0),sy=y0<y1?1:-1;......int.er
3cac0 72 3d 64 78 2b 64 79 3b 00 00 00 0b 20 20 77 68 69 6c 65 28 31 29 7b 00 00 00 2e 20 20 20 20 69 r=dx+dy;......while(1){........i
3cae0 66 28 78 30 3e 3d 30 26 26 78 30 3c 77 26 26 79 30 3e 3d 30 26 26 79 30 3c 68 29 70 78 5b 79 30 f(x0>=0&&x0<w&&y0>=0&&y0<h)px[y0
3cb00 2a 77 2b 78 30 5d 3d 63 3b 00 00 00 1c 20 20 20 20 69 66 28 78 30 3d 3d 78 31 26 26 79 30 3d 3d *w+x0]=c;........if(x0==x1&&y0==
3cb20 79 31 29 62 72 65 61 6b 3b 00 00 00 11 20 20 20 20 69 6e 74 20 65 32 3d 32 2a 65 72 72 3b 00 00 y1)break;........int.e2=2*err;..
3cb40 00 1f 20 20 20 20 69 66 28 65 32 3e 3d 64 79 29 7b 65 72 72 2b 3d 64 79 3b 78 30 2b 3d 73 78 3b ......if(e2>=dy){err+=dy;x0+=sx;
3cb60 7d 00 00 00 1f 20 20 20 20 69 66 28 65 32 3c 3d 64 78 29 7b 65 72 72 2b 3d 64 78 3b 79 30 2b 3d }........if(e2<=dx){err+=dx;y0+=
3cb80 73 79 3b 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 20 76 sy;}......}....}.......Kstatic.v
3cba0 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 2a 70 78 2c 69 6e 74 20 77 2c 69 6e 74 oid.circle(uint32_t*px,int.w,int
3cbc0 20 68 2c 69 6e 74 20 63 78 2c 69 6e 74 20 63 79 2c 69 6e 74 20 72 2c 75 69 6e 74 33 32 5f 74 20 .h,int.cx,int.cy,int.r,uint32_t.
3cbe0 63 29 7b 00 00 00 16 20 20 69 6e 74 20 78 3d 30 2c 79 3d 72 2c 64 3d 33 2d 32 2a 72 3b 00 00 00 c){......int.x=0,y=r,d=3-2*r;...
3cc00 0e 20 20 77 68 69 6c 65 28 79 3e 3d 78 29 7b 00 00 00 41 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b ...while(y>=x){...A....int.p[8][
3cc20 32 5d 3d 7b 7b 63 78 2b 78 2c 63 79 2b 79 7d 2c 7b 63 78 2d 78 2c 63 79 2b 79 7d 2c 7b 63 78 2b 2]={{cx+x,cy+y},{cx-x,cy+y},{cx+
3cc40 78 2c 63 79 2d 79 7d 2c 7b 63 78 2d 78 2c 63 79 2d 79 7d 2c 00 00 00 42 20 20 20 20 20 20 20 20 x,cy-y},{cx-x,cy-y},...B........
3cc60 20 20 20 20 20 20 20 20 20 7b 63 78 2b 79 2c 63 79 2b 78 7d 2c 7b 63 78 2d 79 2c 63 79 2b 78 7d .........{cx+y,cy+x},{cx-y,cy+x}
3cc80 2c 7b 63 78 2b 79 2c 63 79 2d 78 7d 2c 7b 63 78 2d 79 2c 63 79 2d 78 7d 7d 3b 00 00 00 18 20 20 ,{cx+y,cy-x},{cx-y,cy-x}};......
3cca0 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c 38 3b 69 2b 2b 29 00 00 00 36 20 20 20 20 20 20 ..for(int.i=0;i<8;i++)...6......
3ccc0 69 66 28 70 5b 69 5d 5b 30 5d 3e 3d 30 26 26 70 5b 69 5d 5b 30 5d 3c 77 26 26 70 5b 69 5d 5b 31 if(p[i][0]>=0&&p[i][0]<w&&p[i][1
3cce0 5d 3e 3d 30 26 26 70 5b 69 5d 5b 31 5d 3c 68 29 00 00 00 20 20 20 20 20 20 20 20 20 70 78 5b 70 ]>=0&&p[i][1]<h)............px[p
3cd00 5b 69 5d 5b 31 5d 2a 77 2b 70 5b 69 5d 5b 30 5d 5d 3d 63 3b 00 00 00 2d 20 20 20 20 69 66 28 64 [i][1]*w+p[i][0]]=c;...-....if(d
3cd20 3e 30 29 7b 64 2b 3d 34 2a 28 78 2d 79 29 2b 31 30 3b 79 2d 2d 3b 7d 65 6c 73 65 20 64 2b 3d 34 >0){d+=4*(x-y)+10;y--;}else.d+=4
3cd40 2a 78 2b 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 *x+6;........x++;......}....}...
3cd60 00 00 00 00 21 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 ....!static.void.render(struct.a
3cd80 70 70 2a 61 29 7b 00 00 00 2d 20 20 69 66 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 7c 7c 61 pp*a){...-..if(!a->configured||a
3cda0 2d 3e 77 3c 3d 30 7c 7c 61 2d 3e 68 3c 3d 30 29 72 65 74 75 72 6e 3b 00 00 00 1a 20 20 69 66 28 ->w<=0||a->h<=0)return;......if(
3cdc0 21 61 2d 3e 62 75 66 29 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 18 20 20 75 69 6e 74 33 !a->buf)alloc_buf(a);......uint3
3cde0 32 5f 74 2a 70 78 3d 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 1e 20 20 6d 65 6d 73 65 74 28 70 78 2_t*px=a->pixels;......memset(px
3ce00 2c 30 78 46 46 2c 61 2d 3e 77 2a 61 2d 3e 68 2a 34 29 3b 00 00 00 17 20 20 74 69 6d 65 5f 74 20 ,0xFF,a->w*a->h*4);......time_t.
3ce20 74 74 3d 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d tt=time(NULL);......struct.tm.tm
3ce40 76 3b 00 00 00 18 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 26 74 6d 76 29 3b 00 00 v;......localtime_r(&tt,&tmv);..
3ce60 00 1a 20 20 69 6e 74 20 63 78 3d 61 2d 3e 77 2f 32 2c 63 79 3d 61 2d 3e 68 2f 32 3b 00 00 00 23 ....int.cx=a->w/2,cy=a->h/2;...#
3ce80 20 20 69 6e 74 20 72 3d 28 61 2d 3e 77 3c 61 2d 3e 68 3f 61 2d 3e 77 3a 61 2d 3e 68 29 2f 32 2d ..int.r=(a->w<a->h?a->w:a->h)/2-
3cea0 31 30 3b 00 00 00 0d 20 20 69 66 28 72 3c 35 29 72 3d 35 3b 00 00 00 2a 20 20 63 69 72 63 6c 65 10;......if(r<5)r=5;...*..circle
3cec0 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 63 78 2c 63 79 2c 72 2c 30 78 46 46 30 30 30 30 30 30 (px,a->w,a->h,cx,cy,r,0xFF000000
3cee0 29 3b 00 00 00 18 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c 31 32 3b 69 2b 2b 29 7b 00 00 );......for(int.i=0;i<12;i++){..
3cf00 00 24 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 3d 69 2f 31 32 2e 30 2a 32 2a 4d 5f 50 49 2d 4d .$....double.ang=i/12.0*2*M_PI-M
3cf20 5f 50 49 5f 32 3b 00 00 00 16 20 20 20 20 6c 69 6e 65 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c _PI_2;........line(px,a->w,a->h,
3cf40 00 00 00 1c 20 20 20 20 20 20 20 20 20 63 78 2b 63 6f 73 28 61 6e 67 29 2a 28 72 2d 31 30 29 2c .............cx+cos(ang)*(r-10),
3cf60 00 00 00 1c 20 20 20 20 20 20 20 20 20 63 79 2b 73 69 6e 28 61 6e 67 29 2a 28 72 2d 31 30 29 2c .............cy+sin(ang)*(r-10),
3cf80 00 00 00 1b 20 20 20 20 20 20 20 20 20 63 78 2b 63 6f 73 28 61 6e 67 29 2a 28 72 2d 32 29 2c 00 .............cx+cos(ang)*(r-2),.
3cfa0 00 00 1b 20 20 20 20 20 20 20 20 20 63 79 2b 73 69 6e 28 61 6e 67 29 2a 28 72 2d 32 29 2c 00 00 ............cy+sin(ang)*(r-2),..
3cfc0 00 15 20 20 20 20 20 20 20 20 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 ...........0xFF000000);......}..
3cfe0 00 2a 20 20 64 6f 75 62 6c 65 20 73 61 3d 74 6d 76 2e 74 6d 5f 73 65 63 2f 36 30 2e 30 2a 32 2a .*..double.sa=tmv.tm_sec/60.0*2*
3d000 4d 5f 50 49 2d 4d 5f 50 49 5f 32 3b 00 00 00 3c 20 20 64 6f 75 62 6c 65 20 6d 61 3d 28 74 6d 76 M_PI-M_PI_2;...<..double.ma=(tmv
3d020 2e 74 6d 5f 6d 69 6e 2b 74 6d 76 2e 74 6d 5f 73 65 63 2f 36 30 2e 30 29 2f 36 30 2e 30 2a 32 2a .tm_min+tmv.tm_sec/60.0)/60.0*2*
3d040 4d 5f 50 49 2d 4d 5f 50 49 5f 32 3b 00 00 00 44 20 20 64 6f 75 62 6c 65 20 68 61 3d 28 28 74 6d M_PI-M_PI_2;...D..double.ha=((tm
3d060 76 2e 74 6d 5f 68 6f 75 72 25 31 32 29 2b 28 74 6d 76 2e 74 6d 5f 6d 69 6e 2f 36 30 2e 30 29 29 v.tm_hour%12)+(tmv.tm_min/60.0))
3d080 2f 31 32 2e 30 2a 32 2a 4d 5f 50 49 2d 4d 5f 50 49 5f 32 3b 00 00 00 48 20 20 6c 69 6e 65 28 70 /12.0*2*M_PI-M_PI_2;...H..line(p
3d0a0 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 63 78 2c 63 79 2c 63 78 2b 63 6f 73 28 68 61 29 2a 72 2a 30 x,a->w,a->h,cx,cy,cx+cos(ha)*r*0
3d0c0 2e 35 2c 63 79 2b 73 69 6e 28 68 61 29 2a 72 2a 30 2e 35 2c 30 78 46 46 30 30 30 30 30 30 29 3b .5,cy+sin(ha)*r*0.5,0xFF000000);
3d0e0 00 00 00 48 20 20 6c 69 6e 65 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 63 78 2c 63 79 2c 63 78 ...H..line(px,a->w,a->h,cx,cy,cx
3d100 2b 63 6f 73 28 6d 61 29 2a 72 2a 30 2e 37 2c 63 79 2b 73 69 6e 28 6d 61 29 2a 72 2a 30 2e 37 2c +cos(ma)*r*0.7,cy+sin(ma)*r*0.7,
3d120 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 48 20 20 6c 69 6e 65 28 70 78 2c 61 2d 3e 77 2c 61 0xFF000000);...H..line(px,a->w,a
3d140 2d 3e 68 2c 63 78 2c 63 79 2c 63 78 2b 63 6f 73 28 73 61 29 2a 72 2a 30 2e 39 2c 63 79 2b 73 69 ->h,cx,cy,cx+cos(sa)*r*0.9,cy+si
3d160 6e 28 73 61 29 2a 72 2a 30 2e 39 2c 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 26 20 20 77 6c n(sa)*r*0.9,0xFFFF0000);...&..wl
3d180 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 61 2d 3e 62 75 66 2c 30 2c 30 _surface_attach(a->ws,a->buf,0,0
3d1a0 29 3b 00 00 00 30 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 );...0..wl_surface_damage_buffer
3d1c0 28 61 2d 3e 77 73 2c 30 2c 30 2c 61 2d 3e 77 2c 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 (a->ws,0,0,a->w,a->h);......wl_s
3d1e0 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 12 20 20 61 2d 3e 72 65 urface_commit(a->ws);......a->re
3d200 64 72 61 77 3d 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3f 73 74 61 74 69 63 20 76 draw=false;....}.......?static.v
3d220 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 2a 64 2c 73 74 72 75 63 74 20 78 64 67 5f 74 oid.xt_close(void*d,struct.xdg_t
3d240 6f 70 6c 65 76 65 6c 2a 78 74 29 7b 72 75 6e 6e 69 6e 67 3d 30 3b 7d 00 00 00 00 00 00 00 58 73 oplevel*xt){running=0;}.......Xs
3d260 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 2a 64 2c 73 74 72 75 63 74 20 tatic.void.xt_cfg(void*d,struct.
3d280 78 64 67 5f 74 6f 70 6c 65 76 65 6c 2a 78 74 2c 69 6e 74 33 32 5f 74 20 77 2c 69 6e 74 33 32 5f xdg_toplevel*xt,int32_t.w,int32_
3d2a0 74 20 68 2c 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 2a 73 29 7b 00 00 00 11 20 20 73 74 72 t.h,struct.wl_array*s){......str
3d2c0 75 63 74 20 61 70 70 2a 61 3d 64 3b 00 00 00 23 20 20 69 66 28 77 3e 30 26 26 68 3e 30 26 26 28 uct.app*a=d;...#..if(w>0&&h>0&&(
3d2e0 77 21 3d 61 2d 3e 77 7c 7c 68 21 3d 61 2d 3e 68 29 29 7b 00 00 00 12 20 20 20 20 61 2d 3e 77 3d w!=a->w||h!=a->h)){........a->w=
3d300 77 3b 61 2d 3e 68 3d 68 3b 00 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b w;a->h=h;........destroy_buf(a);
3d320 00 00 00 13 20 20 20 20 61 2d 3e 72 65 64 72 61 77 3d 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 ........a->redraw=true;......}..
3d340 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f ..}.......Astatic.void.xs_cfg(vo
3d360 69 64 2a 64 2c 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 2a 78 73 2c 75 69 6e 74 33 id*d,struct.xdg_surface*xs,uint3
3d380 32 5f 74 20 73 65 72 69 61 6c 29 7b 00 00 00 11 20 20 73 74 72 75 63 74 20 61 70 70 2a 61 3d 64 2_t.serial){......struct.app*a=d
3d3a0 3b 00 00 00 27 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 ;...'..xdg_surface_ack_configure
3d3c0 28 78 73 2c 73 65 72 69 61 6c 29 3b 00 00 00 15 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 3d (xs,serial);......a->configured=
3d3e0 74 72 75 65 3b 00 00 00 11 20 20 61 2d 3e 72 65 64 72 61 77 3d 74 72 75 65 3b 00 00 00 01 7d 00 true;......a->redraw=true;....}.
3d400 00 00 00 00 00 00 58 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f ......Xstatic.void.reg_global(vo
3d420 69 64 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 2a 72 2c 75 69 6e 74 33 32 id*d,struct.wl_registry*r,uint32
3d440 5f 74 20 69 64 2c 63 6f 6e 73 74 20 63 68 61 72 2a 69 2c 75 69 6e 74 33 32 5f 74 20 76 29 7b 00 _t.id,const.char*i,uint32_t.v){.
3d460 00 00 11 20 20 73 74 72 75 63 74 20 61 70 70 2a 61 3d 64 3b 00 00 00 20 20 20 69 66 28 21 73 74 .....struct.app*a=d;......if(!st
3d480 72 63 6d 70 28 69 2c 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 3e 20 20 20 20 rcmp(i,"wl_compositor"))...>....
3d4a0 61 2d 3e 63 6f 6d 70 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 69 64 2c 26 77 a->comp=wl_registry_bind(r,id,&w
3d4c0 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 34 29 3b 00 00 00 1e 20 20 l_compositor_interface,4);......
3d4e0 65 6c 73 65 20 69 66 28 21 73 74 72 63 6d 70 28 69 2c 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 36 else.if(!strcmp(i,"wl_shm"))...6
3d500 20 20 20 20 61 2d 3e 73 68 6d 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 69 64 ....a->shm=wl_registry_bind(r,id
3d520 2c 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 31 29 3b 00 00 00 24 20 20 65 6c 73 65 ,&wl_shm_interface,1);...$..else
3d540 20 69 66 28 21 73 74 72 63 6d 70 28 69 2c 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 7b 00 00 .if(!strcmp(i,"xdg_wm_base")){..
3d560 00 3a 20 20 20 20 61 2d 3e 77 6d 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 69 .:....a->wm=wl_registry_bind(r,i
3d580 64 2c 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 31 29 3b 00 00 00 3f d,&xdg_wm_base_interface,1);...?
3d5a0 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 ....static.const.struct.xdg_wm_b
3d5c0 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 3d 7b 2e 70 69 6e 67 3d 77 6d 5f 70 69 6e 67 7d 3b 00 ase_listener.l={.ping=wm_ping};.
3d5e0 00 00 29 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 ..)....xdg_wm_base_add_listener(
3d600 61 2d 3e 77 6d 2c 26 6c 2c 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 0f a->wm,&l,a);......}....}........
3d620 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 7b 00 00 00 13 20 20 73 74 72 75 63 74 20 61 70 70 20 int.main(void){......struct.app.
3d640 61 3d 7b 30 7d 3b 00 00 00 12 20 20 61 2e 77 3d 34 30 30 3b 61 2e 68 3d 34 30 30 3b 00 00 00 18 a={0};......a.w=400;a.h=400;....
3d660 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 6f 6e 5f 73 69 67 29 3b 00 00 00 1f 20 20 61 2e ..signal(SIGINT,on_sig);......a.
3d680 64 3d 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 13 20 d=wl_display_connect(NULL);.....
3d6a0 20 69 66 28 21 61 2e 64 29 72 65 74 75 72 6e 20 31 3b 00 00 00 25 20 20 61 2e 72 65 67 3d 77 6c .if(!a.d)return.1;...%..a.reg=wl
3d6c0 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 43 20 _display_get_registry(a.d);...C.
3d6e0 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 .static.const.struct.wl_registry
3d700 5f 6c 69 73 74 65 6e 65 72 20 72 6c 3d 7b 2e 67 6c 6f 62 61 6c 3d 72 65 67 5f 67 6c 6f 62 61 6c _listener.rl={.global=reg_global
3d720 7d 3b 00 00 00 29 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 };...)..wl_registry_add_listener
3d740 28 61 2e 72 65 67 2c 26 72 6c 2c 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f (a.reg,&rl,&a);......wl_display_
3d760 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 25 20 20 69 66 28 21 61 2e 63 6f 6d 70 7c roundtrip(a.d);...%..if(!a.comp|
3d780 7c 21 61 2e 73 68 6d 7c 7c 21 61 2e 77 6d 29 72 65 74 75 72 6e 20 31 3b 00 00 00 2c 20 20 61 2e |!a.shm||!a.wm)return.1;...,..a.
3d7a0 77 73 3d 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 ws=wl_compositor_create_surface(
3d7c0 61 2e 63 6f 6d 70 29 3b 00 00 00 2e 20 20 61 2e 78 73 3d 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 a.comp);......a.xs=xdg_wm_base_g
3d7e0 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 61 2e 77 73 29 3b 00 00 00 43 20 20 et_xdg_surface(a.wm,a.ws);...C..
3d800 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f static.const.struct.xdg_surface_
3d820 6c 69 73 74 65 6e 65 72 20 78 73 6c 3d 7b 2e 63 6f 6e 66 69 67 75 72 65 3d 78 73 5f 63 66 67 7d listener.xsl={.configure=xs_cfg}
3d840 3b 00 00 00 29 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 ;...)..xdg_surface_add_listener(
3d860 61 2e 78 73 2c 26 78 73 6c 2c 26 61 29 3b 00 00 00 26 20 20 61 2e 78 74 3d 78 64 67 5f 73 75 72 a.xs,&xsl,&a);...&..a.xt=xdg_sur
3d880 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 54 20 20 73 74 face_get_toplevel(a.xs);...T..st
3d8a0 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c atic.const.struct.xdg_toplevel_l
3d8c0 69 73 74 65 6e 65 72 20 78 74 6c 3d 7b 2e 63 6f 6e 66 69 67 75 72 65 3d 78 74 5f 63 66 67 2c 2e istener.xtl={.configure=xt_cfg,.
3d8e0 63 6c 6f 73 65 3d 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 close=xt_close};...*..xdg_toplev
3d900 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 26 78 74 6c 2c 26 61 29 3b 00 00 el_add_listener(a.xt,&xtl,&a);..
3d920 00 29 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c .)..xdg_toplevel_set_title(a.xt,
3d940 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d "wlclock");......wl_surface_comm
3d960 69 74 28 61 2e 77 73 29 3b 00 00 00 2f 20 20 77 68 69 6c 65 28 21 61 2e 63 6f 6e 66 69 67 75 72 it(a.ws);.../..while(!a.configur
3d980 65 64 29 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 0d ed)wl_display_dispatch(a.d);....
3d9a0 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 36 20 20 69 6e 74 20 74 66 64 3d 74 69 6d 65 72 ..render(&a);...6..int.tfd=timer
3d9c0 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 54 46 44 5f 43 4c fd_create(CLOCK_MONOTONIC,TFD_CL
3d9e0 4f 45 58 45 43 29 3b 00 00 00 40 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 OEXEC);...@..timerfd_settime(tfd
3da00 2c 30 2c 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 30 7d 2c 7b 31 ,0,&(struct.itimerspec){{1,0},{1
3da20 2c 30 7d 7d 2c 4e 55 4c 4c 29 3b 00 00 00 11 20 20 77 68 69 6c 65 28 72 75 6e 6e 69 6e 67 29 7b ,0}},NULL);......while(running){
3da40 00 00 00 2a 20 20 20 20 77 68 69 6c 65 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 ...*....while(wl_display_prepare
3da60 5f 72 65 61 64 28 61 2e 64 29 21 3d 30 29 00 00 00 27 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c _read(a.d)!=0)...'......wl_displ
3da80 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 ay_dispatch_pending(a.d);.......
3daa0 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 48 20 20 20 20 73 .wl_display_flush(a.d);...H....s
3dac0 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 3d 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 truct.pollfd.fds[2]={{wl_display
3dae0 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 50 4f 4c 4c 49 4e 7d 2c 7b 74 66 64 2c 50 4f 4c 4c 49 4e _get_fd(a.d),POLLIN},{tfd,POLLIN
3db00 7d 7d 3b 00 00 00 19 20 20 20 20 69 66 28 70 6f 6c 6c 28 66 64 73 2c 32 2c 2d 31 29 3c 30 29 7b }};........if(poll(fds,2,-1)<0){
3db20 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 ..."......wl_display_cancel_read
3db40 28 61 2e 64 29 3b 00 00 00 0f 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 20 20 20 (a.d);..........continue;.......
3db60 20 7d 00 00 00 1d 20 20 20 20 69 66 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 26 50 4f 4c 4c .}........if(fds[0].revents&POLL
3db80 49 4e 29 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 IN)..."......wl_display_read_eve
3dba0 6e 74 73 28 61 2e 64 29 3b 00 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 20 20 20 20 77 nts(a.d);........else..."......w
3dbc0 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 l_display_cancel_read(a.d);...%.
3dbe0 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 ...wl_display_dispatch_pending(a
3dc00 2e 64 29 3b 00 00 00 1e 20 20 20 20 69 66 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 26 50 4f .d);........if(fds[1].revents&PO
3dc20 4c 4c 49 4e 29 7b 00 00 00 11 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 3b 00 00 00 1d 20 LLIN){..........uint64_t.t;.....
3dc40 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 26 74 2c 73 69 7a 65 6f 66 28 74 29 29 3b 00 00 00 14 .....read(tfd,&t,sizeof(t));....
3dc60 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 3d 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 ......a.redraw=true;........}...
3dc80 1b 20 20 20 20 69 66 28 61 2e 72 65 64 72 61 77 29 72 65 6e 64 65 72 28 26 61 29 3b 35 81 f5 18 .....if(a.redraw)render(&a);5...
3dca0 00 00 00 00 1a 00 00 00 19 00 00 00 bc 00 00 00 10 00 00 00 df 00 00 00 06 00 00 00 33 02 00 00 ............................3...
3dcc0 00 00 00 00 c2 15 00 00 00 00 00 00 b1 19 00 00 00 00 00 00 35 81 5f d0 00 00 00 31 00 00 00 33 ....................5._....1...3
3dce0 00 00 00 00 00 00 00 00 00 00 00 32 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 ...........2....................
3dd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3dd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3dd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3dd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3dd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3dda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ddc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3dde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3de00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3de20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3de40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a3 bb 04 01 ..........................i.....
3de60 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 00 00 00 00 1f 23 64 65 66 69 ...........................#defi
3de80 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 00 26 23 69 ne._POSIX_C_SOURCE.200809L...&#i
3dea0 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f nclude."xdg-shell-client-protoco
3dec0 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 l.h"....#include.<errno.h>....#i
3dee0 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 nclude.<fcntl.h>....#include.<ma
3df00 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 th.h>....#include.<poll.h>....#i
3df20 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 nclude.<signal.h>....#include.<s
3df40 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e tdbool.h>....#include.<stdint.h>
3df60 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 ....#include.<stdio.h>....#inclu
3df80 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e de.<stdlib.h>....#include.<strin
3dfa0 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 g.h>....#include.<sys/mman.h>...
3dfc0 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e .#include.<sys/timerfd.h>....#in
3dfe0 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 clude.<time.h>....#include.<unis
3e000 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e td.h>....#include.<wayland-clien
3e020 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 t.h>........#ifndef.M_PI...##def
3e040 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 ine.M_PI.3.14159265358979323846.
3e060 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 ...#endif....#ifndef.M_PI_2...%#
3e080 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 define.M_PI_2.1.5707963267948966
3e0a0 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 1923....#endif.......)static.vol
3e0c0 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 atile.sig_atomic_t.running.=.1;.
3e0e0 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 ...static.void.on_sig(int.s).{..
3e100 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 ....(void)s;......running.=.0;..
3e120 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 ..}........struct.app.{......str
3e140 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 uct.wl_display.*d;......struct.w
3e160 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f l_registry.*reg;......struct.wl_
3e180 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c compositor.*comp;......struct.wl
3e1a0 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 _shm.*shm;......struct.xdg_wm_ba
3e1c0 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a se.*wm;......struct.wl_surface.*
3e1e0 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b ws;......struct.xdg_surface.*xs;
3e200 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 ......struct.xdg_toplevel.*xt;..
3e220 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c ....void.*pixels;......struct.wl
3e240 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d _buffer.*buf;......int.w,.h;....
3e260 20 20 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 ..int.bw,.bh;......bool.configur
3e280 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 ed;......bool.redraw;....};.....
3e2a0 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 ..Jstatic.void.wm_ping(void.*dat
3e2c0 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 a,.struct.xdg_wm_base.*wm,.uint3
3e2e0 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 2_t.serial).{......xdg_wm_base_p
3e300 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 ong(wm,.serial);....}.......$sta
3e320 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 tic.int.create_shm(size_t.size).
3e340 7b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d {...#..char.t[].=."/tmp/wlclock-
3e360 58 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 XXXXXX";......int.fd.=.mkstemp(t
3e380 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 );......if.(fd.<.0)........exit(
3e3a0 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 1e 20 20 69 66 20 28 66 74 72 1);......unlink(t);......if.(ftr
3e3c0 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 uncate(fd,.size).<.0)........exi
3e3e0 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 t(1);......return.fd;....}......
3e400 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 .(static.void.destroy_buf(struct
3e420 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 0b .app.*a).{......if.(!a->buf)....
3e440 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 ....return;...*..size_t.size.=.(
3e460 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 size_t)a->bw.*.a->bh.*.4;......w
3e480 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d l_buffer_destroy(a->buf);......m
3e4a0 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d 3e unmap(a->pixels,.size);......a->
3e4c0 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c buf.=.NULL;......a->pixels.=.NUL
3e4e0 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 L;....}.......&static.void.alloc
3e500 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 _buf(struct.app.*a).{......destr
3e520 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 oy_buf(a);...(..size_t.size.=.(s
3e540 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 ize_t)a->w.*.a->h.*.4;......int.
3e560 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 fd.=.create_shm(size);...J..a->p
3e580 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 ixels.=.mmap(NULL,.size,.PROT_RE
3e5a0 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c AD.|.PROT_WRITE,.MAP_SHARED,.fd,
3e5c0 20 30 29 3b 00 00 00 1e 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 .0);......if.(a->pixels.==.MAP_F
3e5e0 41 49 4c 45 44 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 AILED)........exit(1);...B..stru
3e600 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 ct.wl_shm_pool.*pool.=.wl_shm_cr
3e620 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 43 eate_pool(a->shm,.fd,.size);...C
3e640 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 ..a->buf.=.wl_shm_pool_create_bu
3e660 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a ffer(pool,.0,.a->w,.a->h,.a->w.*
3e680 20 34 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .4,...=.........................
3e6a0 20 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 ............WL_SHM_FORMAT_ARGB88
3e6c0 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 88);......wl_shm_pool_destroy(po
3e6e0 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0f 20 20 61 2d 3e 62 77 20 ol);......close(fd);......a->bw.
3e700 3d 20 61 2d 3e 77 3b 00 00 00 0f 20 20 61 2d 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 =.a->w;......a->bh.=.a->h;....}.
3e720 00 00 00 00 00 00 4c 73 74 61 74 69 63 20 76 6f 69 64 20 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 ......Lstatic.void.line(uint32_t
3e740 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 .*px,.int.w,.int.h,.int.x0,.int.
3e760 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 1e 20 20 20 20 20 20 20 20 20 y0,.int.x1,.int.y1,.............
3e780 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 ........uint32_t.c).{.../..int.d
3e7a0 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f x.=.abs(x1.-.x0),.sx.=.x0.<.x1.?
3e7c0 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d .1.:.-1;...0..int.dy.=.-abs(y1.-
3e7e0 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 14 .y0),.sy.=.y0.<.y1.?.1.:.-1;....
3e800 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 ..int.err.=.dx.+.dy;......while.
3e820 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c (1).{.../....if.(x0.>=.0.&&.x0.<
3e840 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 1a 20 20 20 20 .w.&&.y0.>=.0.&&.y0.<.h)........
3e860 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 1d 20 20 20 20 69 66 ..px[y0.*.w.+.x0].=.c;........if
3e880 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 .(x0.==.x1.&&.y0.==.y1).........
3e8a0 20 62 72 65 61 6b 3b 00 00 00 15 20 20 20 20 69 6e 74 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b .break;........int.e2.=.2.*.err;
3e8c0 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 10 20 20 20 20 20 ........if.(e2.>=.dy).{.........
3e8e0 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 .err.+=.dy;..........x0.+=.sx;..
3e900 00 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 ......}........if.(e2.<=.dx).{..
3e920 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 20 20 20 20 79 30 20 2b ........err.+=.dx;..........y0.+
3e940 3d 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 =.sy;........}......}....}......
3e960 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 .Estatic.void.circle(uint32_t.*p
3e980 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c x,.int.w,.int.h,.int.cx,.int.cy,
3e9a0 20 69 6e 74 20 72 2c 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 .int.r,.......................ui
3e9c0 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 nt32_t.c).{..."..int.x.=.0,.y.=.
3e9e0 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 r,.d.=.3.-.2.*.r;......while.(y.
3ea00 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 >=.x).{...H....int.p[8][2].=.{{c
3ea20 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d x.+.x,.cy.+.y},.{cx.-.x,.cy.+.y}
3ea40 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 ,.{cx.+.x,.cy.-.y},...H.........
3ea60 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 ..........{cx.-.x,.cy.-.y},.{cx.
3ea80 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 +.y,.cy.+.x},.{cx.-.y,.cy.+.x},.
3eaa0 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 ..7...................{cx.+.y,.c
3eac0 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 y.-.x},.{cx.-.y,.cy.-.x}};......
3eae0 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 ..for.(int.i.=.0;.i.<.8;.i++)...
3eb00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b E......if.(p[i][0].>=.0.&&.p[i][
3eb20 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 0].<.w.&&.p[i][1].>=.0.&&.p[i][1
3eb40 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 ].<.h)...&........px[p[i][1].*.w
3eb60 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 .+.p[i][0]].=.c;........if.(d.>.
3eb80 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 0).{..........d.+=.4.*.(x.-.y).+
3eba0 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 .10;..........y--;........}.else
3ebc0 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 ..........d.+=.4.*.x.+.6;.......
3ebe0 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 .x++;......}....}.......#static.
3ec00 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f void.render(struct.app.*a).{.../
3ec20 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 ..if.(!a->configured.||.a->w.<=.
3ec40 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 0.||.a->h.<=.0)........return;..
3ec60 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 20 61 6c 6c 6f 63 5f 62 75 ....if.(!a->buf)........alloc_bu
3ec80 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 f(a);......uint32_t.*px.=.a->pix
3eca0 65 6c 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 20 els;...$..memset(px,.0xFF,.a->w.
3ecc0 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 *.a->h.*.4);......time_t.tt.=.ti
3ece0 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 me(NULL);......struct.tm.tmv;...
3ed00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 ...localtime_r(&tt,.&tmv);...#..
3ed20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 int.cx.=.a->w./.2,.cy.=.a->h./.2
3ed40 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d ;.../..int.r.=.(a->w.<.a->h.?.a-
3ed60 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 66 20 28 72 20 >w.:.a->h)./.2.-.10;......if.(r.
3ed80 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 30 20 20 63 69 72 63 6c 65 28 70 <.5)........r.=.5;...0..circle(p
3eda0 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 x,.a->w,.a->h,.cx,.cy,.r,.0xFF00
3edc0 30 30 30 30 29 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 0000);......for.(int.i.=.0;.i.<.
3ede0 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 12;.i++).{........double.ang.=.i
3ee00 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4c ./.12.0.*.2.*.M_PI.-.M_PI_2;...L
3ee20 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f ....line(px,.a->w,.a->h,.cx.+.co
3ee40 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 s(ang).*.(r.-.10),.cy.+.sin(ang)
3ee60 20 2a 20 28 72 20 2d 20 31 30 29 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f .*.(r.-.10),...G.........cx.+.co
3ee80 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 s(ang).*.(r.-.2),.cy.+.sin(ang).
3eea0 2a 20 28 72 20 2d 20 32 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 *.(r.-.2),.0xFF000000);......}..
3eec0 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e .4..double.sa.=.tmv.tm_sec./.60.
3eee0 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 0.*.2.*.M_PI.-.M_PI_2;...J..doub
3ef00 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 le.ma.=.(tmv.tm_min.+.tmv.tm_sec
3ef20 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 ./.60.0)./.60.0.*.2.*.M_PI.-.M_P
3ef40 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 4c 20 20 20 20 20 20 28 I_2;......double.ha.=...L......(
3ef60 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e (tmv.tm_hour.%.12).+.(tmv.tm_min
3ef80 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f ./.60.0))./.12.0.*.2.*.M_PI.-.M_
3efa0 50 49 5f 32 3b 00 00 00 4e 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 PI_2;...N..line(px,.a->w,.a->h,.
3efc0 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 2c 20 cx,.cy,.cx.+.cos(ha).*.r.*.0.5,.
3efe0 63 79 20 2b 20 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 2c 00 00 00 13 20 20 20 20 20 cy.+.sin(ha).*.r.*.0.5,.........
3f000 20 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 4e 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e ..0xFF000000);...N..line(px,.a->
3f020 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 20 2a 20 w,.a->h,.cx,.cy,.cx.+.cos(ma).*.
3f040 72 20 2a 20 30 2e 37 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 2c r.*.0.7,.cy.+.sin(ma).*.r.*.0.7,
3f060 00 00 00 13 20 20 20 20 20 20 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 4e 20 20 6c 69 6e ...........0xFF000000);...N..lin
3f080 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 e(px,.a->w,.a->h,.cx,.cy,.cx.+.c
3f0a0 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 29 20 2a os(sa).*.r.*.0.9,.cy.+.sin(sa).*
3f0c0 20 72 20 2a 20 30 2e 39 2c 00 00 00 13 20 20 20 20 20 20 20 30 78 46 46 46 46 30 30 30 30 29 3b .r.*.0.9,...........0xFFFF0000);
3f0e0 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 ...)..wl_surface_attach(a->ws,.a
3f100 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 ->buf,.0,.0);...4..wl_surface_da
3f120 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 mage_buffer(a->ws,.0,.0,.a->w,.a
3f140 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e ->h);......wl_surface_commit(a->
3f160 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 ws);......a->redraw.=.false;....
3f180 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f }.......Gstatic.void.xt_close(vo
3f1a0 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 id.*d,.struct.xdg_toplevel.*xt).
3f1c0 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 {.running.=.0;.}.......Jstatic.v
3f1e0 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 oid.xt_cfg(void.*d,.struct.xdg_t
3f200 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 oplevel.*xt,.int32_t.w,.int32_t.
3f220 68 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 h,...(...................struct.
3f240 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a wl_array.*s).{......struct.app.*
3f260 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 a.=.d;...3..if.(w.>.0.&&.h.>.0.&
3f280 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 &.(w.!=.a->w.||.h.!=.a->h)).{...
3f2a0 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d 20 68 3b 00 .....a->w.=.w;........a->h.=.h;.
3f2c0 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 15 20 20 20 20 61 2d .......destroy_buf(a);........a-
3f2e0 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 >redraw.=.true;......}....}.....
3f300 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 ..Fstatic.void.xs_cfg(void.*d,.s
3f320 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 truct.xdg_surface.*xs,.uint32_t.
3f340 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 serial).{......struct.app.*a.=.d
3f360 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 ;...(..xdg_surface_ack_configure
3f380 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 (xs,.serial);......a->configured
3f3a0 20 3d 20 74 72 75 65 3b 00 00 00 13 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 .=.true;......a->redraw.=.true;.
3f3c0 00 00 01 7d 00 00 00 00 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 ...}.......Cstatic.void.reg_glob
3f3e0 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a al(void.*d,.struct.wl_registry.*
3f400 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 33 20 20 20 20 20 20 20 20 20 20 20 20 20 r,.uint32_t.id,...3.............
3f420 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c 20 75 69 6e 74 33 32 5f ..........const.char.*i,.uint32_
3f440 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 t.v).{......struct.app.*a.=.d;..
3f460 00 22 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f ."..if.(!strcmp(i,."wl_composito
3f480 72 22 29 29 00 00 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 r"))...C....a->comp.=.wl_registr
3f4a0 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 y_bind(r,.id,.&wl_compositor_int
3f4c0 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 20 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d erface,.4);......else.if.(!strcm
3f4e0 70 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 p(i,."wl_shm"))...;....a->shm.=.
3f500 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f wl_registry_bind(r,.id,.&wl_shm_
3f520 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 interface,.1);...'..else.if.(!st
3f540 72 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 rcmp(i,."xdg_wm_base")).{...?...
3f560 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c .a->wm.=.wl_registry_bind(r,.id,
3f580 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 .&xdg_wm_base_interface,.1);...C
3f5a0 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 ....static.const.struct.xdg_wm_b
3f5c0 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e ase_listener.l.=.{.ping.=.wm_pin
3f5e0 67 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 g};...+....xdg_wm_base_add_liste
3f600 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 ner(a->wm,.&l,.a);......}....}..
3f620 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 73 74 72 75 ......int.main(void).{......stru
3f640 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d 20 34 30 30 3b 00 ct.app.a.=.{0};......a.w.=.400;.
3f660 00 00 0c 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 .....a.h.=.400;......signal(SIGI
3f680 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c NT,.on_sig);...!..a.d.=.wl_displ
3f6a0 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 0b 20 20 69 66 20 28 21 61 2e 64 29 ay_connect(NULL);......if.(!a.d)
3f6c0 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 ........return.1;...'..a.reg.=.w
3f6e0 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 47 l_display_get_registry(a.d);...G
3f700 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 ..static.const.struct.wl_registr
3f720 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 y_listener.rl.=.{.global.=.reg_g
3f740 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 lobal};...+..wl_registry_add_lis
3f760 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 tener(a.reg,.&rl,.&a);......wl_d
3f780 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 21 20 20 69 66 20 28 isplay_roundtrip(a.d);...!..if.(
3f7a0 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 00 00 00 0d 20 !a.comp.||.!a.shm.||.!a.wm).....
3f7c0 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 ...return.1;......a.ws.=.wl_comp
3f7e0 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 ositor_create_surface(a.comp);..
3f800 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 .1..a.xs.=.xdg_wm_base_get_xdg_s
3f820 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 urface(a.wm,.a.ws);...G..static.
3f840 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 const.struct.xdg_surface_listene
3f860 72 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 r.xsl.=.{.configure.=.xs_cfg};..
3f880 00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 .+..xdg_surface_add_listener(a.x
3f8a0 73 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 s,.&xsl,.&a);...(..a.xt.=.xdg_su
3f8c0 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 47 20 20 73 rface_get_toplevel(a.xs);...G..s
3f8e0 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f tatic.const.struct.xdg_toplevel_
3f900 6c 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f listener.xtl.=.{.configure.=.xt_
3f920 63 66 67 2c 00 00 00 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cfg,...F........................
3f940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 63 6c 6f 73 ............................clos
3f960 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c e.=.xt_close};...,..xdg_toplevel
3f980 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 26 61 29 3b 00 00 _add_listener(a.xt,.&xtl,.&a);..
3f9a0 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c .*..xdg_toplevel_set_title(a.xt,
3f9c0 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d ."wlclock");......wl_surface_com
3f9e0 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 17 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 mit(a.ws);......while.(!a.config
3fa00 75 72 65 64 29 00 00 00 1d 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 ured)........wl_display_dispatch
3fa20 28 61 2e 64 29 3b 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 (a.d);......render(&a);...9..int
3fa40 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f .tfd.=.timerfd_create(CLOCK_MONO
3fa60 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 TONIC,.TFD_CLOEXEC);...F..timerf
3fa80 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 d_settime(tfd,.0,.&(struct.itime
3faa0 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 rspec){{1,.0},.{1,.0}},.NULL);..
3fac0 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 ....while.(running).{...-....whi
3fae0 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 le.(wl_display_prepare_read(a.d)
3fb00 20 21 3d 20 30 29 00 00 00 27 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 .!=.0)...'......wl_display_dispa
3fb20 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 tch_pending(a.d);........wl_disp
3fb40 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f lay_flush(a.d);...M....struct.po
3fb60 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 llfd.fds[2].=.{{wl_display_get_f
3fb80 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b d(a.d),.POLLIN},.{tfd,.POLLIN}};
3fba0 00 00 00 1f 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 ........if.(poll(fds,.2,.-1).<.0
3fbc0 29 20 7b 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 ).{..."......wl_display_cancel_r
3fbe0 65 61 64 28 61 2e 64 29 3b 00 00 00 0f 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 ead(a.d);..........continue;....
3fc00 20 20 20 20 7d 00 00 00 20 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 ....}........if.(fds[0].revents.
3fc20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 &.POLLIN)..."......wl_display_re
3fc40 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 00 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 ad_events(a.d);........else...".
3fc60 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 .....wl_display_cancel_read(a.d)
3fc80 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e ;...%....wl_display_dispatch_pen
3fca0 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 ding(a.d);..."....if.(fds[1].rev
3fcc0 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 11 20 20 20 20 20 20 75 69 6e 74 36 34 ents.&.POLLIN).{..........uint64
3fce0 5f 74 20 74 3b 00 00 00 1f 20 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 2c 20 73 69 7a _t.t;..........read(tfd,.&t,.siz
3fd00 65 6f 66 28 74 29 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 75 eof(t));..........a.redraw.=.tru
3fd20 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 11 20 20 20 20 69 66 20 28 61 2e 72 65 64 72 61 77 29 e;........}........if.(a.redraw)
3fd40 00 00 00 11 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 0d ..........render(&a);......}....
3fd60 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 12 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 ..close(tfd);......destroy_buf(&
3fd80 61 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 a);......wl_display_disconnect(a
3fda0 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 .d);......return.0;....}5.......
3fdc0 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3fde0 41 1c 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 32 00 00 00 34 00 00 00 00 A...............5._....2...4....
3fe00 00 00 00 00 00 00 00 33 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 .......3........................
3fe20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3fe40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3fe60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3fe80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3fea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3fec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3fee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ff00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ff20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ff40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ff60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a3 bc 04 01 00 00 00 00 ......................i.........
3ff80 00 f5 18 00 00 00 dc 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 dd 00 00 .......................}........
3ffa0 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 c4 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 22 ..............................."
3ffc0 20 20 20 20 77 68 69 6c 65 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 ....while(wl_display_prepare_rea
3ffe0 64 28 f5 18 00 00 00 c5 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 87 00 00 00 00 00 00 d(..............................
40000 00 00 00 00 00 01 00 00 00 09 20 20 77 6c 5f 73 75 72 66 f5 18 00 00 00 88 00 00 00 00 00 00 00 ............wl_surf.............
40020 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 ................................
40040 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .............5..................
40060 00 00 00 00 00 87 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0e 00 ................................
40080 00 00 00 00 00 f5 18 00 00 00 00 87 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 3d 00 00 00 22 ...........................=..."
400a0 00 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 f5 18 00 00 00 ................................
400c0 00 c4 00 00 00 22 00 00 00 00 00 00 00 00 00 00 00 18 00 00 00 01 00 00 00 00 16 00 00 00 00 00 ....."..........................
400e0 00 00 00 00 00 00 00 00 00 51 02 00 00 00 00 00 00 35 81 5f d0 00 00 00 33 00 00 00 35 00 00 00 .........Q.......5._....3...5...
40100 00 00 00 00 00 00 00 00 34 00 00 00 dd 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 ........4.......................
40120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
40140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
40160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
40180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
401a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
401c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
401e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
40200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
40220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
40240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
40260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a3 bc 04 01 00 00 00 .......................i........
40280 15 00 f5 18 00 00 00 1a 00 00 00 fb 00 00 00 dd 00 00 00 bd 00 00 00 2d 73 74 61 74 69 63 20 76 .......................-static.v
402a0 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 7b 28 76 6f 69 64 29 73 3b 72 75 6e 6e 69 6e oid.on_sig(int.s){(void)s;runnin
402c0 67 3d 30 3b 7d 00 00 00 00 00 00 00 0b 73 74 72 75 63 74 20 61 70 70 7b 00 00 00 16 20 20 73 74 g=0;}........struct.app{......st
402e0 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 2a 64 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 77 ruct.wl_display*d;......struct.w
40300 6c 5f 72 65 67 69 73 74 72 79 2a 72 65 67 3b 00 00 00 1c 20 20 73 74 72 75 63 74 20 77 6c 5f 63 l_registry*reg;......struct.wl_c
40320 6f 6d 70 6f 73 69 74 6f 72 2a 63 6f 6d 70 3b 00 00 00 14 20 20 73 74 72 75 63 74 20 77 6c 5f 73 ompositor*comp;......struct.wl_s
40340 68 6d 2a 73 68 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 2a hm*shm;......struct.xdg_wm_base*
40360 77 6d 3b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 2a 77 73 3b 00 00 wm;......struct.wl_surface*ws;..
40380 00 18 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 2a 78 73 3b 00 00 00 19 20 20 ....struct.xdg_surface*xs;......
403a0 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 2a 78 74 3b 00 00 00 0e 20 20 76 6f 69 struct.xdg_toplevel*xt;......voi
403c0 64 2a 70 69 78 65 6c 73 3b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 2a d*pixels;......struct.wl_buffer*
403e0 62 75 66 3b 00 00 00 0a 20 20 69 6e 74 20 77 2c 68 3b 00 00 00 0c 20 20 69 6e 74 20 62 77 2c 62 buf;......int.w,h;......int.bw,b
40400 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f h;......bool.configured;......bo
40420 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 45 73 74 61 74 69 63 20 76 ol.redraw;....};.......Estatic.v
40440 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 2a 64 61 74 61 2c 73 74 72 75 63 74 20 78 64 67 oid.wm_ping(void*data,struct.xdg
40460 5f 77 6d 5f 62 61 73 65 2a 77 6d 2c 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 7b 00 00 00 _wm_base*wm,uint32_t.serial){...
40480 1e 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 73 65 72 69 61 6c 29 3b 00 ...xdg_wm_base_pong(wm,serial);.
404a0 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 ...}.......#static.int.create_sh
404c0 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 7b 00 00 00 21 20 20 63 68 61 72 20 74 5b 5d 3d 22 2f m(size_t.size){...!..char.t[]="/
404e0 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 14 20 20 69 6e 74 20 66 64 tmp/wlclock-XXXXXX";......int.fd
40500 3d 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 12 20 20 69 66 28 66 64 3c 30 29 65 78 69 74 28 31 =mkstemp(t);......if(fd<0)exit(1
40520 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 22 20 20 69 66 28 66 74 72 75 6e );......unlink(t);..."..if(ftrun
40540 63 61 74 65 28 66 64 2c 73 69 7a 65 29 3c 30 29 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 cate(fd,size)<0)exit(1);......re
40560 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 turn.fd;....}.......&static.void
40580 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 2a 61 29 7b 00 00 00 14 20 .destroy_buf(struct.app*a){.....
405a0 20 69 66 28 21 61 2d 3e 62 75 66 29 72 65 74 75 72 6e 3b 00 00 00 24 20 20 73 69 7a 65 5f 74 20 .if(!a->buf)return;...$..size_t.
405c0 73 69 7a 65 3d 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 2a 61 2d 3e 62 68 2a 34 3b 00 00 00 1c 20 size=(size_t)a->bw*a->bh*4;.....
405e0 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 19 20 .wl_buffer_destroy(a->buf);.....
40600 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 73 69 7a 65 29 3b 00 00 00 0e 20 20 61 2d .munmap(a->pixels,size);......a-
40620 3e 62 75 66 3d 4e 55 4c 4c 3b 00 00 00 11 20 20 61 2d 3e 70 69 78 65 6c 73 3d 4e 55 4c 4c 3b 00 >buf=NULL;......a->pixels=NULL;.
40640 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 ...}.......$static.void.alloc_bu
40660 66 28 73 74 72 75 63 74 20 61 70 70 2a 61 29 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 f(struct.app*a){......destroy_bu
40680 66 28 61 29 3b 00 00 00 22 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 3d 28 73 69 7a 65 5f 74 29 61 f(a);..."..size_t.size=(size_t)a
406a0 2d 3e 77 2a 61 2d 3e 68 2a 34 3b 00 00 00 1a 20 20 69 6e 74 20 66 64 3d 63 72 65 61 74 65 5f 73 ->w*a->h*4;......int.fd=create_s
406c0 68 6d 28 73 69 7a 65 29 3b 00 00 00 41 20 20 61 2d 3e 70 69 78 65 6c 73 3d 6d 6d 61 70 28 4e 55 hm(size);...A..a->pixels=mmap(NU
406e0 4c 4c 2c 73 69 7a 65 2c 50 52 4f 54 5f 52 45 41 44 7c 50 52 4f 54 5f 57 52 49 54 45 2c 4d 41 50 LL,size,PROT_READ|PROT_WRITE,MAP
40700 5f 53 48 41 52 45 44 2c 66 64 2c 30 29 3b 00 00 00 23 20 20 69 66 28 61 2d 3e 70 69 78 65 6c 73 _SHARED,fd,0);...#..if(a->pixels
40720 3d 3d 4d 41 50 5f 46 41 49 4c 45 44 29 65 78 69 74 28 31 29 3b 00 00 00 3d 20 20 73 74 72 75 63 ==MAP_FAILED)exit(1);...=..struc
40740 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 2a 70 6f 6f 6c 3d 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 t.wl_shm_pool*pool=wl_shm_create
40760 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 66 64 2c 73 69 7a 65 29 3b 00 00 00 53 20 20 61 2d 3e 62 _pool(a->shm,fd,size);...S..a->b
40780 75 66 3d 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f uf=wl_shm_pool_create_buffer(poo
407a0 6c 2c 30 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 61 2d 3e 77 2a 34 2c 57 4c 5f 53 48 4d 5f 46 4f 52 4d l,0,a->w,a->h,a->w*4,WL_SHM_FORM
407c0 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 AT_ARGB8888);......wl_shm_pool_d
407e0 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 estroy(pool);......close(fd);...
40800 0d 20 20 61 2d 3e 62 77 3d 61 2d 3e 77 3b 00 00 00 0d 20 20 61 2d 3e 62 68 3d 61 2d 3e 68 3b 00 ...a->bw=a->w;......a->bh=a->h;.
40820 00 00 01 7d 00 00 00 00 00 00 00 51 73 74 61 74 69 63 20 76 6f 69 64 20 6c 69 6e 65 28 75 69 6e ...}.......Qstatic.void.line(uin
40840 74 33 32 5f 74 2a 70 78 2c 69 6e 74 20 77 2c 69 6e 74 20 68 2c 69 6e 74 20 78 30 2c 69 6e 74 20 t32_t*px,int.w,int.h,int.x0,int.
40860 79 30 2c 69 6e 74 20 78 31 2c 69 6e 74 20 79 31 2c 75 69 6e 74 33 32 5f 74 20 63 29 7b 00 00 00 y0,int.x1,int.y1,uint32_t.c){...
40880 22 20 20 69 6e 74 20 64 78 3d 61 62 73 28 78 31 2d 78 30 29 2c 73 78 3d 78 30 3c 78 31 3f 31 3a "..int.dx=abs(x1-x0),sx=x0<x1?1:
408a0 2d 31 3b 00 00 00 23 20 20 69 6e 74 20 64 79 3d 2d 61 62 73 28 79 31 2d 79 30 29 2c 73 79 3d 79 -1;...#..int.dy=-abs(y1-y0),sy=y
408c0 30 3c 79 31 3f 31 3a 2d 31 3b 00 00 00 10 20 20 69 6e 74 20 65 72 72 3d 64 78 2b 64 79 3b 00 00 0<y1?1:-1;......int.err=dx+dy;..
408e0 00 0b 20 20 77 68 69 6c 65 28 31 29 7b 00 00 00 2e 20 20 20 20 69 66 28 78 30 3e 3d 30 26 26 78 ....while(1){........if(x0>=0&&x
40900 30 3c 77 26 26 79 30 3e 3d 30 26 26 79 30 3c 68 29 70 78 5b 79 30 2a 77 2b 78 30 5d 3d 63 3b 00 0<w&&y0>=0&&y0<h)px[y0*w+x0]=c;.
40920 00 00 1c 20 20 20 20 69 66 28 78 30 3d 3d 78 31 26 26 79 30 3d 3d 79 31 29 62 72 65 61 6b 3b 00 .......if(x0==x1&&y0==y1)break;.
40940 00 00 11 20 20 20 20 69 6e 74 20 65 32 3d 32 2a 65 72 72 3b 00 00 00 1f 20 20 20 20 69 66 28 65 .......int.e2=2*err;........if(e
40960 32 3e 3d 64 79 29 7b 65 72 72 2b 3d 64 79 3b 78 30 2b 3d 73 78 3b 7d 00 00 00 1f 20 20 20 20 69 2>=dy){err+=dy;x0+=sx;}........i
40980 66 28 65 32 3c 3d 64 78 29 7b 65 72 72 2b 3d 64 78 3b 79 30 2b 3d 73 79 3b 7d 00 00 00 03 20 20 f(e2<=dx){err+=dx;y0+=sy;}......
409a0 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 }....}.......Kstatic.void.circle
409c0 28 75 69 6e 74 33 32 5f 74 2a 70 78 2c 69 6e 74 20 77 2c 69 6e 74 20 68 2c 69 6e 74 20 63 78 2c (uint32_t*px,int.w,int.h,int.cx,
409e0 69 6e 74 20 63 79 2c 69 6e 74 20 72 2c 75 69 6e 74 33 32 5f 74 20 63 29 7b 00 00 00 16 20 20 69 int.cy,int.r,uint32_t.c){......i
40a00 6e 74 20 78 3d 30 2c 79 3d 72 2c 64 3d 33 2d 32 2a 72 3b 00 00 00 0e 20 20 77 68 69 6c 65 28 79 nt.x=0,y=r,d=3-2*r;......while(y
40a20 3e 3d 78 29 7b 00 00 00 41 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 3d 7b 7b 63 78 2b 78 2c >=x){...A....int.p[8][2]={{cx+x,
40a40 63 79 2b 79 7d 2c 7b 63 78 2d 78 2c 63 79 2b 79 7d 2c 7b 63 78 2b 78 2c 63 79 2d 79 7d 2c 7b 63 cy+y},{cx-x,cy+y},{cx+x,cy-y},{c
40a60 78 2d 78 2c 63 79 2d 79 7d 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b x-x,cy-y},...B.................{
40a80 63 78 2b 79 2c 63 79 2b 78 7d 2c 7b 63 78 2d 79 2c 63 79 2b 78 7d 2c 7b 63 78 2b 79 2c 63 79 2d cx+y,cy+x},{cx-y,cy+x},{cx+y,cy-
40aa0 78 7d 2c 7b 63 78 2d 79 2c 63 79 2d 78 7d 7d 3b 00 00 00 18 20 20 20 20 66 6f 72 28 69 6e 74 20 x},{cx-y,cy-x}};........for(int.
40ac0 69 3d 30 3b 69 3c 38 3b 69 2b 2b 29 00 00 00 36 20 20 20 20 20 20 69 66 28 70 5b 69 5d 5b 30 5d i=0;i<8;i++)...6......if(p[i][0]
40ae0 3e 3d 30 26 26 70 5b 69 5d 5b 30 5d 3c 77 26 26 70 5b 69 5d 5b 31 5d 3e 3d 30 26 26 70 5b 69 5d >=0&&p[i][0]<w&&p[i][1]>=0&&p[i]
40b00 5b 31 5d 3c 68 29 00 00 00 20 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 2a 77 2b 70 [1]<h)............px[p[i][1]*w+p
40b20 5b 69 5d 5b 30 5d 5d 3d 63 3b 00 00 00 2d 20 20 20 20 69 66 28 64 3e 30 29 7b 64 2b 3d 34 2a 28 [i][0]]=c;...-....if(d>0){d+=4*(
40b40 78 2d 79 29 2b 31 30 3b 79 2d 2d 3b 7d 65 6c 73 65 20 64 2b 3d 34 2a 78 2b 36 3b 00 00 00 08 20 x-y)+10;y--;}else.d+=4*x+6;.....
40b60 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 21 73 74 61 74 69 ...x++;......}....}.......!stati
40b80 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 2a 61 29 7b 00 00 00 2d c.void.render(struct.app*a){...-
40ba0 20 20 69 66 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 7c 7c 61 2d 3e 77 3c 3d 30 7c 7c 61 2d ..if(!a->configured||a->w<=0||a-
40bc0 3e 68 3c 3d 30 29 72 65 74 75 72 6e 3b 00 00 00 1a 20 20 69 66 28 21 61 2d 3e 62 75 66 29 61 6c >h<=0)return;......if(!a->buf)al
40be0 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 18 20 20 75 69 6e 74 33 32 5f 74 2a 70 78 3d 61 2d 3e loc_buf(a);......uint32_t*px=a->
40c00 70 69 78 65 6c 73 3b 00 00 00 1e 20 20 6d 65 6d 73 65 74 28 70 78 2c 30 78 46 46 2c 61 2d 3e 77 pixels;......memset(px,0xFF,a->w
40c20 2a 61 2d 3e 68 2a 34 29 3b 00 00 00 17 20 20 74 69 6d 65 5f 74 20 74 74 3d 74 69 6d 65 28 4e 55 *a->h*4);......time_t.tt=time(NU
40c40 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 18 20 20 6c 6f LL);......struct.tm.tmv;......lo
40c60 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 26 74 6d 76 29 3b 00 00 00 1a 20 20 69 6e 74 20 63 78 caltime_r(&tt,&tmv);......int.cx
40c80 3d 61 2d 3e 77 2f 32 2c 63 79 3d 61 2d 3e 68 2f 32 3b 00 00 00 23 20 20 69 6e 74 20 72 3d 28 61 =a->w/2,cy=a->h/2;...#..int.r=(a
40ca0 2d 3e 77 3c 61 2d 3e 68 3f 61 2d 3e 77 3a 61 2d 3e 68 29 2f 32 2d 31 30 3b 00 00 00 0d 20 20 69 ->w<a->h?a->w:a->h)/2-10;......i
40cc0 66 28 72 3c 35 29 72 3d 35 3b 00 00 00 2a 20 20 63 69 72 63 6c 65 28 70 78 2c 61 2d 3e 77 2c 61 f(r<5)r=5;...*..circle(px,a->w,a
40ce0 2d 3e 68 2c 63 78 2c 63 79 2c 72 2c 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 18 20 20 66 6f ->h,cx,cy,r,0xFF000000);......fo
40d00 72 28 69 6e 74 20 69 3d 30 3b 69 3c 31 32 3b 69 2b 2b 29 7b 00 00 00 24 20 20 20 20 64 6f 75 62 r(int.i=0;i<12;i++){...$....doub
40d20 6c 65 20 61 6e 67 3d 69 2f 31 32 2e 30 2a 32 2a 4d 5f 50 49 2d 4d 5f 50 49 5f 32 3b 00 00 00 16 le.ang=i/12.0*2*M_PI-M_PI_2;....
40d40 20 20 20 20 6c 69 6e 65 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 00 00 00 1c 20 20 20 20 20 20 ....line(px,a->w,a->h,..........
40d60 20 20 20 63 78 2b 63 6f 73 28 61 6e 67 29 2a 28 72 2d 31 30 29 2c 00 00 00 1c 20 20 20 20 20 20 ...cx+cos(ang)*(r-10),..........
40d80 20 20 20 63 79 2b 73 69 6e 28 61 6e 67 29 2a 28 72 2d 31 30 29 2c 00 00 00 1b 20 20 20 20 20 20 ...cy+sin(ang)*(r-10),..........
40da0 20 20 20 63 78 2b 63 6f 73 28 61 6e 67 29 2a 28 72 2d 32 29 2c 00 00 00 1b 20 20 20 20 20 20 20 ...cx+cos(ang)*(r-2),...........
40dc0 20 20 63 79 2b 73 69 6e 28 61 6e 67 29 2a 28 72 2d 32 29 2c 00 00 00 15 20 20 20 20 20 20 20 20 ..cy+sin(ang)*(r-2),............
40de0 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 2a 20 20 64 6f 75 62 6c 65 .0xFF000000);......}...*..double
40e00 20 73 61 3d 74 6d 76 2e 74 6d 5f 73 65 63 2f 36 30 2e 30 2a 32 2a 4d 5f 50 49 2d 4d 5f 50 49 5f .sa=tmv.tm_sec/60.0*2*M_PI-M_PI_
40e20 32 3b 00 00 00 3c 20 20 64 6f 75 62 6c 65 20 6d 61 3d 28 74 6d 76 2e 74 6d 5f 6d 69 6e 2b 74 6d 2;...<..double.ma=(tmv.tm_min+tm
40e40 76 2e 74 6d 5f 73 65 63 2f 36 30 2e 30 29 2f 36 30 2e 30 2a 32 2a 4d 5f 50 49 2d 4d 5f 50 49 5f v.tm_sec/60.0)/60.0*2*M_PI-M_PI_
40e60 32 3b 00 00 00 44 20 20 64 6f 75 62 6c 65 20 68 61 3d 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 25 2;...D..double.ha=((tmv.tm_hour%
40e80 31 32 29 2b 28 74 6d 76 2e 74 6d 5f 6d 69 6e 2f 36 30 2e 30 29 29 2f 31 32 2e 30 2a 32 2a 4d 5f 12)+(tmv.tm_min/60.0))/12.0*2*M_
40ea0 50 49 2d 4d 5f 50 49 5f 32 3b 00 00 00 48 20 20 6c 69 6e 65 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e PI-M_PI_2;...H..line(px,a->w,a->
40ec0 68 2c 63 78 2c 63 79 2c 63 78 2b 63 6f 73 28 68 61 29 2a 72 2a 30 2e 35 2c 63 79 2b 73 69 6e 28 h,cx,cy,cx+cos(ha)*r*0.5,cy+sin(
40ee0 68 61 29 2a 72 2a 30 2e 35 2c 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 48 20 20 6c 69 6e 65 ha)*r*0.5,0xFF000000);...H..line
40f00 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 63 78 2c 63 79 2c 63 78 2b 63 6f 73 28 6d 61 29 2a 72 (px,a->w,a->h,cx,cy,cx+cos(ma)*r
40f20 2a 30 2e 37 2c 63 79 2b 73 69 6e 28 6d 61 29 2a 72 2a 30 2e 37 2c 30 78 46 46 30 30 30 30 30 30 *0.7,cy+sin(ma)*r*0.7,0xFF000000
40f40 29 3b 00 00 00 48 20 20 6c 69 6e 65 28 70 78 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 63 78 2c 63 79 2c );...H..line(px,a->w,a->h,cx,cy,
40f60 63 78 2b 63 6f 73 28 73 61 29 2a 72 2a 30 2e 39 2c 63 79 2b 73 69 6e 28 73 61 29 2a 72 2a 30 2e cx+cos(sa)*r*0.9,cy+sin(sa)*r*0.
40f80 39 2c 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 26 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 9,0xFFFF0000);...&..wl_surface_a
40fa0 74 74 61 63 68 28 61 2d 3e 77 73 2c 61 2d 3e 62 75 66 2c 30 2c 30 29 3b 00 00 00 30 20 20 77 6c ttach(a->ws,a->buf,0,0);...0..wl
40fc0 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 30 2c 30 _surface_damage_buffer(a->ws,0,0
40fe0 2c 61 2d 3e 77 2c 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d ,a->w,a->h);......wl_surface_com
41000 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 12 20 20 61 2d 3e 72 65 64 72 61 77 3d 66 61 6c 73 65 mit(a->ws);......a->redraw=false
41020 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3f 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f ;....}.......?static.void.xt_clo
41040 73 65 28 76 6f 69 64 2a 64 2c 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 2a 78 74 se(void*d,struct.xdg_toplevel*xt
41060 29 7b 72 75 6e 6e 69 6e 67 3d 30 3b 7d 00 00 00 00 00 00 00 58 73 74 61 74 69 63 20 76 6f 69 64 ){running=0;}.......Xstatic.void
41080 20 78 74 5f 63 66 67 28 76 6f 69 64 2a 64 2c 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 .xt_cfg(void*d,struct.xdg_toplev
410a0 65 6c 2a 78 74 2c 69 6e 74 33 32 5f 74 20 77 2c 69 6e 74 33 32 5f 74 20 68 2c 73 74 72 75 63 74 el*xt,int32_t.w,int32_t.h,struct
410c0 20 77 6c 5f 61 72 72 61 79 2a 73 29 7b 00 00 00 11 20 20 73 74 72 75 63 74 20 61 70 70 2a 61 3d .wl_array*s){......struct.app*a=
410e0 64 3b 00 00 00 23 20 20 69 66 28 77 3e 30 26 26 68 3e 30 26 26 28 77 21 3d 61 2d 3e 77 7c 7c 68 d;...#..if(w>0&&h>0&&(w!=a->w||h
41100 21 3d 61 2d 3e 68 29 29 7b 00 00 00 12 20 20 20 20 61 2d 3e 77 3d 77 3b 61 2d 3e 68 3d 68 3b 00 !=a->h)){........a->w=w;a->h=h;.
41120 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 13 20 20 20 20 61 2d .......destroy_buf(a);........a-
41140 3e 72 65 64 72 61 77 3d 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 >redraw=true;......}....}.......
41160 41 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 2a 64 2c 73 74 72 75 63 Astatic.void.xs_cfg(void*d,struc
41180 74 20 78 64 67 5f 73 75 72 66 61 63 65 2a 78 73 2c 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c t.xdg_surface*xs,uint32_t.serial
411a0 29 7b 00 00 00 11 20 20 73 74 72 75 63 74 20 61 70 70 2a 61 3d 64 3b 00 00 00 27 20 20 78 64 67 ){......struct.app*a=d;...'..xdg
411c0 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 73 65 72 69 61 6c _surface_ack_configure(xs,serial
411e0 29 3b 00 00 00 15 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 3d 74 72 75 65 3b 00 00 00 11 20 );......a->configured=true;.....
41200 20 61 2d 3e 72 65 64 72 61 77 3d 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 58 73 74 61 .a->redraw=true;....}.......Xsta
41220 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 2a 64 2c 73 74 72 75 63 tic.void.reg_global(void*d,struc
41240 74 20 77 6c 5f 72 65 67 69 73 74 72 79 2a 72 2c 75 69 6e 74 33 32 5f 74 20 69 64 2c 63 6f 6e 73 t.wl_registry*r,uint32_t.id,cons
41260 74 20 63 68 61 72 2a 69 2c 75 69 6e 74 33 32 5f 74 20 76 29 7b 00 00 00 11 20 20 73 74 72 75 63 t.char*i,uint32_t.v){......struc
41280 74 20 61 70 70 2a 61 3d 64 3b 00 00 00 20 20 20 69 66 28 21 73 74 72 63 6d 70 28 69 2c 22 77 6c t.app*a=d;......if(!strcmp(i,"wl
412a0 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 3e 20 20 20 20 61 2d 3e 63 6f 6d 70 3d 77 6c _compositor"))...>....a->comp=wl
412c0 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 69 64 2c 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 _registry_bind(r,id,&wl_composit
412e0 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 34 29 3b 00 00 00 1e 20 20 65 6c 73 65 20 69 66 28 21 73 or_interface,4);......else.if(!s
41300 74 72 63 6d 70 28 69 2c 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 36 20 20 20 20 61 2d 3e 73 68 6d trcmp(i,"wl_shm"))...6....a->shm
41320 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 69 64 2c 26 77 6c 5f 73 68 6d 5f 69 =wl_registry_bind(r,id,&wl_shm_i
41340 6e 74 65 72 66 61 63 65 2c 31 29 3b 00 00 00 24 20 20 65 6c 73 65 20 69 66 28 21 73 74 72 63 6d nterface,1);...$..else.if(!strcm
41360 70 28 69 2c 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 7b 00 00 00 3a 20 20 20 20 61 2d 3e 77 p(i,"xdg_wm_base")){...:....a->w
41380 6d 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 69 64 2c 26 78 64 67 5f 77 6d 5f m=wl_registry_bind(r,id,&xdg_wm_
413a0 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 31 29 3b 00 00 00 3f 20 20 20 20 73 74 61 74 69 63 base_interface,1);...?....static
413c0 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e .const.struct.xdg_wm_base_listen
413e0 65 72 20 6c 3d 7b 2e 70 69 6e 67 3d 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 29 20 20 20 20 78 64 67 er.l={.ping=wm_ping};...)....xdg
41400 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 26 6c 2c 61 _wm_base_add_listener(a->wm,&l,a
41420 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 0f 69 6e 74 20 6d 61 69 6e 28 76 );......}....}........int.main(v
41440 6f 69 64 29 7b 00 00 00 13 20 20 73 74 72 75 63 74 20 61 70 70 20 61 3d 7b 30 7d 3b 00 00 00 12 oid){......struct.app.a={0};....
41460 20 20 61 2e 77 3d 34 30 30 3b 61 2e 68 3d 34 30 30 3b 00 00 00 18 20 20 73 69 67 6e 61 6c 28 53 ..a.w=400;a.h=400;......signal(S
41480 49 47 49 4e 54 2c 6f 6e 5f 73 69 67 29 3b 00 00 00 1f 20 20 61 2e 64 3d 77 6c 5f 64 69 73 70 6c IGINT,on_sig);......a.d=wl_displ
414a0 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 13 20 20 69 66 28 21 61 2e 64 29 72 ay_connect(NULL);......if(!a.d)r
414c0 65 74 75 72 6e 20 31 3b 00 00 00 25 20 20 61 2e 72 65 67 3d 77 6c 5f 64 69 73 70 6c 61 79 5f 67 eturn.1;...%..a.reg=wl_display_g
414e0 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 43 20 20 73 74 61 74 69 63 20 63 6f et_registry(a.d);...C..static.co
41500 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 nst.struct.wl_registry_listener.
41520 72 6c 3d 7b 2e 67 6c 6f 62 61 6c 3d 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 29 20 20 77 6c rl={.global=reg_global};...)..wl
41540 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 26 72 6c _registry_add_listener(a.reg,&rl
41560 2c 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 ,&a);......wl_display_roundtrip(
41580 61 2e 64 29 3b 00 00 00 25 20 20 69 66 28 21 61 2e 63 6f 6d 70 7c 7c 21 61 2e 73 68 6d 7c 7c 21 a.d);...%..if(!a.comp||!a.shm||!
415a0 61 2e 77 6d 29 72 65 74 75 72 6e 20 31 3b 00 00 00 2c 20 20 61 2e 77 73 3d 77 6c 5f 63 6f 6d 70 a.wm)return.1;...,..a.ws=wl_comp
415c0 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 ositor_create_surface(a.comp);..
415e0 00 2e 20 20 61 2e 78 73 3d 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 ....a.xs=xdg_wm_base_get_xdg_sur
41600 66 61 63 65 28 61 2e 77 6d 2c 61 2e 77 73 29 3b 00 00 00 43 20 20 73 74 61 74 69 63 20 63 6f 6e face(a.wm,a.ws);...C..static.con
41620 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 st.struct.xdg_surface_listener.x
41640 73 6c 3d 7b 2e 63 6f 6e 66 69 67 75 72 65 3d 78 73 5f 63 66 67 7d 3b 00 00 00 29 20 20 78 64 67 sl={.configure=xs_cfg};...)..xdg
41660 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 26 78 73 6c 2c _surface_add_listener(a.xs,&xsl,
41680 26 61 29 3b 00 00 00 26 20 20 61 2e 78 74 3d 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 &a);...&..a.xt=xdg_surface_get_t
416a0 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 54 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 oplevel(a.xs);...T..static.const
416c0 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 .struct.xdg_toplevel_listener.xt
416e0 6c 3d 7b 2e 63 6f 6e 66 69 67 75 72 65 3d 78 74 5f 63 66 67 2c 2e 63 6c 6f 73 65 3d 78 74 5f 63 l={.configure=xt_cfg,.close=xt_c
41700 6c 6f 73 65 7d 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 lose};...*..xdg_toplevel_add_lis
41720 74 65 6e 65 72 28 61 2e 78 74 2c 26 78 74 6c 2c 26 61 29 3b 00 00 00 29 20 20 78 64 67 5f 74 6f tener(a.xt,&xtl,&a);...)..xdg_to
41740 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 22 77 6c 63 6c 6f 63 6b 22 29 plevel_set_title(a.xt,"wlclock")
41760 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 ;......wl_surface_commit(a.ws);.
41780 00 00 2f 20 20 77 68 69 6c 65 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 77 6c 5f 64 69 73 70 ../..while(!a.configured)wl_disp
417a0 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 lay_dispatch(a.d);......render(&
417c0 61 29 3b 00 00 00 36 20 20 69 6e 74 20 74 66 64 3d 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 a);...6..int.tfd=timerfd_create(
417e0 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 CLOCK_MONOTONIC,TFD_CLOEXEC);...
41800 40 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 30 2c 26 28 73 74 72 75 63 @..timerfd_settime(tfd,0,&(struc
41820 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 30 7d 2c 7b 31 2c 30 7d 7d 2c 4e 55 4c 4c 29 t.itimerspec){{1,0},{1,0}},NULL)
41840 3b 00 00 00 11 20 20 77 68 69 6c 65 28 72 75 6e 6e 69 6e 67 29 7b 00 00 00 2a 20 20 20 20 77 68 ;......while(running){...*....wh
41860 69 6c 65 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 ile(wl_display_prepare_read(a.d)
41880 21 3d 30 29 00 00 00 27 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 !=0)...'......wl_display_dispatc
418a0 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 h_pending(a.d);........wl_displa
418c0 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 48 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c y_flush(a.d);...H....struct.poll
418e0 66 64 20 66 64 73 5b 32 5d 3d 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e fd.fds[2]={{wl_display_get_fd(a.
41900 64 29 2c 50 4f 4c 4c 49 4e 7d 2c 7b 74 66 64 2c 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 19 20 20 20 d),POLLIN},{tfd,POLLIN}};.......
41920 20 69 66 28 70 6f 6c 6c 28 66 64 73 2c 32 2c 2d 31 29 3c 30 29 7b 00 00 00 22 20 20 20 20 20 20 .if(poll(fds,2,-1)<0){..."......
41940 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 0f wl_display_cancel_read(a.d);....
41960 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1d 20 20 20 20 ......continue;........}........
41980 69 66 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 26 50 4f 4c 4c 49 4e 29 00 00 00 22 20 20 20 if(fds[0].revents&POLLIN)..."...
419a0 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 00 ...wl_display_read_events(a.d);.
419c0 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f .......else..."......wl_display_
419e0 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 cancel_read(a.d);...%....wl_disp
41a00 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1e 20 20 lay_dispatch_pending(a.d);......
41a20 20 20 69 66 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 26 50 4f 4c 4c 49 4e 29 7b 00 00 00 11 ..if(fds[1].revents&POLLIN){....
41a40 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 3b 00 00 00 1d 20 20 20 20 20 20 72 65 61 64 28 ......uint64_t.t;..........read(
41a60 74 66 64 2c 26 74 2c 73 69 7a 65 6f 66 28 74 29 29 3b 00 00 00 14 20 20 20 20 20 20 61 2e 72 65 tfd,&t,sizeof(t));..........a.re
41a80 64 72 61 77 3d 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1b 20 20 20 20 69 66 28 61 2e draw=true;........}........if(a.
41aa0 72 65 64 72 61 77 29 72 65 6e 64 65 72 28 26 61 29 3b 35 81 f5 18 00 00 00 00 1a 00 00 00 19 00 redraw)render(&a);5.............
41ac0 00 00 bc 00 00 00 10 00 00 00 df 00 00 00 06 00 00 00 33 02 00 00 00 00 00 00 c2 15 00 00 00 00 ..................3.............
41ae0 00 00 b1 19 00 00 00 00 00 00 35 81 5f d0 00 00 00 34 00 00 00 36 00 00 00 00 00 00 00 00 00 00 ..........5._....4...6..........
41b00 00 35 00 00 00 03 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .5..............................
41b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e ................................
41c60 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a3 d9 04 01 00 00 00 16 00 f5 18 00 00 00 .......V........i...............
41c80 02 00 00 00 03 00 00 00 00 00 00 00 01 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f .................#include.<errno
41ca0 2e 68 3e 35 81 f5 18 00 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .h>5............................
41cc0 00 00 00 47 00 00 00 00 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 ...G.......................5._..
41ce0 00 00 35 00 00 00 37 00 00 00 00 00 00 00 00 00 00 00 36 00 00 00 c9 00 00 00 00 00 00 00 00 ff ..5...7...........6.............
41d00 ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41e40 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 ........................V.......
41e60 00 69 9d a3 df 04 01 00 00 00 00 00 f5 18 00 00 00 c7 00 00 00 c9 00 00 01 00 00 00 00 02 00 00 .i..............................
41e80 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 00 f5 18 00 00 00 c8 00 00 00 ca ..int.main(void).{..............
41ea0 00 00 01 00 00 00 00 01 00 00 00 01 09 f5 18 00 00 00 c8 00 00 00 ca 00 00 00 ff 00 00 00 00 35 ...............................5
41ec0 81 f5 18 00 00 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 51 ...............................Q
41ee0 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 c8 00 00 ................................
41f00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 51 15 00 00 00 00 00 00 02 00 00 .....................Q..........
41f20 00 00 00 00 00 01 00 00 00 00 00 00 00 f5 18 00 00 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 01 ................................
41f40 00 00 00 00 00 00 00 00 00 00 00 51 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ...........Q....................
41f60 00 00 00 f5 18 00 00 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 ................................
41f80 00 51 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 f5 18 00 00 00 00 c9 .Q..............................
41fa0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 52 15 00 00 00 00 00 00 01 .......................R........
41fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 c9 00 00 00 00 00 00 00 00 00 00 ................................
41fe0 00 00 00 00 00 01 00 00 00 01 00 00 00 52 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 .............R..................
42000 00 00 00 00 00 f5 18 00 00 00 00 ca 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ................................
42020 00 00 00 53 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 ...S............................
42040 00 c9 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 52 15 00 00 00 00 00 .........................R......
42060 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 c8 00 00 00 00 00 00 00 01 ................................
42080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 51 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ...............Q................
420a0 00 00 00 00 00 00 00 f5 18 00 00 00 00 c7 00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 00 00 ................................
420c0 00 00 00 00 00 50 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f .....P.......................5._
420e0 d0 00 00 00 36 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 37 00 00 00 c9 00 00 00 0f 00 00 00 ....6...8...........7...........
42100 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
421a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
421c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
421e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42240 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 ..........................V.....
42260 00 00 00 69 9d a3 e2 04 01 00 00 00 00 00 f5 18 00 00 00 c8 00 00 00 ca 00 00 01 00 00 00 00 02 ...i............................
42280 00 00 00 15 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 00 f5 18 00 ......struct.app.a.=.{0};.......
422a0 00 00 c9 00 00 00 cb 00 00 01 00 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 00 c9 00 00 00 cb 00 ................................
422c0 00 00 ff 00 00 00 00 35 81 f5 18 00 00 00 00 c9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 .......5........................
422e0 00 00 00 00 00 00 00 67 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 .......g........................
42300 18 00 00 00 00 c9 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 67 15 00 .............................g..
42320 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 c8 00 00 00 15 ................................
42340 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 66 15 00 00 00 00 00 00 01 00 00 00 00 ...................f............
42360 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 37 00 00 00 39 00 00 00 00 00 00 00 00 00 ...........5._....7...9.........
42380 00 00 38 00 00 00 c8 00 00 00 10 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 ..8.............................
423a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
423c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
423e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
424a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
424c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 ................................
424e0 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a3 e4 04 01 00 00 00 00 00 f5 18 00 00 ........V........i..............
42500 00 c7 00 00 00 ca 00 00 00 ff 00 00 00 01 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 ..................int.main(void)
42520 20 7b 35 81 f5 18 00 00 00 00 c7 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 .{5.............................
42540 00 00 50 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 f5 18 00 00 00 00 ..P.............................
42560 c8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 51 15 00 00 00 00 00 00 ........................Q.......
42580 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 f5 18 00 00 00 00 c8 00 00 00 00 00 00 00 00 00 ................................
425a0 00 00 01 00 00 00 00 00 00 00 00 00 00 00 51 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ..............Q.................
425c0 00 00 00 00 00 00 35 81 5f d0 00 00 00 38 00 00 00 3a 00 00 00 00 00 00 00 00 00 00 00 39 00 00 ......5._....8...:...........9..
425e0 00 c9 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
426a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
426c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
426e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42720 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 ................................
42740 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a3 e8 04 01 00 00 00 00 00 f5 18 00 00 00 c7 00 00 00 ...V........i...................
42760 ca 00 00 01 00 00 00 00 02 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 .............int.main(void).{...
42780 00 f5 18 00 00 00 c8 00 00 00 ca 00 00 01 00 00 00 00 01 00 00 00 00 35 81 f5 18 00 00 00 00 c7 .......................5........
427a0 00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 15 00 00 00 00 00 00 01 .......................P........
427c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 c7 00 00 00 10 00 00 00 00 00 00 ................................
427e0 00 00 00 00 00 01 00 00 00 00 00 00 00 50 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 .............P..................
42800 00 00 00 00 00 f5 18 00 00 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f ................................
42820 00 00 00 51 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 f5 18 00 00 00 ...Q............................
42840 00 c8 00 00 00 0e 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 5f 15 00 00 00 00 00 ........................._......
42860 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 c8 00 00 00 0d 00 00 00 00 ................................
42880 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 5e 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ...............^................
428a0 00 00 00 00 00 00 00 f5 18 00 00 00 00 c8 00 00 00 0c 00 00 00 00 00 00 00 01 00 00 00 00 00 00 ................................
428c0 00 00 00 00 00 5d 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 .....]..........................
428e0 00 00 00 c8 00 00 00 0b 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 5c 15 00 00 00 ...........................\....
42900 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 c8 00 00 00 0a 00 00 ................................
42920 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 5b 15 00 00 00 00 00 00 01 00 00 00 00 00 00 .................[..............
42940 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 c8 00 00 00 09 00 00 00 00 00 00 00 01 00 00 00 00 ................................
42960 00 00 00 00 00 00 00 5a 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 .......Z........................
42980 18 00 00 00 00 c8 00 00 00 08 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 03 00 00 00 59 15 00 .............................Y..
429a0 00 00 00 00 00 01 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 c8 00 00 00 09 ................................
429c0 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 03 00 00 00 5a 15 00 00 00 00 00 00 02 00 00 00 00 ...................Z............
429e0 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 c8 00 00 00 0b 00 00 00 00 00 00 00 01 00 00 ................................
42a00 00 00 00 00 00 07 00 00 00 5c 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 07 00 00 00 00 00 00 .........\......................
42a20 00 35 81 5f d0 00 00 00 39 00 00 00 3b 00 00 00 00 00 00 00 00 00 00 00 3a 00 00 00 c9 00 00 00 .5._....9...;...........:.......
42a40 12 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42b80 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 ..............................V.
42ba0 00 00 0e 00 00 00 00 69 9d a4 01 04 01 00 00 00 00 00 f5 18 00 00 00 c8 00 00 00 ca 00 00 01 00 .......i........................
42bc0 00 00 00 01 00 00 00 12 09 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 35 81 f5 18 00 00 .........time_t.cli.=.time5.....
42be0 00 00 c8 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 63 15 00 00 00 00 ..........................c.....
42c00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 3a 00 00 00 3c 00 00 ..................5._....:...<..
42c20 00 00 00 00 00 00 00 00 00 3b 00 00 00 c9 00 00 00 13 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 .........;......................
42c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 ................................
42d80 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 01 04 01 00 00 ...............V........i.......
42da0 00 00 00 f5 18 00 00 00 c8 00 00 00 ca 00 00 01 00 00 00 00 01 00 00 00 14 09 74 69 6d 65 5f 74 ..........................time_t
42dc0 20 63 6c 69 20 3d 20 74 69 6d 65 28 29 35 81 f5 18 00 00 00 00 c8 00 00 00 13 00 00 00 00 00 00 .cli.=.time()5..................
42de0 00 00 00 00 00 00 00 00 00 03 00 00 00 64 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 .............d..................
42e00 00 00 00 00 00 35 81 5f d0 00 00 00 3b 00 00 00 3d 00 00 00 00 00 00 00 00 00 00 00 3c 00 00 00 .....5._....;...=...........<...
42e20 c9 00 00 00 17 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42f60 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 ................................
42f80 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 02 04 01 00 00 00 00 00 f5 18 00 00 00 c8 00 00 00 ca ..V........i....................
42fa0 00 00 01 00 00 00 00 01 00 00 00 17 09 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 28 4e .............time_t.cli.=.time(N
42fc0 55 4c 29 35 81 f5 18 00 00 00 00 c8 00 00 00 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 UL)5............................
42fe0 00 00 00 68 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 ...h.......................5._..
43000 00 00 3c 00 00 00 3e 00 00 00 00 00 00 00 00 00 00 00 3d 00 00 00 c9 00 00 00 16 00 00 00 00 ff ..<...>...........=.............
43020 ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
430a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
430c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
430e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43160 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 ........................V.......
43180 00 69 9d a4 08 04 01 00 00 00 00 00 f5 18 00 00 00 c8 00 00 00 ca 00 00 01 00 00 00 00 01 00 00 .i..............................
431a0 00 18 09 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 28 4e 55 4c 29 3a 35 81 f5 18 00 00 ...time_t.cli.=.time(NUL):5.....
431c0 00 00 c8 00 00 00 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 67 15 00 00 00 00 ..........................g.....
431e0 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 3d 00 00 00 3f 00 00 ..................5._....=...?..
43200 00 00 00 00 00 00 00 00 00 3e 00 00 00 c9 00 00 00 19 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 .........>......................
43220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
432a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
432c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
432e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 ................................
43360 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 09 04 01 00 00 ...............V........i.......
43380 00 00 00 f5 18 00 00 00 c8 00 00 00 cb 00 00 01 00 00 00 00 01 00 00 00 19 09 74 69 6d 65 5f 74 ..........................time_t
433a0 20 63 6c 69 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3a 35 81 f5 18 00 00 00 00 c8 00 00 00 19 00 .cli.=.time(NULL):5.............
433c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 6a 15 00 00 00 00 00 00 00 00 00 00 00 00 ..................j.............
433e0 00 00 01 00 00 00 00 00 00 00 f5 18 00 00 00 00 c8 00 00 00 18 00 00 00 00 00 00 00 02 00 00 00 ................................
43400 00 00 00 00 01 00 00 00 69 15 00 00 00 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........i.......................
43420 f5 18 00 00 00 00 c8 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 6a 15 ..............................j.
43440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 f5 18 00 00 00 00 c9 00 00 00 ................................
43460 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 6c 15 00 00 00 00 00 00 00 00 00 00 ....................l...........
43480 00 00 00 00 0a 00 00 00 00 00 00 00 f5 18 00 00 00 00 c9 00 00 00 0a 00 00 00 00 00 00 00 01 00 ................................
434a0 00 00 00 00 00 00 00 00 00 00 75 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ..........u.....................
434c0 00 00 f5 18 00 00 00 00 c9 00 00 00 09 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 03 00 00 00 ................................
434e0 74 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 3e t.......................5._....>
43500 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 3f 00 00 00 ca 00 00 00 09 00 00 00 00 ff ff ff ff ...@...........?................
43520 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
435a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
435c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
435e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 ................................
43660 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d .....................V........i.
43680 a4 13 04 01 00 00 00 00 00 f5 18 00 00 00 c9 00 00 00 cb 00 00 01 01 00 00 00 01 00 00 00 0c 09 ................................
436a0 73 74 72 75 63 74 20 74 63 6c 69 35 81 f5 18 00 00 00 00 c9 00 00 00 09 00 00 00 00 00 00 00 00 struct.tcli5....................
436c0 00 00 00 00 00 00 00 01 00 00 00 74 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ...........t....................
436e0 00 00 00 35 81 5f d0 00 00 00 3f 00 00 00 41 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 ca 00 ...5._....?...A...........@.....
43700 00 00 0d 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
437a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
437c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
437e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43840 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 ................................
43860 56 00 00 00 0e 00 00 00 00 69 9d a4 15 04 01 00 00 00 00 00 f5 18 00 00 00 c9 00 00 00 cb 00 00 V........i......................
43880 01 01 00 00 00 01 00 00 00 0d 09 73 74 72 75 63 74 20 74 6d 63 6c 69 35 81 f5 18 00 00 00 00 c9 ...........struct.tmcli5........
438a0 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 78 15 00 00 00 00 00 00 00 .......................x........
438c0 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 40 00 00 00 42 00 00 00 00 00 ...............5._....@...B.....
438e0 00 00 00 00 00 00 41 00 00 00 ca 00 00 00 0d 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 ......A.........................
43900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
439a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
439c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
439e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 ................................
43a40 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 1a 04 01 00 00 00 00 00 ............V........i..........
43a60 f5 18 00 00 00 c9 00 00 00 cb 00 00 01 01 00 00 00 01 00 00 00 11 09 73 74 72 75 63 74 20 74 6d .......................struct.tm
43a80 63 6c 69 20 2a 74 20 35 81 f5 18 00 00 00 00 c9 00 00 00 0c 00 00 00 00 00 00 00 01 00 00 00 00 cli.*t.5........................
43aa0 00 00 00 00 00 00 00 77 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 .......w........................
43ac0 18 00 00 00 00 c9 00 00 00 0b 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 76 15 00 .............................v..
43ae0 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 c9 00 00 00 0a ................................
43b00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 75 15 00 00 00 00 00 00 01 00 00 00 00 ...................u............
43b20 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 41 00 00 00 43 00 00 00 00 00 00 00 00 00 ...........5._....A...C.........
43b40 00 00 42 00 00 00 ca 00 00 00 0e 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 ..B.............................
43b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 ................................
43ca0 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 20 04 01 00 00 00 00 00 f5 18 00 00 ........V........i..............
43cc0 00 c9 00 00 00 cb 00 00 01 01 00 00 00 01 00 00 00 0e 09 73 74 72 75 63 74 20 74 6d 20 2a 74 20 ...................struct.tm.*t.
43ce0 35 81 f5 18 00 00 00 00 c9 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 5...............................
43d00 79 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 42 y.......................5._....B
43d20 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 43 00 00 00 ca 00 00 00 19 00 00 00 00 ff ff ff ff ...D...........C................
43d40 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 ................................
43e80 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d .....................V........i.
43ea0 a4 22 04 01 00 00 00 00 00 f5 18 00 00 00 c9 00 00 00 cb 00 00 01 01 00 00 00 01 00 00 00 19 09 ."..............................
43ec0 73 74 72 75 63 74 20 74 6d 20 2a 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 35 81 f5 18 00 00 00 00 struct.tm.*t.=.localtime5.......
43ee0 c9 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 84 15 00 00 00 00 00 00 ................................
43f00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 43 00 00 00 45 00 00 00 00 ................5._....C...E....
43f20 00 00 00 00 00 00 00 44 00 00 00 ca 00 00 00 1a 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 .......D........................
43f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 ................................
44080 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 23 04 01 00 00 00 00 .............V........i..#......
440a0 00 f5 18 00 00 00 c9 00 00 00 cb 00 00 01 01 00 00 00 01 00 00 00 1b 09 73 74 72 75 63 74 20 74 ........................struct.t
440c0 6d 20 2a 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 29 35 81 f5 18 00 00 00 00 c9 00 00 00 1a 00 m.*t.=.localtime()5.............
440e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 85 15 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44100 00 00 04 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 44 00 00 00 46 00 00 00 00 00 00 00 00 00 00 ..........5._....D...F..........
44120 00 45 00 00 00 ca 00 00 00 1f 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .E..............................
44140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
441a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
441c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
441e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e ................................
44280 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 24 04 01 00 00 00 00 00 f5 18 00 00 00 .......V........i..$............
442a0 c9 00 00 00 cc 00 00 01 01 00 00 00 01 00 00 00 1f 09 73 74 72 75 63 74 20 74 6d 20 2a 74 20 3d ..................struct.tm.*t.=
442c0 20 6c 6f 63 61 6c 74 69 6d 65 28 26 6e 6f 77 29 35 81 f5 18 00 00 00 00 c9 00 00 00 1f 00 00 00 .localtime(&now)5...............
442e0 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 8a 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44300 01 00 00 00 00 00 00 00 f5 18 00 00 00 00 c9 00 00 00 1f 00 00 00 00 00 00 00 01 00 00 00 00 00 ................................
44320 00 00 01 00 00 00 8a 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 f5 18 ................................
44340 00 00 00 00 c9 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 8b 15 00 00 ................................
44360 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 f5 18 00 00 00 00 ca 00 00 00 01 00 ................................
44380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 8d 15 00 00 00 00 00 00 00 00 00 00 00 00 ................................
443a0 00 00 04 00 00 00 00 00 00 00 f5 18 00 00 00 00 ca 00 00 00 02 00 00 00 00 00 00 00 03 00 00 00 ................................
443c0 00 00 00 00 06 00 00 00 8e 15 00 00 00 00 00 00 03 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 ................................
443e0 f5 18 00 00 00 00 ca 00 00 00 07 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 05 00 00 00 93 15 ................................
44400 00 00 00 00 00 00 01 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 45 00 00 ......................5._....E..
44420 00 47 00 00 00 00 00 00 00 00 00 00 00 46 00 00 00 cb 00 00 00 0c 00 00 00 00 ff ff ff ff 00 01 .G...........F..................
44440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
444a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
444c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
444e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e ................................
44580 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 29 ...................V........i..)
445a0 04 01 00 00 00 00 00 f5 18 00 00 00 ca 00 00 00 cc 00 00 01 02 00 00 00 01 00 00 00 0c 09 63 68 ..............................ch
445c0 61 72 20 62 75 66 66 65 72 35 81 f5 18 00 00 00 00 ca 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 ar.buffer5......................
445e0 00 00 00 00 00 02 00 00 00 98 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 ................................
44600 00 35 81 5f d0 00 00 00 46 00 00 00 48 00 00 00 00 00 00 00 00 00 00 00 47 00 00 00 cb 00 00 00 .5._....F...H...........G.......
44620 0d 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
446a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
446c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
446e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44760 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 ..............................V.
44780 00 00 0e 00 00 00 00 69 9d a4 29 04 01 00 00 00 00 00 f5 18 00 00 00 ca 00 00 00 cc 00 00 01 02 .......i..).....................
447a0 00 00 00 01 00 00 00 0e 09 63 68 61 72 20 62 75 66 66 65 72 5b 5d 35 81 f5 18 00 00 00 00 ca 00 .........char.buffer[]5.........
447c0 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 99 15 00 00 00 00 00 00 00 00 ................................
447e0 00 00 00 00 00 00 03 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 47 00 00 00 49 00 00 00 00 00 00 ..............5._....G...I......
44800 00 00 00 00 00 48 00 00 00 cb 00 00 00 11 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 .....H..........................
44820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
448a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
448c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
448e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 ................................
44960 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 2b 04 01 00 00 00 00 00 f5 ...........V........i..+........
44980 18 00 00 00 ca 00 00 00 cd 00 00 01 02 00 00 00 01 00 00 00 11 09 63 68 61 72 20 62 75 66 66 65 ......................char.buffe
449a0 72 5b 31 30 30 5d 35 81 f5 18 00 00 00 00 ca 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 r[100]5.........................
449c0 00 00 01 00 00 00 9d 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 f5 18 ................................
449e0 00 00 00 00 ca 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 9e 15 00 00 ................................
44a00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 f5 18 00 00 00 00 cb 00 00 00 01 00 ................................
44a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 a0 15 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44a40 00 00 08 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 48 00 00 00 4a 00 00 00 00 00 00 00 00 00 00 ..........5._....H...J..........
44a60 00 49 00 00 00 cc 00 00 00 09 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .I..............................
44a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e ................................
44bc0 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 2f 04 01 00 00 00 00 00 f5 18 00 00 00 .......V........i../............
44be0 cb 00 00 00 cd 00 00 01 03 00 00 00 01 00 00 00 09 09 73 74 72 66 74 69 6d 65 35 81 f5 18 00 00 ..................strftime5.....
44c00 00 00 cb 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 a8 15 00 00 00 00 ................................
44c20 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 49 00 00 00 4b 00 00 ..................5._....I...K..
44c40 00 00 00 00 00 00 00 00 00 4a 00 00 00 cc 00 00 00 0a 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 .........J......................
44c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 ................................
44da0 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 2f 04 01 00 00 ...............V........i../....
44dc0 00 00 00 f5 18 00 00 00 cb 00 00 00 cd 00 00 01 03 00 00 00 01 00 00 00 0b 09 73 74 72 66 74 69 ..........................strfti
44de0 6d 65 28 29 35 81 f5 18 00 00 00 00 cb 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 me()5...........................
44e00 03 00 00 00 a9 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 ................................
44e20 00 00 cb 00 00 00 0c 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 0c 00 00 00 ab 15 00 00 00 00 ................................
44e40 00 00 01 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 4a 00 00 00 4c 00 00 ..................5._....J...L..
44e60 00 00 00 00 00 00 00 00 00 4b 00 00 00 cc 00 00 00 18 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 .........K......................
44e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 ................................
44fc0 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 32 04 01 00 00 ...............V........i..2....
44fe0 00 00 00 f5 18 00 00 00 cb 00 00 00 cd 00 00 01 03 00 00 00 01 00 00 00 19 09 73 74 72 66 74 69 ..........................strfti
45000 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 29 35 81 f5 18 00 00 00 00 cb 00 00 00 18 00 me(buffer,.sizeof)5.............
45020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 b7 15 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45040 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 4b 00 00 00 4d 00 00 00 00 00 00 00 00 00 00 ..........5._....K...M..........
45060 00 4c 00 00 00 cc 00 00 00 19 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .L..............................
45080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
450a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
450c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
450e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
451a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e ................................
451c0 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 33 04 01 00 00 00 00 00 f5 18 00 00 00 .......V........i..3............
451e0 cb 00 00 00 cd 00 00 01 03 00 00 00 01 00 00 00 1b 09 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 ..................strftime(buffe
45200 72 2c 20 73 69 7a 65 6f 66 28 29 29 35 81 f5 18 00 00 00 00 cb 00 00 00 19 00 00 00 00 00 00 00 r,.sizeof())5...................
45220 00 00 00 00 00 00 00 00 06 00 00 00 b8 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 ................................
45240 00 00 00 00 35 81 5f d0 00 00 00 4c 00 00 00 4e 00 00 00 00 00 00 00 00 00 00 00 4d 00 00 00 cc ....5._....L...N...........M....
45260 00 00 00 20 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
452a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
452c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
452e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
453a0 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 ................................
453c0 00 56 00 00 00 0e 00 00 00 00 69 9d a4 34 04 01 00 00 00 00 00 f5 18 00 00 00 cb 00 00 00 cd 00 .V........i..4..................
453e0 00 01 03 00 00 00 01 00 00 00 21 09 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a ..........!.strftime(buffer,.siz
45400 65 6f 66 28 62 75 66 66 65 72 29 29 35 81 f5 18 00 00 00 00 cb 00 00 00 20 00 00 00 00 00 00 00 eof(buffer))5...................
45420 00 00 00 00 00 00 00 00 01 00 00 00 bf 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................................
45440 00 00 00 00 f5 18 00 00 00 00 cb 00 00 00 20 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 02 00 ................................
45460 00 00 bf 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 ..........................5._...
45480 00 4d 00 00 00 4f 00 00 00 00 00 00 00 00 00 00 00 4e 00 00 00 cc 00 00 00 22 00 00 00 00 ff ff .M...O...........N......."......
454a0 ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
454c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
454e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
455a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
455c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 ................................
455e0 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 .......................V........
45600 69 9d a4 36 04 01 00 00 00 00 00 f5 18 00 00 00 cb 00 00 00 cd 00 00 01 03 00 00 00 01 00 00 00 i..6............................
45620 23 09 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 #.strftime(buffer,.sizeof(buffer
45640 29 2c 20 29 35 81 f5 18 00 00 00 00 cb 00 00 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ),.)5..........."...............
45660 02 00 00 00 c1 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 ............................5._.
45680 00 00 00 4e 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 4f 00 00 00 cc 00 00 00 23 00 00 00 00 ...N...P...........O.......#....
456a0 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
456c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
456e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
457a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
457c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
457e0 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 .........................V......
45800 00 00 69 9d a4 37 04 01 00 00 00 00 00 f5 18 00 00 00 cb 00 00 00 cd 00 00 01 03 00 00 00 01 00 ..i..7..........................
45820 00 00 25 09 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 ..%.strftime(buffer,.sizeof(buff
45840 65 72 29 2c 20 22 22 29 35 81 f5 18 00 00 00 00 cb 00 00 00 23 00 00 00 00 00 00 00 00 00 00 00 er),."")5...........#...........
45860 00 00 00 00 06 00 00 00 c2 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 ................................
45880 f5 18 00 00 00 00 cb 00 00 00 25 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 c4 15 ..........%.....................
458a0 00 00 00 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 f5 18 00 00 00 00 cb 00 00 00 ................................
458c0 28 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 0c 00 00 00 c7 15 00 00 00 00 00 00 01 00 00 00 (...............................
458e0 00 00 00 00 0c 00 00 00 00 00 00 00 f5 18 00 00 00 00 cb 00 00 00 33 00 00 00 00 00 00 00 01 00 ......................3.........
45900 00 00 00 00 00 00 01 00 00 00 d2 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 ................................
45920 00 00 35 81 5f d0 00 00 00 4f 00 00 00 52 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 cc 00 00 ..5._....O...R...........P......
45940 00 34 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .4..............................
45960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
459a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
459c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
459e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45a80 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 ...............................V
45aa0 00 00 00 0e 00 00 00 00 69 9d a4 48 04 01 00 00 00 00 00 f5 18 00 00 00 cb 00 00 00 cd 00 00 01 ........i..H....................
45ac0 03 00 00 00 01 00 00 00 36 09 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f ........6.strftime(buffer,.sizeo
45ae0 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 22 29 35 f(buffer),."%d-%m-%Y.%I:%M:%S")5
45b00 81 f5 18 00 00 00 00 cb 00 00 00 34 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 d3 ...........4....................
45b20 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 50 00 .......................5._....P.
45b40 00 00 53 00 00 00 51 00 00 00 00 00 00 00 52 00 00 00 cc 00 00 00 39 00 00 00 00 ff ff ff ff 00 ..S...Q.......R.......9.........
45b60 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 ................................
45ca0 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 ....................V........i..
45cc0 4c 04 01 00 00 00 00 00 f5 18 00 00 00 cb 00 00 00 cd 00 00 01 03 00 00 00 01 00 00 00 39 09 73 L............................9.s
45ce0 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 trftime(buffer,.sizeof(buffer),.
45d00 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 29 35 81 f5 18 00 00 00 00 cb "%d-%m-%Y.%I:%M:%S.%p")5........
45d20 00 00 00 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 d8 15 00 00 00 00 00 00 00 ...9............................
45d40 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 52 00 00 00 54 00 00 00 00 00 ...............5._....R...T.....
45d60 00 00 00 00 00 00 53 00 00 00 cc 00 00 00 39 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 ......S.......9.................
45d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 ................................
45ec0 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 4c 04 01 00 00 00 19 00 ............V........i..L.......
45ee0 f5 18 00 00 00 c8 00 00 00 cd 00 00 01 03 00 00 00 04 00 00 00 19 09 74 69 6d 65 5f 74 20 63 6c .......................time_t.cl
45f00 69 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 20 09 73 74 72 75 63 74 20 74 6d 20 2a 74 i.=.time(NULL);.....struct.tm.*t
45f20 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 6e 6f 77 29 3b 00 00 00 12 09 63 68 61 72 20 62 75 66 .=.localtime(&now);.....char.buf
45f40 66 65 72 5b 31 30 30 5d 3b 00 00 00 3a 09 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 fer[100];...:.strftime(buffer,.s
45f60 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 izeof(buffer),."%d-%m-%Y.%I:%M:%
45f80 53 20 25 70 22 29 3b 35 81 f5 18 00 00 00 00 c8 00 00 00 00 00 00 00 03 00 00 00 01 00 00 00 03 S.%p");5........................
45fa0 00 00 00 02 00 00 00 51 15 00 00 00 00 00 00 4f 00 00 00 00 00 00 00 53 00 00 00 00 00 00 00 35 .......Q.......O.......S.......5
45fc0 81 5f d0 00 00 00 53 00 00 00 55 00 00 00 00 00 00 00 00 00 00 00 54 00 00 00 cc 00 00 00 39 00 ._....S...U...........T.......9.
45fe0 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
460a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
460c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
460e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46120 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 ............................V...
46140 0e 00 00 00 00 69 9d a4 55 04 01 00 00 00 00 00 f5 18 00 00 00 cb 00 00 00 cd 00 00 01 03 00 00 .....i..U.......................
46160 00 01 00 00 00 3b 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 .....;..strftime(buffer,.sizeof(
46180 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 29 buffer),."%d-%m-%Y.%I:%M:%S.%p")
461a0 3b 35 81 f5 18 00 00 00 00 cb 00 00 00 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 ;5...........9..................
461c0 00 db 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 .........................5._....
461e0 54 00 00 00 56 00 00 00 00 00 00 00 00 00 00 00 55 00 00 00 cc 00 00 00 3e 00 00 00 00 ff ff ff T...V...........U.......>.......
46200 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
462a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
462c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
462e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 ................................
46340 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 ......................V........i
46360 9d a4 56 04 01 00 00 00 00 00 f5 18 00 00 00 cb 00 00 00 ce 00 00 01 03 00 00 00 01 00 00 00 3e ..V............................>
46380 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 ..strftime(buffer,.sizeof(buffer
463a0 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c 20 74 29 3b 35 81 ),."%d-%m-%Y.%I:%M:%S.%p",.t);5.
463c0 f5 18 00 00 00 00 cb 00 00 00 3e 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 e0 15 ..........>.....................
463e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 cc 00 00 00 ................................
46400 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 e3 15 00 00 00 00 00 00 00 00 00 00 ................................
46420 00 00 00 00 06 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 55 00 00 00 57 00 00 00 00 00 00 00 00 ............5._....U...W........
46440 00 00 00 56 00 00 00 cd 00 00 00 08 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 ...V............................
46460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
464a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
464c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
464e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 ................................
465a0 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 58 04 01 00 00 00 00 00 f5 18 00 .........V........i..X..........
465c0 00 00 cc 00 00 00 ce 00 00 01 04 00 00 00 01 00 00 00 08 20 20 70 72 69 6e 74 66 35 81 f5 18 00 .....................printf5....
465e0 00 00 00 cc 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 e9 15 00 00 00 ................................
46600 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 56 00 00 00 58 00 ...................5._....V...X.
46620 00 00 00 00 00 00 00 00 00 00 57 00 00 00 cd 00 00 00 09 00 00 00 00 ff ff ff ff 00 01 00 00 00 ..........W.....................
46640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
466a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
466c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
466e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 ................................
46780 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 59 04 01 00 ................V........i..Y...
467a0 00 00 00 00 f5 18 00 00 00 cc 00 00 00 ce 00 00 01 04 00 00 00 01 00 00 00 0a 20 20 70 72 69 6e ............................prin
467c0 74 66 28 29 35 81 f5 18 00 00 00 00 cc 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 tf()5...........................
467e0 02 00 00 00 ea 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 ............................5._.
46800 00 00 00 57 00 00 00 59 00 00 00 00 00 00 00 00 00 00 00 58 00 00 00 cd 00 00 00 0a 00 00 00 00 ...W...Y...........X............
46820 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
468a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
468c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
468e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46960 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 .........................V......
46980 00 00 69 9d a4 59 04 01 00 00 00 00 00 f5 18 00 00 00 cc 00 00 00 ce 00 00 01 04 00 00 00 01 00 ..i..Y..........................
469a0 00 00 0c 20 20 70 72 69 6e 74 66 28 22 22 29 35 81 f5 18 00 00 00 00 cc 00 00 00 0a 00 00 00 00 .....printf("")5................
469c0 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 ................................
469e0 00 00 00 00 00 00 00 f5 18 00 00 00 00 cc 00 00 00 0b 00 00 00 00 00 00 00 02 00 00 00 00 00 00 ................................
46a00 00 0d 00 00 00 ec 15 00 00 00 00 00 00 02 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00 f5 18 00 ................................
46a20 00 00 00 cc 00 00 00 0a 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00 04 00 00 00 eb 15 00 00 00 ................................
46a40 00 00 00 0e 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 58 00 00 00 5a 00 ...................5._....X...Z.
46a60 00 00 00 00 00 00 00 00 00 00 59 00 00 00 cd 00 00 00 0f 00 00 00 00 ff ff ff ff 00 01 00 00 00 ..........Y.....................
46a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 ................................
46bc0 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 60 04 01 00 ................V........i..`...
46be0 00 00 00 00 f5 18 00 00 00 cc 00 00 00 ce 00 00 01 04 00 00 00 01 00 00 00 10 20 20 70 72 69 6e ............................prin
46c00 74 66 28 22 25 73 5c 6e 22 29 35 81 f5 18 00 00 00 00 cc 00 00 00 0f 00 00 00 00 00 00 00 00 00 tf("%s\n")5.....................
46c20 00 00 00 00 00 00 08 00 00 00 f0 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00 ................................
46c40 00 00 35 81 5f d0 00 00 00 59 00 00 00 5b 00 00 00 00 00 00 00 00 00 00 00 5a 00 00 00 cd 00 00 ..5._....Y...[...........Z......
46c60 00 18 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46da0 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 56 ...............................V
46dc0 00 00 00 0e 00 00 00 00 69 9d a4 63 04 01 00 00 00 1a 00 f5 18 00 00 00 cc 00 00 00 ce 00 00 01 ........i..c....................
46de0 04 00 00 00 01 00 00 00 18 20 20 70 72 69 6e 74 66 28 22 25 73 5c 6e 22 2c 20 62 75 66 66 65 72 ...........printf("%s\n",.buffer
46e00 29 35 81 f5 18 00 00 00 00 cc 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 )5..............................
46e20 00 f9 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 .........................5._....
46e40 5a 00 00 00 5c 00 00 00 00 00 00 00 00 00 00 00 5b 00 00 00 ca 00 00 00 1c 00 00 00 00 ff ff ff Z...\...........[...............
46e60 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 ...............................i
46fc0 9d a4 6d 04 01 00 00 00 1b 00 f5 18 00 00 00 c9 00 00 00 cb 00 00 01 04 00 00 00 01 00 00 00 21 ..m............................!
46fe0 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 6e 6f 77 29 ..struct.tm.*t.=.localtime(&now)
47000 3b 35 81 f5 18 00 00 00 00 c9 00 00 00 1c 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 ;5..............................
47020 00 88 15 00 00 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 .........................5._....
47040 5b 00 00 00 5d 00 00 00 00 00 00 00 00 00 00 00 5c 00 00 00 cd 00 00 00 0a 00 00 00 00 ff ff ff [...]...........\...............
47060 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
470a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
470c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
470e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
471a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 ...............................i
471c0 9d a4 7f 04 01 00 00 00 00 00 f5 18 00 00 00 cc 00 00 00 ce 00 00 01 04 00 00 00 01 00 00 00 19 ................................
471e0 20 20 70 72 69 6e 74 66 28 22 25 73 5c 6e 22 2c 20 62 75 66 66 65 72 29 3b 35 81 f5 18 00 00 00 ..printf("%s\n",.buffer);5......
47200 00 cc 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 15 00 00 00 00 00 ................................
47220 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 cc 00 00 00 0c 00 00 00 00 ................................
47240 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ed 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ................................
47260 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 5c 00 00 00 5e 00 00 00 00 00 00 00 00 00 00 00 5d 00 .......5._....\...^...........].
47280 00 00 cd 00 00 00 0c 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
472a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
472c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
472e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
473a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
473c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
473e0 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a4 89 04 01 00 00 00 1c 00 f5 18 00 00 00 cc 00 00 .............i..................
47400 00 ce 00 00 01 04 00 00 00 01 00 00 00 1b 20 20 70 72 69 6e 74 66 28 22 54 3d 25 73 5c 6e 22 2c ................printf("T=%s\n",
47420 20 62 75 66 66 65 72 29 3b 35 81 f5 18 00 00 00 00 cc 00 00 00 0b 00 00 00 00 00 00 00 01 00 00 .buffer);5......................
47440 00 00 00 00 00 07 00 00 00 ec 15 00 00 00 00 00 00 01 00 00 00 00 00 00 00 07 00 00 00 00 00 00 ................................
47460 00 35 81 5f d0 00 00 00 5d 00 00 00 5f 00 00 00 00 00 00 00 00 00 00 00 5e 00 00 00 cd 00 00 00 .5._....]..._...........^.......
47480 1c 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
474a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
474c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
474e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
475a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
475c0 00 00 00 00 00 00 cd 00 00 00 20 00 00 00 00 00 00 00 c9 00 00 00 1a 00 00 00 00 00 00 00 56 00 ..............................V.
475e0 00 00 27 00 00 00 00 69 9d a5 b5 04 01 00 00 00 00 00 f5 18 00 00 00 cd 00 00 00 d1 00 00 01 05 ..'....i........................
47600 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 00 cd 00 00 00 cf 00 00 01 04 00 00 00 00 35 81 f5 18 ............................5...
47620 00 00 00 00 cd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 03 16 00 00 ................................
47640 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 cd 00 00 00 00 00 ................................
47660 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 03 16 00 00 00 00 00 00 02 00 00 00 00 00 ................................
47680 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 cd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
476a0 01 00 00 00 02 00 00 00 03 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 ................................
476c0 f5 18 00 00 00 00 ce 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 16 ................................
476e0 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 ce 00 00 00 ................................
47700 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 04 16 00 00 00 00 00 00 00 00 00 00 ................................
47720 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 cf 00 00 00 00 00 00 00 00 00 00 00 02 00 ................................
47740 00 00 00 00 00 00 00 00 00 00 05 16 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47760 00 00 35 81 5f d0 00 00 00 5e 00 00 00 60 00 00 00 00 00 00 00 00 00 00 00 5f 00 00 00 cf 00 00 ..5._....^...`..........._......
47780 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
477a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
477c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
477e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
478a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
478c0 00 00 00 00 00 00 00 cd 00 00 00 20 00 00 00 00 00 00 00 c9 00 00 00 1a 00 00 00 00 00 00 00 56 ...............................V
478e0 00 00 00 27 00 00 00 00 69 9d a5 b6 04 01 00 00 00 00 00 f5 18 00 00 00 ce 00 00 00 d0 00 00 01 ...'....i.......................
47900 07 00 00 00 01 00 00 00 00 35 81 f5 18 00 00 00 00 ce 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........5......................
47920 00 00 00 00 00 04 00 00 00 04 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 ................................
47940 00 f5 18 00 00 00 00 ce 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 01 00 00 00 04 ................................
47960 16 00 00 00 00 00 00 04 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 f5 18 00 00 00 00 ce 00 00 ................................
47980 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 04 16 00 00 00 00 00 00 01 00 00 ................................
479a0 00 00 00 00 00 02 00 00 00 00 00 00 00 f5 18 00 00 00 00 ce 00 00 00 00 00 00 00 00 00 00 00 02 ................................
479c0 00 00 00 00 00 00 00 04 00 00 00 04 16 00 00 00 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 00 ................................
479e0 00 00 00 f5 18 00 00 00 00 ce 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 0c 00 00 ................................
47a00 00 04 16 00 00 00 00 00 00 04 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 .........................5._....
47a20 5f 00 00 00 61 00 00 00 00 00 00 00 00 00 00 00 60 00 00 00 cf 00 00 00 0c 00 00 00 00 ff ff ff _...a...........`...............
47a40 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd 00 ................................
47b80 00 00 20 00 00 00 00 00 00 00 c9 00 00 00 1a 00 00 00 00 00 00 00 56 00 00 00 27 00 00 00 00 69 ......................V...'....i
47ba0 9d a5 bc 04 01 00 00 00 00 00 f5 18 00 00 00 ce 00 00 00 d0 00 00 01 07 00 00 00 01 00 00 00 0c ................................
47bc0 09 63 68 61 72 20 62 75 66 66 65 72 35 81 f5 18 00 00 00 00 ce 00 00 00 0c 00 00 00 00 00 00 00 .char.buffer5...................
47be0 00 00 00 00 00 00 00 00 02 00 00 00 10 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 ................................
47c00 00 00 00 00 35 81 5f d0 00 00 00 60 00 00 00 62 00 00 00 00 00 00 00 00 00 00 00 61 00 00 00 cf ....5._....`...b...........a....
47c20 00 00 00 0d 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47d60 00 00 00 00 00 00 00 00 00 cd 00 00 00 20 00 00 00 00 00 00 00 c9 00 00 00 1a 00 00 00 00 00 00 ................................
47d80 00 56 00 00 00 27 00 00 00 00 69 9d a5 bc 04 01 00 00 00 00 00 f5 18 00 00 00 ce 00 00 00 d0 00 .V...'....i.....................
47da0 00 01 07 00 00 00 01 00 00 00 0e 09 63 68 61 72 20 62 75 66 66 65 72 5b 5d 35 81 f5 18 00 00 00 ............char.buffer[]5......
47dc0 00 ce 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 11 16 00 00 00 00 00 ................................
47de0 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 61 00 00 00 63 00 00 00 .................5._....a...c...
47e00 00 00 00 00 00 00 00 00 62 00 00 00 cf 00 00 00 11 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 ........b.......................
47e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd 00 00 00 20 00 00 00 00 00 ................................
47f60 00 00 c9 00 00 00 1a 00 00 00 00 00 00 00 56 00 00 00 27 00 00 00 00 69 9d a5 bd 04 01 00 00 00 ..............V...'....i........
47f80 00 00 f5 18 00 00 00 ce 00 00 00 d1 00 00 01 07 00 00 00 01 00 00 00 11 09 63 68 61 72 20 62 75 .........................char.bu
47fa0 66 66 65 72 5b 31 30 30 5d 35 81 f5 18 00 00 00 00 ce 00 00 00 11 00 00 00 00 00 00 00 00 00 00 ffer[100]5......................
47fc0 00 00 00 00 00 01 00 00 00 15 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 ................................
47fe0 00 f5 18 00 00 00 00 ce 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 16 ................................
48000 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 f5 18 00 00 00 00 cf 00 00 ................................
48020 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 18 16 00 00 00 00 00 00 00 00 00 ................................
48040 00 00 00 00 00 05 00 00 00 00 00 00 00 f5 18 00 00 00 00 cf 00 00 00 01 00 00 00 00 00 00 00 05 ................................
48060 00 00 00 00 00 00 00 03 00 00 00 18 16 00 00 00 00 00 00 05 00 00 00 00 00 00 00 03 00 00 00 00 ................................
48080 00 00 00 35 81 5f d0 00 00 00 62 00 00 00 64 00 00 00 00 00 00 00 00 00 00 00 63 00 00 00 d0 00 ...5._....b...d...........c.....
480a0 00 00 04 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
480c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
480e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
481a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
481c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
481e0 00 00 00 00 00 00 00 00 cd 00 00 00 20 00 00 00 00 00 00 00 c9 00 00 00 1a 00 00 00 00 00 00 00 ................................
48200 56 00 00 00 27 00 00 00 00 69 9d a5 c1 04 01 00 00 00 00 00 f5 18 00 00 00 cf 00 00 00 d1 00 00 V...'....i......................
48220 01 08 00 00 00 01 00 00 00 04 09 66 6f 72 35 81 f5 18 00 00 00 00 cf 00 00 00 04 00 00 00 00 00 ...........for5.................
48240 00 00 00 00 00 00 00 00 00 00 02 00 00 00 1b 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 ................................
48260 00 00 00 00 00 00 35 81 5f d0 00 00 00 63 00 00 00 65 00 00 00 00 00 00 00 00 00 00 00 64 00 00 ......5._....c...e...........d..
48280 00 d0 00 00 00 05 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
482a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
482c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
482e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
483a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
483c0 00 00 00 00 00 00 00 00 00 00 00 cd 00 00 00 20 00 00 00 00 00 00 00 c9 00 00 00 1a 00 00 00 00 ................................
483e0 00 00 00 56 00 00 00 27 00 00 00 00 69 9d a5 c1 04 01 00 00 00 00 00 f5 18 00 00 00 cf 00 00 00 ...V...'....i...................
48400 d1 00 00 01 08 00 00 00 01 00 00 00 06 09 66 6f 72 28 29 35 81 f5 18 00 00 00 00 cf 00 00 00 05 ..............for()5............
48420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 1c 16 00 00 00 00 00 00 00 00 00 00 00 ................................
48440 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 64 00 00 00 66 00 00 00 00 00 00 00 00 00 ...........5._....d...f.........
48460 00 00 65 00 00 00 d0 00 00 00 04 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 ..e.............................
48480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
484a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
484c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
484e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
485a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd 00 00 00 20 00 00 00 00 00 00 00 c9 00 00 00 ................................
485c0 1a 00 00 00 00 00 00 00 56 00 00 00 27 00 00 00 00 69 9d a5 c3 04 01 00 00 00 00 00 f5 18 00 00 ........V...'....i..............
485e0 00 cf 00 00 00 d1 00 00 01 08 00 00 00 01 00 00 00 08 09 66 6f 72 28 3b 3b 29 35 81 f5 18 00 00 ...................for(;;)5.....
48600 00 00 cf 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1b 16 00 00 00 00 ................................
48620 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 65 00 00 00 67 00 00 ..................5._....e...g..
48640 00 00 00 00 00 00 00 00 00 66 00 00 00 d0 00 00 00 09 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 .........f......................
48660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
486a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
486c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
486e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd 00 00 00 20 00 00 00 00 ................................
487a0 00 00 00 c9 00 00 00 1a 00 00 00 00 00 00 00 56 00 00 00 27 00 00 00 00 69 9d a5 c3 04 01 00 00 ...............V...'....i.......
487c0 00 00 00 f5 18 00 00 00 cf 00 00 00 d1 00 00 01 08 00 00 00 01 00 00 00 09 09 66 6f 72 20 28 3b ..........................for.(;
487e0 3b 29 35 81 f5 18 00 00 00 00 cf 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 ;)5.............................
48800 00 00 20 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 ................................
48820 cf 00 00 00 0a 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 21 16 00 00 00 00 00 00 ........................!.......
48840 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 66 00 00 00 68 00 00 00 00 ................5._....f...h....
48860 00 00 00 00 00 00 00 67 00 00 00 d0 00 00 00 0a 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 .......g........................
48880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
488a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
488c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
488e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
489a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd 00 00 00 20 00 00 00 00 00 00 ................................
489c0 00 c9 00 00 00 1a 00 00 00 00 00 00 00 56 00 00 00 27 00 00 00 00 69 9d a5 c5 04 01 00 00 00 00 .............V...'....i.........
489e0 00 f5 18 00 00 00 cf 00 00 00 d1 00 00 01 08 00 00 00 01 00 00 00 0a 09 66 6f 72 20 28 3b 3b 29 ........................for.(;;)
48a00 20 35 81 f5 18 00 00 00 00 cf 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 .5..............................
48a20 00 21 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 .!.......................5._....
48a40 67 00 00 00 69 00 00 00 00 00 00 00 00 00 00 00 68 00 00 00 d0 00 00 00 0b 00 00 00 00 ff ff ff g...i...........h...............
48a60 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd 00 ................................
48ba0 00 00 20 00 00 00 00 00 00 00 c9 00 00 00 1a 00 00 00 00 00 00 00 56 00 00 00 27 00 00 00 00 69 ......................V...'....i
48bc0 9d a5 c5 04 01 00 00 00 00 00 f5 18 00 00 00 cf 00 00 00 d2 00 00 01 09 00 00 00 01 00 00 00 0b ................................
48be0 09 66 6f 72 20 28 3b 3b 29 20 7b f5 18 00 00 00 d0 00 00 00 d2 00 00 00 00 00 00 00 01 00 00 00 .for.(;;).{.....................
48c00 02 09 7d f5 18 00 00 00 cf 00 00 00 d2 00 00 01 08 00 00 00 01 00 00 00 0c 09 66 6f 72 20 28 3b ..}.......................for.(;
48c20 3b 29 20 7b 7d 35 81 f5 18 00 00 00 00 cf 00 00 00 0b 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ;).{}5..........................
48c40 00 01 00 00 00 22 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 f5 18 00 ....."..........................
48c60 00 00 00 cf 00 00 00 0b 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 22 16 00 00 00 ..........................."....
48c80 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 f5 18 00 00 00 00 d0 00 00 00 00 00 00 ................................
48ca0 00 00 00 00 00 01 00 00 00 00 00 00 00 05 00 00 00 23 16 00 00 00 00 00 00 01 00 00 00 00 00 00 .................#..............
48cc0 00 05 00 00 00 00 00 00 00 f5 18 00 00 00 00 d0 00 00 00 04 00 00 00 00 00 00 00 01 00 00 00 00 ................................
48ce0 00 00 00 00 00 00 00 27 16 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 .......'........................
48d00 18 00 00 00 00 d0 00 00 00 03 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 11 00 00 00 26 16 00 .............................&..
48d20 00 00 00 00 00 01 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 f5 18 00 00 00 00 d0 00 00 00 13 ................................
48d40 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 36 16 00 00 00 00 00 00 01 00 00 00 00 ...................6............
48d60 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 68 00 00 00 6a 00 00 00 00 00 00 00 00 00 ...........5._....h...j.........
48d80 00 00 69 00 00 00 d1 00 00 00 13 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 ..i.............................
48da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd 00 00 00 20 00 00 00 00 00 00 00 c9 00 00 00 ................................
48ee0 1a 00 00 00 00 00 00 00 56 00 00 00 27 00 00 00 00 69 9d a5 cc 04 01 00 00 00 00 00 f5 18 00 00 ........V...'....i..............
48f00 00 d0 00 00 00 d2 00 00 01 0a 00 00 00 01 00 00 00 13 09 09 74 69 6d 65 5f 74 20 63 6c 69 20 3d ....................time_t.cli.=
48f20 20 74 69 6d 65 35 81 f5 18 00 00 00 00 d0 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .time5..........................
48f40 00 02 00 00 00 36 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f .....6.......................5._
48f60 d0 00 00 00 69 00 00 00 6b 00 00 00 00 00 00 00 00 00 00 00 6a 00 00 00 d1 00 00 00 14 00 00 00 ....i...k...........j...........
48f80 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
490a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
490c0 00 00 cd 00 00 00 20 00 00 00 00 00 00 00 c9 00 00 00 1a 00 00 00 00 00 00 00 56 00 00 00 27 00 ..........................V...'.
490e0 00 00 00 69 9d a5 cc 04 01 00 00 00 00 00 f5 18 00 00 00 d0 00 00 00 d2 00 00 01 0a 00 00 00 01 ...i............................
49100 00 00 00 15 09 09 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 28 29 35 81 f5 18 00 00 00 ......time_t.cli.=.time()5......
49120 00 d0 00 00 00 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 37 16 00 00 00 00 00 .........................7......
49140 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 6a 00 00 00 6c 00 00 00 .................5._....j...l...
49160 00 00 00 00 00 00 00 00 6b 00 00 00 d1 00 00 00 19 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 ........k.......................
49180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
491a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
491c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
491e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
492a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd 00 00 00 20 00 00 00 00 00 ................................
492c0 00 00 c9 00 00 00 1a 00 00 00 00 00 00 00 56 00 00 00 27 00 00 00 00 69 9d a5 ce 04 01 00 00 00 ..............V...'....i........
492e0 00 00 f5 18 00 00 00 d0 00 00 00 d3 00 00 01 0a 00 00 00 01 00 00 00 19 09 09 74 69 6d 65 5f 74 ..........................time_t
49300 20 63 6c 69 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 35 81 f5 18 00 00 00 00 d0 00 00 00 19 00 00 .cli.=.time(NULL)5..............
49320 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 3c 16 00 00 00 00 00 00 00 00 00 00 00 00 00 .................<..............
49340 00 01 00 00 00 00 00 00 00 f5 18 00 00 00 00 d0 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 01 ................................
49360 00 00 00 02 00 00 00 3d 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 .......=........................
49380 18 00 00 00 00 d1 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 40 16 00 .............................@..
493a0 00 00 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 f5 18 00 00 00 00 d1 00 00 00 0b ................................
493c0 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 49 16 00 00 00 00 00 00 02 00 00 00 00 ...................I............
493e0 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 6b 00 00 00 6d 00 00 00 00 00 00 00 00 00 ...........5._....k...m.........
49400 00 00 6c 00 00 00 d2 00 00 00 09 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 ..l.............................
49420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
494a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
494c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
494e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd 00 00 00 20 00 00 00 00 00 00 00 c9 00 00 00 ................................
49560 1a 00 00 00 00 00 00 00 56 00 00 00 27 00 00 00 00 69 9d a5 d4 04 01 00 00 00 00 00 f5 18 00 00 ........V...'....i..............
49580 00 d1 00 00 00 d3 00 00 01 0b 00 00 00 01 00 00 00 0b 09 09 73 74 72 75 63 74 20 2a 74 35 81 f5 ....................struct.*t5..
495a0 18 00 00 00 00 d1 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 47 16 00 .............................G..
495c0 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 6c 00 00 00 .....................5._....l...
495e0 6e 00 00 00 00 00 00 00 00 00 00 00 6d 00 00 00 d2 00 00 00 0e 00 00 00 00 ff ff ff ff 00 01 00 n...........m...................
49600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
496a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
496c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
496e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd 00 00 00 20 00 ................................
49740 00 00 00 00 00 00 c9 00 00 00 1a 00 00 00 00 00 00 00 56 00 00 00 27 00 00 00 00 69 9d a5 d5 04 ..................V...'....i....
49760 01 00 00 00 00 00 f5 18 00 00 00 d1 00 00 00 d3 00 00 01 0b 00 00 00 01 00 00 00 0e 09 09 73 74 ..............................st
49780 72 75 63 74 20 74 6d 20 2a 74 35 81 f5 18 00 00 00 00 d1 00 00 00 0e 00 00 00 00 00 00 00 00 00 ruct.tm.*t5.....................
497a0 00 00 00 00 00 00 0c 00 00 00 4c 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 00 00 ..........L.....................
497c0 00 00 35 81 5f d0 00 00 00 6d 00 00 00 6f 00 00 00 00 00 00 00 00 00 00 00 6e 00 00 00 d2 00 00 ..5._....m...o...........n......
497e0 00 1a 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
498a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
498c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
498e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49920 00 00 00 00 00 00 00 cd 00 00 00 20 00 00 00 00 00 00 00 c9 00 00 00 1a 00 00 00 00 00 00 00 56 ...............................V
49940 00 00 00 27 00 00 00 00 69 9d a5 d8 04 01 00 00 00 00 00 f5 18 00 00 00 d1 00 00 00 d3 00 00 01 ...'....i.......................
49960 0b 00 00 00 01 00 00 00 1a 09 09 73 74 72 75 63 74 20 74 6d 20 2a 74 20 3d 20 6c 6f 63 61 6c 74 ...........struct.tm.*t.=.localt
49980 69 6d 65 35 81 f5 18 00 00 00 00 d1 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 ime5............................
499a0 00 00 00 58 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 ...X.......................5._..
499c0 00 00 6e 00 00 00 70 00 00 00 00 00 00 00 00 00 00 00 6f 00 00 00 d2 00 00 00 1b 00 00 00 00 ff ..n...p...........o.............
499e0 ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49b20 cd 00 00 00 20 00 00 00 00 00 00 00 c9 00 00 00 1a 00 00 00 00 00 00 00 56 00 00 00 27 00 00 00 ........................V...'...
49b40 00 69 9d a5 d9 04 01 00 00 00 00 00 f5 18 00 00 00 d1 00 00 00 d3 00 00 01 0b 00 00 00 01 00 00 .i..............................
49b60 00 1c 09 09 73 74 72 75 63 74 20 74 6d 20 2a 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 29 35 81 ....struct.tm.*t.=.localtime()5.
49b80 f5 18 00 00 00 00 d1 00 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 59 16 ..............................Y.
49ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 6f 00 00 ......................5._....o..
49bc0 00 71 00 00 00 00 00 00 00 00 00 00 00 70 00 00 00 d2 00 00 00 20 00 00 00 00 ff ff ff ff 00 01 .q...........p..................
49be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd 00 00 00 20 ................................
49d20 00 00 00 00 00 00 00 c9 00 00 00 1a 00 00 00 00 00 00 00 56 00 00 00 27 00 00 00 00 69 9d a5 da ...................V...'....i...
49d40 04 01 00 00 00 00 00 f5 18 00 00 00 d2 00 00 00 d4 00 00 01 0c 00 00 00 01 00 00 00 0a 09 09 73 ...............................s
49d60 74 72 66 74 69 6d 65 f5 18 00 00 00 d1 00 00 00 d4 00 00 01 0b 00 00 00 01 00 00 00 20 09 09 73 trftime........................s
49d80 74 72 75 63 74 20 74 6d 20 2a 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 35 81 f5 truct.tm.*t.=.localtime(&cli)5..
49da0 18 00 00 00 00 d1 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 5e 16 00 .............................^..
49dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 f5 18 00 00 00 00 d1 00 00 00 21 ...............................!
49de0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 5f 16 00 00 00 00 00 00 00 00 00 00 00 ..................._............
49e00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 d2 00 00 00 02 00 00 00 00 00 00 00 00 00 00 ................................
49e20 00 00 00 00 00 07 00 00 00 62 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 .........b......................
49e40 00 f5 18 00 00 00 00 d2 00 00 00 02 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 08 00 00 00 62 ...............................b
49e60 16 00 00 00 00 00 00 07 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 f5 18 00 00 00 00 d2 00 00 ................................
49e80 00 02 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 03 00 00 00 62 16 00 00 00 00 00 00 08 00 00 .....................b..........
49ea0 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 d2 00 00 00 02 00 00 00 00 00 00 00 03 ................................
49ec0 00 00 00 00 00 00 00 18 00 00 00 62 16 00 00 00 00 00 00 03 00 00 00 00 00 00 00 18 00 00 00 00 ...........b....................
49ee0 00 00 00 35 81 5f d0 00 00 00 70 00 00 00 72 00 00 00 00 00 00 00 00 00 00 00 71 00 00 00 d3 00 ...5._....p...r...........q.....
49f00 00 00 19 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a040 00 00 00 00 00 00 00 00 cd 00 00 00 20 00 00 00 00 00 00 00 c9 00 00 00 1a 00 00 00 00 00 00 00 ................................
4a060 56 00 00 00 27 00 00 00 00 69 9d a5 e2 04 01 00 00 00 00 00 f5 18 00 00 00 d2 00 00 00 d4 00 00 V...'....i......................
4a080 01 0c 00 00 00 01 00 00 00 1a 09 09 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a ............strftime(buffer,.siz
4a0a0 65 6f 66 29 35 81 f5 18 00 00 00 00 d2 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 eof)5...........................
4a0c0 02 00 00 00 79 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 ....y.......................5._.
4a0e0 00 00 00 71 00 00 00 73 00 00 00 00 00 00 00 00 00 00 00 72 00 00 00 d3 00 00 00 1a 00 00 00 00 ...q...s...........r............
4a100 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a240 00 cd 00 00 00 20 00 00 00 00 00 00 00 c9 00 00 00 1a 00 00 00 00 00 00 00 56 00 00 00 27 00 00 .........................V...'..
4a260 00 00 69 9d a5 e2 04 01 00 00 00 00 00 f5 18 00 00 00 d2 00 00 00 d4 00 00 01 0c 00 00 00 01 00 ..i.............................
4a280 00 00 1c 09 09 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 29 29 35 .....strftime(buffer,.sizeof())5
4a2a0 81 f5 18 00 00 00 00 d2 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 7a ...............................z
4a2c0 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 72 00 .......................5._....r.
4a2e0 00 00 74 00 00 00 00 00 00 00 00 00 00 00 73 00 00 00 d3 00 00 00 21 00 00 00 00 ff ff ff ff 00 ..t...........s.......!.........
4a300 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd 00 00 00 ................................
4a440 20 00 00 00 00 00 00 00 c9 00 00 00 1a 00 00 00 00 00 00 00 56 00 00 00 27 00 00 00 00 69 9d a5 ....................V...'....i..
4a460 e5 04 01 00 00 00 00 00 f5 18 00 00 00 d2 00 00 00 d4 00 00 01 0c 00 00 00 01 00 00 00 22 09 09 ............................."..
4a480 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 29 strftime(buffer,.sizeof(buffer))
4a4a0 35 81 f5 18 00 00 00 00 d2 00 00 00 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 5...........!...................
4a4c0 81 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 73 ........................5._....s
4a4e0 00 00 00 75 00 00 00 00 00 00 00 00 00 00 00 74 00 00 00 d3 00 00 00 22 00 00 00 00 ff ff ff ff ...u...........t......."........
4a500 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cc 00 00 ................................
4a640 00 23 00 00 00 00 00 00 00 cc 00 00 00 38 00 00 00 00 00 00 00 76 00 00 00 38 00 00 00 00 69 9d .#...........8.......v...8....i.
4a660 a5 ec 04 01 00 00 00 00 00 f5 18 00 00 00 d2 00 00 00 d4 00 00 01 0c 00 00 00 01 00 00 00 24 09 ..............................$.
4a680 09 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 .strftime(buffer,.sizeof(buffer)
4a6a0 2c 20 29 f5 18 00 00 00 d3 00 00 00 d4 00 00 01 0c 00 00 00 00 35 81 f5 18 00 00 00 00 d2 00 00 ,.)..................5..........
4a6c0 00 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16 00 00 00 83 16 00 00 00 00 00 00 00 00 00 .#..............................
4a6e0 00 00 00 00 00 16 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 74 00 00 00 76 00 00 00 00 00 00 00 .............5._....t...v.......
4a700 00 00 00 00 75 00 00 00 d3 00 00 00 39 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 ....u.......9...................
4a720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cc 00 00 00 23 00 00 00 00 00 00 00 cc 00 ......................#.........
4a860 00 00 38 00 00 00 00 00 00 00 76 00 00 00 38 00 00 00 00 69 9d a5 ee 04 01 00 00 00 00 00 f5 18 ..8.......v...8....i............
4a880 00 00 00 d2 00 00 00 d4 00 00 01 0c 00 00 00 01 00 00 00 3a 09 09 73 74 72 66 74 69 6d 65 28 62 ...................:..strftime(b
4a8a0 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 uffer,.sizeof(buffer),."%d-%m-%Y
4a8c0 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 29 35 81 f5 18 00 00 00 00 d2 00 00 00 39 00 00 00 00 00 .%I:%M:%S.%p")5...........9.....
4a8e0 00 00 00 00 00 00 00 00 00 00 03 00 00 00 99 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 ................................
4a900 00 00 00 00 00 00 35 81 5f d0 00 00 00 75 00 00 00 77 00 00 00 00 00 00 00 00 00 00 00 76 00 00 ......5._....u...w...........v..
4a920 00 d3 00 00 00 3d 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .....=..........................
4a940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4aa00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4aa20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4aa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4aa60 00 00 00 00 00 00 00 00 00 00 00 cc 00 00 00 23 00 00 00 00 00 00 00 cc 00 00 00 38 00 00 00 00 ...............#...........8....
4aa80 00 00 00 76 00 00 00 38 00 00 00 00 69 9d a5 f2 04 01 00 00 00 00 00 f5 18 00 00 00 d2 00 00 00 ...v...8....i...................
4aaa0 d5 00 00 01 0c 00 00 00 01 00 00 00 3d 09 09 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 ............=..strftime(buffer,.
4aac0 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a sizeof(buffer),."%d-%m-%Y.%I:%M:
4aae0 25 53 20 25 70 22 2c 20 74 29 35 81 f5 18 00 00 00 00 d2 00 00 00 3d 00 00 00 00 00 00 00 00 00 %S.%p",.t)5...........=.........
4ab00 00 00 00 00 00 00 01 00 00 00 9d 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 ................................
4ab20 00 00 f5 18 00 00 00 00 d2 00 00 00 3e 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 ............>...................
4ab40 9e 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 d3 00 ................................
4ab60 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 a1 16 00 00 00 00 00 00 00 00 ................................
4ab80 00 00 00 00 00 00 06 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 76 00 00 00 78 00 00 00 00 00 00 ..............5._....v...x......
4aba0 00 00 00 00 00 77 00 00 00 d4 00 00 00 08 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 .....w..........................
4abc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4abe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ac00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ac20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ac40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ac60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ac80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4aca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4acc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ace0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cc 00 00 00 23 00 00 00 00 00 00 00 cc .......................#........
4ad00 00 00 00 38 00 00 00 00 00 00 00 76 00 00 00 38 00 00 00 00 69 9d a5 f4 04 01 00 00 00 00 00 f5 ...8.......v...8....i...........
4ad20 18 00 00 00 d3 00 00 00 d5 00 00 01 0d 00 00 00 01 00 00 00 08 09 09 70 72 69 6e 74 66 35 81 f5 .......................printf5..
4ad40 18 00 00 00 00 d3 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 a7 16 00 ................................
4ad60 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 77 00 00 00 .....................5._....w...
4ad80 79 00 00 00 00 00 00 00 00 00 00 00 78 00 00 00 d4 00 00 00 09 00 00 00 00 ff ff ff ff 00 01 00 y...........x...................
4ada0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4adc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ade0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ae00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ae20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ae40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ae60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ae80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4aea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4aec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cc 00 00 00 23 00 ..............................#.
4aee0 00 00 00 00 00 00 cc 00 00 00 38 00 00 00 00 00 00 00 76 00 00 00 38 00 00 00 00 69 9d a5 f5 04 ..........8.......v...8....i....
4af00 01 00 00 00 00 00 f5 18 00 00 00 d3 00 00 00 d5 00 00 01 0d 00 00 00 01 00 00 00 0a 09 09 70 72 ..............................pr
4af20 69 6e 74 66 28 29 35 81 f5 18 00 00 00 00 d3 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 intf()5.........................
4af40 00 00 02 00 00 00 a8 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 ..............................5.
4af60 5f d0 00 00 00 78 00 00 00 7a 00 00 00 00 00 00 00 00 00 00 00 79 00 00 00 d4 00 00 00 0a 00 00 _....x...z...........y..........
4af80 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4afa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4afc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4afe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b0c0 00 00 00 cc 00 00 00 23 00 00 00 00 00 00 00 cc 00 00 00 38 00 00 00 00 00 00 00 76 00 00 00 38 .......#...........8.......v...8
4b0e0 00 00 00 00 69 9d a5 f5 04 01 00 00 00 00 00 f5 18 00 00 00 d3 00 00 00 d5 00 00 01 0d 00 00 00 ....i...........................
4b100 01 00 00 00 0c 09 09 70 72 69 6e 74 66 28 22 22 29 35 81 f5 18 00 00 00 00 d3 00 00 00 0a 00 00 .......printf("")5..............
4b120 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 a9 16 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b140 00 02 00 00 00 00 00 00 00 f5 18 00 00 00 00 d3 00 00 00 0b 00 00 00 00 00 00 00 01 00 00 00 00 ................................
4b160 00 00 00 0b 00 00 00 aa 16 00 00 00 00 00 00 01 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 35 ...............................5
4b180 81 5f d0 00 00 00 79 00 00 00 7b 00 00 00 00 00 00 00 00 00 00 00 7a 00 00 00 d4 00 00 00 17 00 ._....y...{...........z.........
4b1a0 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b2e0 00 00 00 00 cc 00 00 00 23 00 00 00 00 00 00 00 cc 00 00 00 38 00 00 00 00 00 00 00 76 00 00 00 ........#...........8.......v...
4b300 38 00 00 00 00 69 9d a5 fb 04 01 00 00 00 00 00 f5 18 00 00 00 d3 00 00 00 d5 00 00 01 0d 00 00 8....i..........................
4b320 00 01 00 00 00 18 09 09 70 72 69 6e 74 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 73 22 29 35 81 ........printf("\rTime.is.%s")5.
4b340 f5 18 00 00 00 00 d3 00 00 00 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 b6 16 ................................
4b360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 f5 18 00 00 00 00 d3 00 00 00 ................................
4b380 17 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 b6 16 00 00 00 00 00 00 01 00 00 00 ................................
4b3a0 00 00 00 00 02 00 00 00 00 00 00 00 f5 18 00 00 00 00 d3 00 00 00 17 00 00 00 00 00 00 00 02 00 ................................
4b3c0 00 00 00 00 00 00 08 00 00 00 b6 16 00 00 00 00 00 00 02 00 00 00 00 00 00 00 08 00 00 00 00 00 ................................
4b3e0 00 00 35 81 5f d0 00 00 00 7a 00 00 00 7c 00 00 00 00 00 00 00 00 00 00 00 7b 00 00 00 d4 00 00 ..5._....z...|...........{......
4b400 00 20 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b540 00 00 00 00 00 00 00 cc 00 00 00 23 00 00 00 00 00 00 00 cc 00 00 00 38 00 00 00 00 00 00 00 76 ...........#...........8.......v
4b560 00 00 00 38 00 00 00 00 69 9d a6 01 04 01 00 00 00 00 00 f5 18 00 00 00 d3 00 00 00 d6 00 00 01 ...8....i.......................
4b580 0d 00 00 00 01 00 00 00 20 09 09 70 72 69 6e 74 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 73 22 ...........printf("\rTime.is.%s"
4b5a0 2c 20 62 75 66 66 65 72 29 35 81 f5 18 00 00 00 00 d3 00 00 00 20 00 00 00 00 00 00 00 00 00 00 ,.buffer)5......................
4b5c0 00 00 00 00 00 01 00 00 00 bf 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 ................................
4b5e0 00 f5 18 00 00 00 00 d3 00 00 00 21 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 c0 ...........!....................
4b600 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 d4 00 00 ................................
4b620 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 c3 16 00 00 00 00 00 00 00 00 00 ................................
4b640 00 00 00 00 00 06 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 7b 00 00 00 7d 00 00 00 00 00 00 00 .............5._....{...}.......
4b660 00 00 00 00 7c 00 00 00 d5 00 00 00 08 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 ....|...........................
4b680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cc 00 00 00 23 00 00 00 00 00 00 00 cc 00 ......................#.........
4b7c0 00 00 38 00 00 00 00 00 00 00 76 00 00 00 38 00 00 00 00 69 9d a6 03 04 01 00 00 00 00 00 f5 18 ..8.......v...8....i............
4b7e0 00 00 00 d4 00 00 00 d6 00 00 01 0e 00 00 00 01 00 00 00 08 09 09 66 66 6c 75 73 68 35 81 f5 18 ......................fflush5...
4b800 00 00 00 00 d4 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 c9 16 00 00 ................................
4b820 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 7c 00 00 00 7e ....................5._....|...~
4b840 00 00 00 00 00 00 00 00 00 00 00 7d 00 00 00 d5 00 00 00 09 00 00 00 00 ff ff ff ff 00 01 00 00 ...........}....................
4b860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cc 00 00 00 23 00 00 .............................#..
4b9a0 00 00 00 00 00 cc 00 00 00 38 00 00 00 00 00 00 00 76 00 00 00 38 00 00 00 00 69 9d a6 04 04 01 .........8.......v...8....i.....
4b9c0 00 00 00 00 00 f5 18 00 00 00 d4 00 00 00 d6 00 00 01 0e 00 00 00 01 00 00 00 0a 09 09 66 66 6c .............................ffl
4b9e0 75 73 68 28 29 35 81 f5 18 00 00 00 00 d4 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ush()5..........................
4ba00 00 06 00 00 00 ca 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 35 81 5f .............................5._
4ba20 d0 00 00 00 7d 00 00 00 7f 00 00 00 00 00 00 00 00 00 00 00 7e 00 00 00 d5 00 00 00 10 00 00 00 ....}...............~...........
4ba40 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ba60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ba80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4baa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bb80 00 00 cc 00 00 00 23 00 00 00 00 00 00 00 cc 00 00 00 38 00 00 00 00 00 00 00 76 00 00 00 38 00 ......#...........8.......v...8.
4bba0 00 00 00 69 9d a6 06 04 01 00 00 00 00 00 f5 18 00 00 00 d4 00 00 00 d7 00 00 01 0e 00 00 00 01 ...i............................
4bbc0 00 00 00 10 09 09 66 66 6c 75 73 68 28 73 74 64 6f 75 74 29 35 81 f5 18 00 00 00 00 d4 00 00 00 ......fflush(stdout)5...........
4bbe0 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 d1 16 00 00 00 00 00 00 00 00 00 00 ................................
4bc00 00 00 00 00 01 00 00 00 00 00 00 00 f5 18 00 00 00 00 d4 00 00 00 10 00 00 00 00 00 00 00 01 00 ................................
4bc20 00 00 00 00 00 00 01 00 00 00 d1 16 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 ................................
4bc40 00 00 f5 18 00 00 00 00 d4 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 ................................
4bc60 d2 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 d5 00 ................................
4bc80 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 d5 16 00 00 00 00 00 00 00 00 ................................
4bca0 00 00 00 00 00 00 05 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 7e 00 00 00 80 00 00 00 00 00 00 ..............5._....~..........
4bcc0 00 00 00 00 00 7f 00 00 00 d6 00 00 00 07 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 ................................
4bce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4be00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cc 00 00 00 23 00 00 00 00 00 00 00 cc .......................#........
4be20 00 00 00 38 00 00 00 00 00 00 00 76 00 00 00 38 00 00 00 00 69 9d a6 09 04 01 00 00 00 00 00 f5 ...8.......v...8....i...........
4be40 18 00 00 00 d5 00 00 00 d7 00 00 01 0f 00 00 00 01 00 00 00 07 09 09 73 6c 65 65 70 35 81 f5 18 .......................sleep5...
4be60 00 00 00 00 d5 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 da 16 00 00 ................................
4be80 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 7f 00 00 00 81 ....................5._.........
4bea0 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 d6 00 00 00 08 00 00 00 00 ff ff ff ff 00 01 00 00 ................................
4bec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bf00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bf20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bf60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bf80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cc 00 00 00 23 00 00 .............................#..
4c000 00 00 00 00 00 cc 00 00 00 38 00 00 00 00 00 00 00 76 00 00 00 38 00 00 00 00 69 9d a6 09 04 01 .........8.......v...8....i.....
4c020 00 00 00 00 00 f5 18 00 00 00 d5 00 00 00 d7 00 00 01 0f 00 00 00 01 00 00 00 09 09 09 73 6c 65 .............................sle
4c040 65 70 28 29 35 81 f5 18 00 00 00 00 d5 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ep()5...........................
4c060 01 00 00 00 db 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 ............................5._.
4c080 00 00 00 80 00 00 00 82 00 00 00 00 00 00 00 00 00 00 00 81 00 00 00 d6 00 00 00 0a 00 00 00 00 ................................
4c0a0 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c1e0 00 cc 00 00 00 23 00 00 00 00 00 00 00 cc 00 00 00 38 00 00 00 00 00 00 00 76 00 00 00 38 00 00 .....#...........8.......v...8..
4c200 00 00 69 9d a6 0a 04 01 00 00 00 00 00 f5 18 00 00 00 d5 00 00 00 d7 00 00 01 0f 00 00 00 01 00 ..i.............................
4c220 00 00 0a 09 09 73 6c 65 65 70 28 31 29 35 81 f5 18 00 00 00 00 d5 00 00 00 0a 00 00 00 00 00 00 .....sleep(1)5..................
4c240 00 00 00 00 00 00 00 00 00 01 00 00 00 dd 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ................................
4c260 00 00 00 00 00 35 81 5f d0 00 00 00 81 00 00 00 83 00 00 00 00 00 00 00 00 00 00 00 82 00 00 00 .....5._........................
4c280 d6 00 00 00 0a 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c3c0 00 00 00 00 00 00 00 00 00 00 cc 00 00 00 23 00 00 00 00 00 00 00 cc 00 00 00 38 00 00 00 00 00 ..............#...........8.....
4c3e0 00 00 76 00 00 00 38 00 00 00 00 69 9d a6 0b 04 01 00 00 00 1d 00 f5 18 00 00 00 ce 00 00 00 d8 ..v...8....i....................
4c400 00 00 01 0f 00 00 00 09 00 00 00 12 09 63 68 61 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 .............char.buffer[100];..
4c420 00 0b 09 66 6f 72 20 28 3b 3b 29 20 7b 00 00 00 1a 09 09 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 ...for.(;;).{......time_t.cli.=.
4c440 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 21 09 09 73 74 72 75 63 74 20 74 6d 20 2a 74 20 3d 20 time(NULL);...!..struct.tm.*t.=.
4c460 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 3b 00 00 00 3e 09 09 73 74 72 66 74 69 6d 65 28 62 localtime(&cli);...>..strftime(b
4c480 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 uffer,.sizeof(buffer),."%d-%m-%Y
4c4a0 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c 20 74 29 3b 00 00 00 21 09 09 70 72 69 6e 74 66 28 22 .%I:%M:%S.%p",.t);...!..printf("
4c4c0 5c 72 54 69 6d 65 20 69 73 20 25 73 22 2c 20 62 75 66 66 65 72 29 3b 00 00 00 11 09 09 66 66 6c \rTime.is.%s",.buffer);......ffl
4c4e0 75 73 68 28 73 74 64 6f 75 74 29 3b 00 00 00 0b 09 09 73 6c 65 65 70 28 31 29 3b 00 00 00 02 09 ush(stdout);......sleep(1);.....
4c500 7d 35 81 f5 18 00 00 00 00 ce 00 00 00 00 00 00 00 08 00 00 00 01 00 00 00 08 00 00 00 02 00 00 }5..............................
4c520 00 04 16 00 00 00 00 00 00 dc 00 00 00 00 00 00 00 eb 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 .........................5._....
4c540 82 00 00 00 84 00 00 00 00 00 00 00 00 00 00 00 83 00 00 00 c9 00 00 00 0a 00 00 00 00 ff ff ff ................................
4c560 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ce 00 ................................
4c6a0 00 00 00 00 00 00 00 00 00 00 c9 00 00 00 0a 00 00 00 00 00 00 00 56 00 00 00 0a 00 00 00 00 69 ......................V........i
4c6c0 9d a6 0f 04 01 00 00 00 1f 00 f5 18 00 00 00 c8 00 00 00 c9 00 00 00 00 00 00 00 06 00 00 00 1a ................................
4c6e0 20 20 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 21 20 20 ..time_t.cli.=.time(NULL);...!..
4c700 73 74 72 75 63 74 20 74 6d 20 2a 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 3b 00 struct.tm.*t.=.localtime(&cli);.
4c720 00 00 13 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 3e 20 20 73 74 72 66 .....char.buffer[100];...>..strf
4c740 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 time(buffer,.sizeof(buffer),."%d
4c760 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c 20 74 29 3b 00 00 00 21 20 20 70 72 -%m-%Y.%I:%M:%S.%p",.t);...!..pr
4c780 69 6e 74 66 28 22 54 69 6d 65 20 69 73 20 25 73 5c 6e 22 2c 20 62 75 66 66 65 72 29 3b 00 00 00 intf("Time.is.%s\n",.buffer);...
4c7a0 00 35 81 f5 18 00 00 00 00 c8 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .5..............................
4c7c0 00 51 15 00 00 00 00 00 00 b3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 .Q.......................5._....
4c7e0 83 00 00 00 85 00 00 00 00 00 00 00 00 00 00 00 84 00 00 00 ce 00 00 00 18 00 00 00 00 ff ff ff ................................
4c800 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ce 00 ................................
4c940 00 00 17 00 00 00 00 00 00 00 ce 00 00 00 17 00 00 00 00 00 00 00 76 00 00 00 17 00 00 00 00 69 ......................v........i
4c960 9d a6 1f 04 01 00 00 00 00 00 f5 18 00 00 00 cd 00 00 00 cf 00 00 01 09 00 00 00 01 00 00 00 23 ...............................#
4c980 20 20 20 20 70 72 69 6e 74 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 73 22 2c 20 62 75 66 66 65 ....printf("\rTime.is.%s",.buffe
4c9a0 72 29 3b 35 81 f5 18 00 00 00 00 cd 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 r);5............................
4c9c0 00 00 00 0c 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 f5 18 00 00 00 ................................
4c9e0 00 cd 00 00 00 19 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 0d 16 00 00 00 00 00 ................................
4ca00 00 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 84 00 00 00 86 00 00 00 .................5._............
4ca20 00 00 00 00 00 00 00 00 85 00 00 00 ce 00 00 00 19 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 ................................
4ca40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ca60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ca80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4caa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ce 00 00 00 17 00 00 00 00 00 ................................
4cb80 00 00 ce 00 00 00 17 00 00 00 00 00 00 00 76 00 00 00 17 00 00 00 00 69 9d a6 21 04 01 00 00 00 ..............v........i..!.....
4cba0 21 00 f5 18 00 00 00 cd 00 00 00 cf 00 00 01 09 00 00 00 01 00 00 00 26 20 20 20 20 70 72 69 6e !......................&....prin
4cbc0 74 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 73 5c 6c 6e 22 2c 20 62 75 66 66 65 72 29 3b 35 81 tf("\rTime.is.%s\ln",.buffer);5.
4cbe0 f5 18 00 00 00 00 cd 00 00 00 19 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 0d 16 ................................
4cc00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 85 00 00 ......................5._.......
4cc20 00 87 00 00 00 00 00 00 00 00 00 00 00 86 00 00 00 d2 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 ................................
4cc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cc60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cc80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ccc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a6 3a ............................i..:
4cda0 04 01 00 00 00 00 00 f5 18 00 00 00 d1 00 00 00 d2 00 00 00 00 00 00 00 01 00 00 00 00 35 81 f5 .............................5..
4cdc0 18 00 00 00 00 d1 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 16 00 .............................@..
4cde0 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 86 00 00 00 .....................5._........
4ce00 88 00 00 00 00 00 00 00 00 00 00 00 87 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 ................................
4ce20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ce40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ce60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ce80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cf00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cf20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 12 00 ................................
4cf60 00 00 00 00 00 01 08 00 00 00 01 00 00 00 00 00 00 00 56 00 00 00 12 00 00 00 00 69 9d a6 83 04 ..................V........i....
4cf80 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 08 00 00 00 1f 23 64 65 66 ............................#def
4cfa0 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 00 26 23 ine._POSIX_C_SOURCE.200809L...&#
4cfc0 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 include."xdg-shell-client-protoc
4cfe0 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 ol.h"....#include.<fcntl.h>....#
4d000 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f include.<math.h>....#include.<po
4d020 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 ll.h>....#include.<signal.h>....
4d040 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 #include.<stdbool.h>....#include
4d060 20 3c 73 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 .<stdint.h>....#include.<stdio.h
4d080 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 >....#include.<stdlib.h>....#inc
4d0a0 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 lude.<string.h>....#include.<sys
4d0c0 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 /mman.h>....#include.<sys/timerf
4d0e0 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e d.h>....#include.<time.h>....#in
4d100 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 clude.<unistd.h>....#include.<wa
4d120 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d yland-client.h>........#ifndef.M
4d140 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 _PI...##define.M_PI.3.1415926535
4d160 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 8979323846....#endif....#ifndef.
4d180 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 M_PI_2...%#define.M_PI_2.1.57079
4d1a0 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 632679489661923....#endif.......
4d1c0 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 )static.volatile.sig_atomic_t.ru
4d1e0 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 nning.=.1;....static.void.on_sig
4d200 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e (int.s).{......(void)s;......run
4d220 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 ning.=.0;....}........struct.app
4d240 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 .{......struct.wl_display.*d;...
4d260 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 ...struct.wl_registry.*reg;.....
4d280 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 .struct.wl_compositor.*comp;....
4d2a0 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 ..struct.wl_shm.*shm;......struc
4d2c0 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 t.xdg_wm_base.*wm;......struct.w
4d2e0 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 l_surface.*ws;......struct.xdg_s
4d300 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c urface.*xs;......struct.xdg_topl
4d320 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 evel.*xt;......void.*pixels;....
4d340 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e ..struct.wl_buffer.*buf;......in
4d360 74 20 77 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 00 12 20 20 62 6f t.w,.h;......int.bw,.bh;......bo
4d380 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b ol.configured;......bool.redraw;
4d3a0 00 00 00 02 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e ....};.......Jstatic.void.wm_pin
4d3c0 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 g(void.*data,.struct.xdg_wm_base
4d3e0 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 .*wm,.uint32_t.serial).{......xd
4d400 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d g_wm_base_pong(wm,.serial);....}
4d420 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 .......$static.int.create_shm(si
4d440 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 ze_t.size).{...#..char.t[].=."/t
4d460 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 mp/wlclock-XXXXXX";......int.fd.
4d480 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 =.mkstemp(t);......if.(fd.<.0)..
4d4a0 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 ......exit(1);......unlink(t);..
4d4c0 00 1e 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 ....if.(ftruncate(fd,.size).<.0)
4d4e0 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b ........exit(1);......return.fd;
4d500 00 00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 ....}.......(static.void.destroy
4d520 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 _buf(struct.app.*a).{......if.(!
4d540 61 2d 3e 62 75 66 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 a->buf)........return;...*..size
4d560 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 _t.size.=.(size_t)a->bw.*.a->bh.
4d580 2a 20 34 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 *.4;......wl_buffer_destroy(a->b
4d5a0 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 uf);......munmap(a->pixels,.size
4d5c0 29 3b 00 00 00 10 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 20 20 61 2d 3e 70 );......a->buf.=.NULL;......a->p
4d5e0 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 ixels.=.NULL;....}.......&static
4d600 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b .void.alloc_buf(struct.app.*a).{
4d620 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f ......destroy_buf(a);...(..size_
4d640 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 t.size.=.(size_t)a->w.*.a->h.*.4
4d660 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 ;......int.fd.=.create_shm(size)
4d680 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 ;...J..a->pixels.=.mmap(NULL,.si
4d6a0 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f ze,.PROT_READ.|.PROT_WRITE,.MAP_
4d6c0 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1e 20 20 69 66 20 28 61 2d 3e 70 69 78 65 SHARED,.fd,.0);......if.(a->pixe
4d6e0 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 ls.==.MAP_FAILED)........exit(1)
4d700 3b 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 ;...B..struct.wl_shm_pool.*pool.
4d720 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c =.wl_shm_create_pool(a->shm,.fd,
4d740 20 73 69 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f .size);...C..a->buf.=.wl_shm_poo
4d760 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 l_create_buffer(pool,.0,.a->w,.a
4d780 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ->h,.a->w.*.4,...=..............
4d7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f .......................WL_SHM_FO
4d7c0 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c RMAT_ARGB8888);......wl_shm_pool
4d7e0 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 _destroy(pool);......close(fd);.
4d800 00 00 0f 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b 00 00 00 0f 20 20 61 2d 3e 62 68 20 3d 20 .....a->bw.=.a->w;......a->bh.=.
4d820 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4c 73 74 61 74 69 63 20 76 6f 69 64 20 6c 69 a->h;....}.......Lstatic.void.li
4d840 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 ne(uint32_t.*px,.int.w,.int.h,.i
4d860 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 nt.x0,.int.y0,.int.x1,.int.y1,..
4d880 00 1e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b ...................uint32_t.c).{
4d8a0 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 .../..int.dx.=.abs(x1.-.x0),.sx.
4d8c0 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 =.x0.<.x1.?.1.:.-1;...0..int.dy.
4d8e0 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 =.-abs(y1.-.y0),.sy.=.y0.<.y1.?.
4d900 31 20 3a 20 2d 31 3b 00 00 00 14 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 3b 00 1.:.-1;......int.err.=.dx.+.dy;.
4d920 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e .....while.(1).{.../....if.(x0.>
4d940 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c =.0.&&.x0.<.w.&&.y0.>=.0.&&.y0.<
4d960 20 68 29 00 00 00 1a 20 20 20 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 .h)..........px[y0.*.w.+.x0].=.c
4d980 3b 00 00 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 ;........if.(x0.==.x1.&&.y0.==.y
4d9a0 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 15 20 20 20 20 69 6e 74 20 65 32 1)..........break;........int.e2
4d9c0 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 .=.2.*.err;........if.(e2.>=.dy)
4d9e0 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 .{..........err.+=.dy;..........
4da00 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 x0.+=.sx;........}........if.(e2
4da20 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 .<=.dx).{..........err.+=.dx;...
4da40 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d .......y0.+=.sy;........}......}
4da60 00 00 00 01 7d 00 00 00 00 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 ....}.......Estatic.void.circle(
4da80 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 uint32_t.*px,.int.w,.int.h,.int.
4daa0 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 20 20 20 20 20 20 20 20 20 20 20 cx,.int.cy,.int.r,..............
4dac0 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 .........uint32_t.c).{..."..int.
4dae0 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 x.=.0,.y.=.r,.d.=.3.-.2.*.r;....
4db00 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b ..while.(y.>=.x).{...H....int.p[
4db20 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 8][2].=.{{cx.+.x,.cy.+.y},.{cx.-
4db40 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 .x,.cy.+.y},.{cx.+.x,.cy.-.y},..
4db60 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 .H...................{cx.-.x,.cy
4db80 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 .-.y},.{cx.+.y,.cy.+.x},.{cx.-.y
4dba0 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.cy.+.x},...7..................
4dbc0 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d .{cx.+.y,.cy.-.x},.{cx.-.y,.cy.-
4dbe0 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c .x}};........for.(int.i.=.0;.i.<
4dc00 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d .8;.i++)...E......if.(p[i][0].>=
4dc20 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 .0.&&.p[i][0].<.w.&&.p[i][1].>=.
4dc40 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 0.&&.p[i][1].<.h)...&........px[
4dc60 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 p[i][1].*.w.+.p[i][0]].=.c;.....
4dc80 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 20 ...if.(d.>.0).{..........d.+=.4.
4dca0 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 *.(x.-.y).+.10;..........y--;...
4dcc0 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 .....}.else..........d.+=.4.*.x.
4dce0 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 +.6;........x++;......}....}....
4dd00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 ...#static.void.render(struct.ap
4dd20 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 p.*a).{.../..if.(!a->configured.
4dd40 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 ||.a->w.<=.0.||.a->h.<=.0)......
4dd60 20 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 ..return;......if.(!a->buf).....
4dd80 20 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a ...alloc_buf(a);......uint32_t.*
4dda0 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 px.=.a->pixels;...$..memset(px,.
4ddc0 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 0xFF,.a->w.*.a->h.*.4);......tim
4dde0 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 e_t.tt.=.time(NULL);......struct
4de00 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 .tm.tmv;......localtime_r(&tt,.&
4de20 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 tmv);...#..int.cx.=.a->w./.2,.cy
4de40 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 .=.a->h./.2;.../..int.r.=.(a->w.
4de60 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 <.a->h.?.a->w.:.a->h)./.2.-.10;.
4de80 00 00 0c 20 20 69 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 .....if.(r.<.5)........r.=.5;...
4dea0 30 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 0..circle(px,.a->w,.a->h,.cx,.cy
4dec0 2c 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 ,.r,.0xFF000000);......for.(int.
4dee0 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 i.=.0;.i.<.12;.i++).{........dou
4df00 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 ble.ang.=.i./.12.0.*.2.*.M_PI.-.
4df20 4d 5f 50 49 5f 32 3b 00 00 00 4c 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d M_PI_2;...L....line(px,.a->w,.a-
4df40 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 2c 20 63 79 >h,.cx.+.cos(ang).*.(r.-.10),.cy
4df60 20 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 2c 00 00 00 47 20 20 20 20 20 .+.sin(ang).*.(r.-.10),...G.....
4df80 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 2c 20 63 79 20 ....cx.+.cos(ang).*.(r.-.2),.cy.
4dfa0 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 2c 20 30 78 46 46 30 30 30 30 30 30 +.sin(ang).*.(r.-.2),.0xFF000000
4dfc0 29 3b 00 00 00 03 20 20 7d 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 );......}...4..double.sa.=.tmv.t
4dfe0 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 m_sec./.60.0.*.2.*.M_PI.-.M_PI_2
4e000 3b 00 00 00 4a 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b ;...J..double.ma.=.(tmv.tm_min.+
4e020 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a .tmv.tm_sec./.60.0)./.60.0.*.2.*
4e040 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d .M_PI.-.M_PI_2;......double.ha.=
4e060 00 00 00 4c 20 20 20 20 20 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 ...L......((tmv.tm_hour.%.12).+.
4e080 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 (tmv.tm_min./.60.0))./.12.0.*.2.
4e0a0 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4e 20 20 6c 69 6e 65 28 70 78 2c 20 61 *.M_PI.-.M_PI_2;...N..line(px,.a
4e0c0 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 ->w,.a->h,.cx,.cy,.cx.+.cos(ha).
4e0e0 2a 20 72 20 2a 20 30 2e 35 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e *.r.*.0.5,.cy.+.sin(ha).*.r.*.0.
4e100 35 2c 00 00 00 13 20 20 20 20 20 20 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 4e 20 20 6c 5,...........0xFF000000);...N..l
4e120 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b ine(px,.a->w,.a->h,.cx,.cy,.cx.+
4e140 20 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 .cos(ma).*.r.*.0.7,.cy.+.sin(ma)
4e160 20 2a 20 72 20 2a 20 30 2e 37 2c 00 00 00 13 20 20 20 20 20 20 20 30 78 46 46 30 30 30 30 30 30 .*.r.*.0.7,...........0xFF000000
4e180 29 3b 00 00 00 4e 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c );...N..line(px,.a->w,.a->h,.cx,
4e1a0 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 2c 20 63 79 20 .cy,.cx.+.cos(sa).*.r.*.0.9,.cy.
4e1c0 2b 20 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 2c 00 00 00 13 20 20 20 20 20 20 20 30 +.sin(sa).*.r.*.0.9,...........0
4e1e0 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 xFFFF0000);...)..wl_surface_atta
4e200 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c ch(a->ws,.a->buf,.0,.0);...4..wl
4e220 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c _surface_damage_buffer(a->ws,.0,
4e240 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 .0,.a->w,.a->h);......wl_surface
4e260 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d _commit(a->ws);......a->redraw.=
4e280 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 .false;....}.......Gstatic.void.
4e2a0 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 xt_close(void.*d,.struct.xdg_top
4e2c0 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 level.*xt).{.running.=.0;.}.....
4e2e0 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 ..Jstatic.void.xt_cfg(void.*d,.s
4e300 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 truct.xdg_toplevel.*xt,.int32_t.
4e320 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 w,.int32_t.h,...(...............
4e340 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 ....struct.wl_array.*s).{......s
4e360 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 truct.app.*a.=.d;...3..if.(w.>.0
4e380 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 .&&.h.>.0.&&.(w.!=.a->w.||.h.!=.
4e3a0 61 2d 3e 68 29 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 a->h)).{........a->w.=.w;.......
4e3c0 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 .a->h.=.h;........destroy_buf(a)
4e3e0 3b 00 00 00 15 20 20 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 ;........a->redraw.=.true;......
4e400 7d 00 00 00 01 7d 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 }....}.......Fstatic.void.xs_cfg
4e420 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 (void.*d,.struct.xdg_surface.*xs
4e440 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 ,.uint32_t.serial).{......struct
4e460 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 .app.*a.=.d;...(..xdg_surface_ac
4e480 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d k_configure(xs,.serial);......a-
4e4a0 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 13 20 20 61 2d 3e 72 65 64 72 >configured.=.true;......a->redr
4e4c0 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 43 73 74 61 74 69 63 20 76 6f aw.=.true;....}.......Cstatic.vo
4e4e0 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c id.reg_global(void.*d,.struct.wl
4e500 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 33 20 20 _registry.*r,.uint32_t.id,...3..
4e520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 .....................const.char.
4e540 2a 69 2c 20 75 69 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 *i,.uint32_t.v).{......struct.ap
4e560 70 20 2a 61 20 3d 20 64 3b 00 00 00 22 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 p.*a.=.d;..."..if.(!strcmp(i,."w
4e580 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d l_compositor"))...C....a->comp.=
4e5a0 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d .wl_registry_bind(r,.id,.&wl_com
4e5c0 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 20 20 20 65 6c 73 65 positor_interface,.4);......else
4e5e0 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 .if.(!strcmp(i,."wl_shm"))...;..
4e600 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 ..a->shm.=.wl_registry_bind(r,.i
4e620 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 d,.&wl_shm_interface,.1);...'..e
4e640 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 lse.if.(!strcmp(i,."xdg_wm_base"
4e660 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f )).{...?....a->wm.=.wl_registry_
4e680 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 bind(r,.id,.&xdg_wm_base_interfa
4e6a0 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 ce,.1);...C....static.const.stru
4e6c0 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 ct.xdg_wm_base_listener.l.=.{.pi
4e6e0 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 ng.=.wm_ping};...+....xdg_wm_bas
4e700 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 e_add_listener(a->wm,.&l,.a);...
4e720 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 ...}....}........int.main(void).
4e740 7b 00 00 00 13 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 0c 20 20 66 6f {......char.buffer[100];......fo
4e760 72 20 28 3b 3b 29 20 7b 00 00 00 1c 20 20 20 20 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d r.(;;).{........time_t.cli.=.tim
4e780 65 28 4e 55 4c 4c 29 3b 00 00 00 23 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 20 3d 20 6c e(NULL);...#....struct.tm.*t.=.l
4e7a0 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 3b 00 00 00 40 20 20 20 20 73 74 72 66 74 69 6d 65 28 ocaltime(&cli);...@....strftime(
4e7c0 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 buffer,.sizeof(buffer),."%d-%m-%
4e7e0 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c 20 74 29 3b 00 00 00 25 20 20 20 20 70 72 69 6e 74 Y.%I:%M:%S.%p",.t);...%....print
4e800 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 73 5c 6e 22 2c 20 62 75 66 66 65 72 29 3b 00 00 00 13 f("\rTime.is.%s\n",.buffer);....
4e820 20 20 20 20 66 66 6c 75 73 68 28 73 74 64 6f 75 74 29 3b 00 00 00 0d 20 20 20 20 73 6c 65 65 70 ....fflush(stdout);........sleep
4e840 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 15 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 (1);......}......struct.app.a.=.
4e860 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d 20 34 30 30 3b 00 00 00 0c 20 20 61 2e 68 20 3d 20 {0};......a.w.=.400;......a.h.=.
4e880 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 400;......signal(SIGINT,.on_sig)
4e8a0 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 ;...!..a.d.=.wl_display_connect(
4e8c0 4e 55 4c 4c 29 3b 00 00 00 0b 20 20 69 66 20 28 21 61 2e 64 29 00 00 00 0d 20 20 20 20 72 65 74 NULL);......if.(!a.d)........ret
4e8e0 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 urn.1;...'..a.reg.=.wl_display_g
4e900 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f et_registry(a.d);...G..static.co
4e920 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 nst.struct.wl_registry_listener.
4e940 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b rl.=.{.global.=.reg_global};...+
4e960 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 ..wl_registry_add_listener(a.reg
4e980 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e ,.&rl,.&a);......wl_display_roun
4e9a0 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 21 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 dtrip(a.d);...!..if.(!a.comp.||.
4e9c0 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 !a.shm.||.!a.wm)........return.1
4e9e0 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 ;......a.ws.=.wl_compositor_crea
4ea00 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 te_surface(a.comp);...1..a.xs.=.
4ea20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d xdg_wm_base_get_xdg_surface(a.wm
4ea40 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 ,.a.ws);...G..static.const.struc
4ea60 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 6c 20 3d 20 7b 2e 63 t.xdg_surface_listener.xsl.=.{.c
4ea80 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 2b 20 20 78 64 67 5f 73 75 72 onfigure.=.xs_cfg};...+..xdg_sur
4eaa0 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 6c 2c 20 26 61 face_add_listener(a.xs,.&xsl,.&a
4eac0 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 );...(..a.xt.=.xdg_surface_get_t
4eae0 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 oplevel(a.xs);...G..static.const
4eb00 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 .struct.xdg_toplevel_listener.xt
4eb20 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 00 00 00 46 20 20 20 l.=.{.configure.=.xt_cfg,...F...
4eb40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4eb60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 .................close.=.xt_clos
4eb80 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e e};...,..xdg_toplevel_add_listen
4eba0 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 er(a.xt,.&xtl,.&a);...*..xdg_top
4ebc0 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 level_set_title(a.xt,."wlclock")
4ebe0 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 ;......wl_surface_commit(a.ws);.
4ec00 00 00 17 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 1d 20 20 .....while.(!a.configured)......
4ec20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 0d 20 ..wl_display_dispatch(a.d);.....
4ec40 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 .render(&a);...9..int.tfd.=.time
4ec60 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f rfd_create(CLOCK_MONOTONIC,.TFD_
4ec80 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 CLOEXEC);...F..timerfd_settime(t
4eca0 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 fd,.0,.&(struct.itimerspec){{1,.
4ecc0 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 0},.{1,.0}},.NULL);......while.(
4ece0 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 running).{...-....while.(wl_disp
4ed00 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 00 00 00 27 20 lay_prepare_read(a.d).!=.0)...'.
4ed20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 .....wl_display_dispatch_pending
4ed40 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 (a.d);........wl_display_flush(a
4ed60 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d .d);...M....struct.pollfd.fds[2]
4ed80 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c .=.{{wl_display_get_fd(a.d),.POL
4eda0 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1f 20 20 20 20 69 66 20 LIN},.{tfd,.POLLIN}};........if.
4edc0 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 00 00 00 22 20 20 20 20 (poll(fds,.2,.-1).<.0).{..."....
4ede0 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 ..wl_display_cancel_read(a.d);..
4ee00 00 0f 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 20 20 20 ........continue;........}......
4ee20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 00 00 ..if.(fds[0].revents.&.POLLIN)..
4ee40 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 ."......wl_display_read_events(a
4ee60 2e 64 29 3b 00 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 .d);........else..."......wl_dis
4ee80 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 6c play_cancel_read(a.d);...%....wl
4eea0 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 _display_dispatch_pending(a.d);.
4eec0 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c .."....if.(fds[1].revents.&.POLL
4eee0 49 4e 29 20 7b 00 00 00 11 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 3b 00 00 00 1f 20 20 IN).{..........uint64_t.t;......
4ef00 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 2c 20 73 69 7a 65 6f 66 28 74 29 29 3b 00 00 00 ....read(tfd,.&t,.sizeof(t));...
4ef20 16 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d .......a.redraw.=.true;........}
4ef40 00 00 00 11 20 20 20 20 69 66 20 28 61 2e 72 65 64 72 61 77 29 00 00 00 11 20 20 20 20 20 20 72 ........if.(a.redraw)..........r
4ef60 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 0d 20 20 63 6c 6f 73 65 28 74 66 64 ender(&a);......}......close(tfd
4ef80 29 3b 00 00 00 12 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b 00 00 00 1d 20 20 77 6c );......destroy_buf(&a);......wl
4efa0 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 _display_disconnect(a.d);......r
4efc0 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 08 01 00 eturn.0;....}5..................
4efe0 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1d 1d 00 00 00 00 00 00 01 00 00 ................................
4f000 00 00 00 00 00 35 81 5f d0 00 00 00 87 00 00 00 89 00 00 00 00 00 00 00 00 00 00 00 88 00 00 00 .....5._........................
4f020 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f160 00 00 00 00 00 00 00 00 00 00 01 00 00 00 12 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 00 ................................
4f180 00 00 56 00 00 00 12 00 00 00 00 69 9d a6 83 04 01 00 00 00 00 00 f5 18 00 00 00 9c 00 00 00 00 ..V........i....................
4f1a0 00 00 00 00 00 00 00 01 00 00 00 01 20 f5 18 00 00 00 9d 00 00 00 00 00 00 00 00 00 00 00 00 f5 ................................
4f1c0 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 ................................
4f1e0 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9c .......5........................
4f200 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 f5 ................................
4f220 18 00 00 00 00 9c 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 6e 00 00 00 01 00 00 00 00 10 00 .....................n..........
4f240 00 00 00 00 00 00 00 00 00 00 00 00 00 40 0d 00 00 00 00 00 00 35 81 5f d0 00 00 00 88 00 00 00 .............@.......5._........
4f260 8a 00 00 00 00 00 00 00 00 00 00 00 89 00 00 01 0b 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 ................................
4f280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 12 00 ................................
4f3c0 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 56 00 00 00 12 00 00 00 00 69 9d a6 84 04 ..................V........i....
4f3e0 01 00 00 00 23 00 f5 18 00 00 00 e4 00 00 00 fb 00 00 01 0b 00 00 00 16 00 00 00 02 20 20 00 00 ....#...........................
4f400 00 13 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 00 00 00 00 13 20 20 77 ....char.buffer[100];..........w
4f420 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c 65 20 28 77 hile.(running).{...-....while.(w
4f440 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 l_display_prepare_read(a.d).!=.0
4f460 29 00 00 00 27 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 )...'......wl_display_dispatch_p
4f480 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 ending(a.d);........wl_display_f
4f4a0 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 lush(a.d);...M....struct.pollfd.
4f4c0 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 fds[2].=.{{wl_display_get_fd(a.d
4f4e0 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1f 20 ),.POLLIN},.{tfd,.POLLIN}};.....
4f500 20 20 20 69 66 20 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 00 00 ...if.(poll(fds,.2,.-1).<.0).{..
4f520 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 ."......wl_display_cancel_read(a
4f540 2e 64 29 3b 00 00 00 0f 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 20 20 20 20 7d .d);..........continue;........}
4f560 00 00 00 20 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c ........if.(fds[0].revents.&.POL
4f580 4c 49 4e 29 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 LIN)..."......wl_display_read_ev
4f5a0 65 6e 74 73 28 61 2e 64 29 3b 00 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 20 20 20 20 ents(a.d);........else..."......
4f5c0 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 wl_display_cancel_read(a.d);...%
4f5e0 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 ....wl_display_dispatch_pending(
4f600 61 2e 64 29 3b 00 00 00 04 20 20 20 20 00 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e a.d);..........."....if.(fds[1].
4f620 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e revents.&.POLLIN).{..........uin
4f640 74 36 34 5f 74 20 74 5f 65 78 70 3b 00 00 00 27 20 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 t64_t.t_exp;...'......read(tfd,.
4f660 26 74 5f 65 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 78 70 29 29 3b 00 00 00 06 20 20 20 20 20 &t_exp,.sizeof(t_exp));.........
4f680 20 35 81 f5 18 00 00 00 00 e4 00 00 00 00 00 00 00 15 00 00 00 06 00 00 00 15 00 00 00 00 00 00 .5..............................
4f6a0 00 85 19 00 00 00 00 00 00 46 02 00 00 00 00 00 00 3a 02 00 00 00 00 00 00 35 81 5f d0 00 00 00 .........F.......:.......5._....
4f6c0 89 00 00 00 8b 00 00 00 00 00 00 00 00 00 00 00 8a 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ................................
4f6e0 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 ................................
4f820 00 00 00 00 00 00 00 00 00 01 0b 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 69 ......................V........i
4f840 9d a7 5d 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 0b 00 00 00 1f ..].............................
4f860 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 #define._POSIX_C_SOURCE.200809L.
4f880 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 ..&#include."xdg-shell-client-pr
4f8a0 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 otocol.h"....#include.<fcntl.h>.
4f8c0 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 ...#include.<math.h>....#include
4f8e0 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e .<poll.h>....#include.<signal.h>
4f900 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 6e 63 ....#include.<stdbool.h>....#inc
4f920 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 lude.<stdint.h>....#include.<std
4f940 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 io.h>....#include.<stdlib.h>....
4f960 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 #include.<string.h>....#include.
4f980 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 <sys/mman.h>....#include.<sys/ti
4f9a0 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 merfd.h>....#include.<time.h>...
4f9c0 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 .#include.<unistd.h>....#include
4f9e0 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 .<wayland-client.h>........#ifnd
4fa00 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 ef.M_PI...##define.M_PI.3.141592
4fa20 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 65358979323846....#endif....#ifn
4fa40 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 def.M_PI_2...%#define.M_PI_2.1.5
4fa60 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 7079632679489661923....#endif...
4fa80 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f ....)static.volatile.sig_atomic_
4faa0 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e t.running.=.1;....static.void.on
4fac0 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 _sig(int.s).{......(void)s;.....
4fae0 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 .running.=.0;....}........struct
4fb00 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 .app.{......struct.wl_display.*d
4fb20 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 ;......struct.wl_registry.*reg;.
4fb40 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b .....struct.wl_compositor.*comp;
4fb60 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 ......struct.wl_shm.*shm;......s
4fb80 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 truct.xdg_wm_base.*wm;......stru
4fba0 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 ct.wl_surface.*ws;......struct.x
4fbc0 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f dg_surface.*xs;......struct.xdg_
4fbe0 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b toplevel.*xt;......void.*pixels;
4fc00 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b ......struct.wl_buffer.*buf;....
4fc20 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 00 12 ..int.w,.h;......int.bw,.bh;....
4fc40 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 65 64 ..bool.configured;......bool.red
4fc60 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d raw;....};.......Jstatic.void.wm
4fc80 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f _ping(void.*data,.struct.xdg_wm_
4fca0 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 1f base.*wm,.uint32_t.serial).{....
4fcc0 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 00 ..xdg_wm_base_pong(wm,.serial);.
4fce0 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 ...}.......$static.int.create_sh
4fd00 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d m(size_t.size).{...#..char.t[].=
4fd20 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 6e 74 ."/tmp/wlclock-XXXXXX";......int
4fd40 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 .fd.=.mkstemp(t);......if.(fd.<.
4fd60 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 0)........exit(1);......unlink(t
4fd80 29 3b 00 00 00 1e 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 );......if.(ftruncate(fd,.size).
4fda0 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e <.0)........exit(1);......return
4fdc0 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 .fd;....}.......(static.void.des
4fde0 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0e 20 20 69 troy_buf(struct.app.*a).{......i
4fe00 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 2a 20 20 f.(!a->buf)........return;...*..
4fe20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 61 2d size_t.size.=.(size_t)a->bw.*.a-
4fe40 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 >bh.*.4;......wl_buffer_destroy(
4fe60 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 a->buf);......munmap(a->pixels,.
4fe80 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 20 20 size);......a->buf.=.NULL;......
4fea0 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 a->pixels.=.NULL;....}.......&st
4fec0 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a atic.void.alloc_buf(struct.app.*
4fee0 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 a).{......destroy_buf(a);...(..s
4ff00 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 ize_t.size.=.(size_t)a->w.*.a->h
4ff20 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 .*.4;......int.fd.=.create_shm(s
4ff40 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c ize);...J..a->pixels.=.mmap(NULL
4ff60 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 ,.size,.PROT_READ.|.PROT_WRITE,.
4ff80 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1e 20 20 69 66 20 28 61 2d 3e MAP_SHARED,.fd,.0);......if.(a->
4ffa0 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 00 00 00 0c 20 20 20 20 65 78 69 pixels.==.MAP_FAILED)........exi
4ffc0 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 t(1);...B..struct.wl_shm_pool.*p
4ffe0 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c ool.=.wl_shm_create_pool(a->shm,
50000 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d .fd,.size);...C..a->buf.=.wl_shm
50020 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e _pool_create_buffer(pool,.0,.a->
50040 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 w,.a->h,.a->w.*.4,...=..........
50060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 ...........................WL_SH
50080 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f M_FORMAT_ARGB8888);......wl_shm_
500a0 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 pool_destroy(pool);......close(f
500c0 64 29 3b 00 00 00 0f 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b 00 00 00 0f 20 20 61 2d 3e 62 d);......a->bw.=.a->w;......a->b
500e0 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4c 73 74 61 74 69 63 20 76 6f 69 h.=.a->h;....}.......Lstatic.voi
50100 64 20 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 d.line(uint32_t.*px,.int.w,.int.
50120 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 h,.int.x0,.int.y0,.int.x1,.int.y
50140 31 2c 00 00 00 1e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 1,.....................uint32_t.
50160 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c c).{.../..int.dx.=.abs(x1.-.x0),
50180 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 .sx.=.x0.<.x1.?.1.:.-1;...0..int
501a0 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 .dy.=.-abs(y1.-.y0),.sy.=.y0.<.y
501c0 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 14 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 1.?.1.:.-1;......int.err.=.dx.+.
501e0 64 79 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 dy;......while.(1).{.../....if.(
50200 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 x0.>=.0.&&.x0.<.w.&&.y0.>=.0.&&.
50220 79 30 20 3c 20 68 29 00 00 00 1a 20 20 20 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d y0.<.h)..........px[y0.*.w.+.x0]
50240 20 3d 20 63 3b 00 00 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 .=.c;........if.(x0.==.x1.&&.y0.
50260 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 15 20 20 20 20 69 6e ==.y1)..........break;........in
50280 74 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3e 3d t.e2.=.2.*.err;........if.(e2.>=
502a0 20 64 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 .dy).{..........err.+=.dy;......
502c0 20 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 69 66 ....x0.+=.sx;........}........if
502e0 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 .(e2.<=.dx).{..........err.+=.dx
50300 3b 00 00 00 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 00 00 ;..........y0.+=.sy;........}...
50320 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 ...}....}.......Estatic.void.cir
50340 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 cle(uint32_t.*px,.int.w,.int.h,.
50360 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 20 20 20 20 20 20 20 int.cx,.int.cy,.int.r,..........
50380 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 .............uint32_t.c).{..."..
503a0 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b int.x.=.0,.y.=.r,.d.=.3.-.2.*.r;
503c0 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e ......while.(y.>=.x).{...H....in
503e0 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b t.p[8][2].=.{{cx.+.x,.cy.+.y},.{
50400 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 cx.-.x,.cy.+.y},.{cx.+.x,.cy.-.y
50420 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 },...H...................{cx.-.x
50440 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 ,.cy.-.y},.{cx.+.y,.cy.+.x},.{cx
50460 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .-.y,.cy.+.x},...7..............
50480 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 .....{cx.+.y,.cy.-.x},.{cx.-.y,.
504a0 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b cy.-.x}};........for.(int.i.=.0;
504c0 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 .i.<.8;.i++)...E......if.(p[i][0
504e0 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d ].>=.0.&&.p[i][0].<.w.&&.p[i][1]
50500 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 .>=.0.&&.p[i][1].<.h)...&.......
50520 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 .px[p[i][1].*.w.+.p[i][0]].=.c;.
50540 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b .......if.(d.>.0).{..........d.+
50560 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d =.4.*.(x.-.y).+.10;..........y--
50580 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 ;........}.else..........d.+=.4.
505a0 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d *.x.+.6;........x++;......}....}
505c0 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 .......#static.void.render(struc
505e0 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 t.app.*a).{.../..if.(!a->configu
50600 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 red.||.a->w.<=.0.||.a->h.<=.0)..
50620 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 ......return;......if.(!a->buf).
50640 00 00 11 20 20 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 .......alloc_buf(a);......uint32
50660 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 _t.*px.=.a->pixels;...$..memset(
50680 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 px,.0xFF,.a->w.*.a->h.*.4);.....
506a0 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 .time_t.tt.=.time(NULL);......st
506c0 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 ruct.tm.tmv;......localtime_r(&t
506e0 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 t,.&tmv);...#..int.cx.=.a->w./.2
50700 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 ,.cy.=.a->h./.2;.../..int.r.=.(a
50720 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 ->w.<.a->h.?.a->w.:.a->h)./.2.-.
50740 31 30 3b 00 00 00 0c 20 20 69 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 10;......if.(r.<.5)........r.=.5
50760 3b 00 00 00 30 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 ;...0..circle(px,.a->w,.a->h,.cx
50780 2c 20 63 79 2c 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 20 20 20 66 6f 72 20 28 ,.cy,.r,.0xFF000000);......for.(
507a0 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 int.i.=.0;.i.<.12;.i++).{.......
507c0 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 .double.ang.=.i./.12.0.*.2.*.M_P
507e0 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4c 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 I.-.M_PI_2;...L....line(px,.a->w
50800 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 ,.a->h,.cx.+.cos(ang).*.(r.-.10)
50820 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 31 30 29 2c 00 00 00 47 20 ,.cy.+.sin(ang).*.(r.-.10),...G.
50840 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 2c ........cx.+.cos(ang).*.(r.-.2),
50860 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 32 29 2c 20 30 78 46 46 30 30 .cy.+.sin(ang).*.(r.-.2),.0xFF00
50880 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 0000);......}...4..double.sa.=.t
508a0 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f mv.tm_sec./.60.0.*.2.*.M_PI.-.M_
508c0 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d PI_2;...J..double.ma.=.(tmv.tm_m
508e0 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a in.+.tmv.tm_sec./.60.0)./.60.0.*
50900 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 .2.*.M_PI.-.M_PI_2;......double.
50920 68 61 20 3d 00 00 00 4c 20 20 20 20 20 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 ha.=...L......((tmv.tm_hour.%.12
50940 29 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 ).+.(tmv.tm_min./.60.0))./.12.0.
50960 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4e 20 20 6c 69 6e 65 28 70 *.2.*.M_PI.-.M_PI_2;...N..line(p
50980 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 x,.a->w,.a->h,.cx,.cy,.cx.+.cos(
509a0 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 29 20 2a 20 72 20 ha).*.r.*.0.5,.cy.+.sin(ha).*.r.
509c0 2a 20 30 2e 35 2c 00 00 00 13 20 20 20 20 20 20 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 *.0.5,...........0xFF000000);...
509e0 4e 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 N..line(px,.a->w,.a->h,.cx,.cy,.
50a00 63 78 20 2b 20 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 2c 20 63 79 20 2b 20 73 69 6e cx.+.cos(ma).*.r.*.0.7,.cy.+.sin
50a20 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 2c 00 00 00 13 20 20 20 20 20 20 20 30 78 46 46 30 30 (ma).*.r.*.0.7,...........0xFF00
50a40 30 30 30 30 29 3b 00 00 00 4e 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 0000);...N..line(px,.a->w,.a->h,
50a60 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 2c .cx,.cy,.cx.+.cos(sa).*.r.*.0.9,
50a80 20 63 79 20 2b 20 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 2c 00 00 00 13 20 20 20 20 .cy.+.sin(sa).*.r.*.0.9,........
50aa0 20 20 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f ...0xFFFF0000);...)..wl_surface_
50ac0 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 attach(a->ws,.a->buf,.0,.0);...4
50ae0 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 ..wl_surface_damage_buffer(a->ws
50b00 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 ,.0,.0,.a->w,.a->h);......wl_sur
50b20 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 face_commit(a->ws);......a->redr
50b40 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 aw.=.false;....}.......Gstatic.v
50b60 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 oid.xt_close(void.*d,.struct.xdg
50b80 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 _toplevel.*xt).{.running.=.0;.}.
50ba0 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a ......Jstatic.void.xt_cfg(void.*
50bc0 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 d,.struct.xdg_toplevel.*xt,.int3
50be0 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 2_t.w,.int32_t.h,...(...........
50c00 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 ........struct.wl_array.*s).{...
50c20 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 ...struct.app.*a.=.d;...3..if.(w
50c40 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 .>.0.&&.h.>.0.&&.(w.!=.a->w.||.h
50c60 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 .!=.a->h)).{........a->w.=.w;...
50c80 0d 20 20 20 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 .....a->h.=.h;........destroy_bu
50ca0 66 28 61 29 3b 00 00 00 15 20 20 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 f(a);........a->redraw.=.true;..
50cc0 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 ....}....}.......Fstatic.void.xs
50ce0 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 _cfg(void.*d,.struct.xdg_surface
50d00 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 .*xs,.uint32_t.serial).{......st
50d20 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 ruct.app.*a.=.d;...(..xdg_surfac
50d40 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 e_ack_configure(xs,.serial);....
50d60 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 13 20 20 61 2d 3e ..a->configured.=.true;......a->
50d80 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 43 73 74 61 74 69 redraw.=.true;....}.......Cstati
50da0 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 c.void.reg_global(void.*d,.struc
50dc0 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 t.wl_registry.*r,.uint32_t.id,..
50de0 00 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 .3.......................const.c
50e00 68 61 72 20 2a 69 2c 20 75 69 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 har.*i,.uint32_t.v).{......struc
50e20 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 22 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 t.app.*a.=.d;..."..if.(!strcmp(i
50e40 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 43 20 20 20 20 61 2d 3e 63 6f ,."wl_compositor"))...C....a->co
50e60 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c mp.=.wl_registry_bind(r,.id,.&wl
50e80 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 20 20 20 _compositor_interface,.4);......
50ea0 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 else.if.(!strcmp(i,."wl_shm"))..
50ec0 00 3b 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 .;....a->shm.=.wl_registry_bind(
50ee0 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 r,.id,.&wl_shm_interface,.1);...
50f00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d 5f 62 '..else.if.(!strcmp(i,."xdg_wm_b
50f20 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 ase")).{...?....a->wm.=.wl_regis
50f40 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 try_bind(r,.id,.&xdg_wm_base_int
50f60 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 erface,.1);...C....static.const.
50f80 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 20 3d 20 struct.xdg_wm_base_listener.l.=.
50fa0 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f 77 6d {.ping.=.wm_ping};...+....xdg_wm
50fc0 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 _base_add_listener(a->wm,.&l,.a)
50fe0 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f ;......}....}........int.main(vo
51000 69 64 29 20 7b 00 00 00 15 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 id).{......struct.app.a.=.{0};..
51020 00 0c 20 20 61 2e 77 20 3d 20 34 30 30 3b 00 00 00 0c 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 ....a.w.=.400;......a.h.=.400;..
51040 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 ....signal(SIGINT,.on_sig);...!.
51060 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b .a.d.=.wl_display_connect(NULL);
51080 00 00 00 0b 20 20 69 66 20 28 21 61 2e 64 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b ......if.(!a.d)........return.1;
510a0 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 ...'..a.reg.=.wl_display_get_reg
510c0 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 istry(a.d);...G..static.const.st
510e0 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b ruct.wl_registry_listener.rl.=.{
51100 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 .global.=.reg_global};...+..wl_r
51120 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c egistry_add_listener(a.reg,.&rl,
51140 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 .&a);......wl_display_roundtrip(
51160 61 2e 64 29 3b 00 00 00 21 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d a.d);...!..if.(!a.comp.||.!a.shm
51180 20 7c 7c 20 21 61 2e 77 6d 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 .||.!a.wm)........return.1;.....
511a0 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 .a.ws.=.wl_compositor_create_sur
511c0 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d face(a.comp);...1..a.xs.=.xdg_wm
511e0 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 _base_get_xdg_surface(a.wm,.a.ws
51200 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f );...G..static.const.struct.xdg_
51220 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 surface_listener.xsl.=.{.configu
51240 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 re.=.xs_cfg};...+..xdg_surface_a
51260 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 dd_listener(a.xs,.&xsl,.&a);...(
51280 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 ..a.xt.=.xdg_surface_get_topleve
512a0 6c 28 61 2e 78 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 l(a.xs);...G..static.const.struc
512c0 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e t.xdg_toplevel_listener.xtl.=.{.
512e0 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 00 00 00 46 20 20 20 20 20 20 20 20 20 configure.=.xt_cfg,...F.........
51300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
51320 20 20 20 20 20 20 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 ...........close.=.xt_close};...
51340 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 ,..xdg_toplevel_add_listener(a.x
51360 74 2c 20 26 78 74 6c 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f t,.&xtl,.&a);...*..xdg_toplevel_
51380 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 set_title(a.xt,."wlclock");.....
513a0 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 17 20 20 77 .wl_surface_commit(a.ws);......w
513c0 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 1d 20 20 20 20 77 6c 5f 64 hile.(!a.configured)........wl_d
513e0 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 0d 20 20 72 65 6e 64 65 isplay_dispatch(a.d);......rende
51400 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 r(&a);...9..int.tfd.=.timerfd_cr
51420 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 eate(CLOCK_MONOTONIC,.TFD_CLOEXE
51440 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c C);...F..timerfd_settime(tfd,.0,
51460 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 .&(struct.itimerspec){{1,.0},.{1
51480 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 13 20 20 63 68 61 72 20 62 75 66 66 ,.0}},.NULL);..........char.buff
514a0 65 72 5b 31 30 30 5d 3b 00 00 00 00 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 er[100];..........while.(running
514c0 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 ).{...-....while.(wl_display_pre
514e0 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 00 00 00 27 20 20 20 20 20 20 77 6c pare_read(a.d).!=.0)...'......wl
51500 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 _display_dispatch_pending(a.d);.
51520 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 .......wl_display_flush(a.d);...
51540 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c M....struct.pollfd.fds[2].=.{{wl
51560 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b _display_get_fd(a.d),.POLLIN},.{
51580 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1f 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 66 tfd,.POLLIN}};........if.(poll(f
515a0 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 ds,.2,.-1).<.0).{..."......wl_di
515c0 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 0f 20 20 20 20 20 splay_cancel_read(a.d);.........
515e0 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 20 20 20 20 20 69 66 20 28 66 .continue;........}........if.(f
51600 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 22 20 20 20 20 20 ds[0].revents.&.POLLIN)...".....
51620 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 00 00 00 .wl_display_read_events(a.d);...
51640 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 .....else..."......wl_display_ca
51660 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 ncel_read(a.d);...%....wl_displa
51680 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 00 00 00 00 22 y_dispatch_pending(a.d);......."
516a0 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 ....if.(fds[1].revents.&.POLLIN)
516c0 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 5f 65 78 70 3b 00 00 00 27 20 .{..........uint64_t.t_exp;...'.
516e0 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f .....read(tfd,.&t_exp,.sizeof(t_
51700 65 78 70 29 29 3b 00 00 00 00 00 00 00 1e 20 20 20 20 20 20 74 69 6d 65 5f 74 20 63 6c 69 20 3d exp));..............time_t.cli.=
51720 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 .time(NULL);...,......struct.tm.
51740 2a 74 5f 73 74 72 75 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 3b 00 00 00 49 *t_struct.=.localtime(&cli);...I
51760 20 20 20 20 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 ......strftime(buffer,.sizeof(bu
51780 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c 20 74 ffer),."%d-%m-%Y.%I:%M:%S.%p",.t
517a0 5f 73 74 72 75 63 74 29 3b 00 00 00 25 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 5c 72 54 69 6d _struct);...%......printf("\rTim
517c0 65 20 69 73 20 25 73 22 2c 20 62 75 66 66 65 72 29 3b 00 00 00 15 20 20 20 20 20 20 66 66 6c 75 e.is.%s",.buffer);..........fflu
517e0 73 68 28 73 74 64 6f 75 74 29 3b 00 00 00 00 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 64 72 61 sh(stdout);..............a.redra
51800 77 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 11 20 20 20 20 69 66 20 28 61 2e w.=.true;........}........if.(a.
51820 72 65 64 72 61 77 29 00 00 00 11 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 redraw)..........render(&a);....
51840 20 20 7d 00 00 00 0f 20 20 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b 00 00 00 0d 20 20 63 6c 6f 73 ..}......printf("\n");......clos
51860 65 28 74 66 64 29 3b 00 00 00 12 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b 00 00 00 e(tfd);......destroy_buf(&a);...
51880 1d 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 ...wl_display_disconnect(a.d);..
518a0 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 ....return.0;....}5.............
518c0 00 00 0b 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 1d 00 00 00 00 ..........................5.....
518e0 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 8a 00 00 00 8c 00 00 00 00 00 00 00 00 00 00 ..........5._...................
51900 00 8b 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
519a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
519c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
519e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ................................
51a60 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 69 9d a7 5e 04 01 00 00 00 00 00 f5 18 00 00 00 .......V........i..^............
51a80 f0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 f1 00 00 00 00 00 00 00 00 .................}..............
51aa0 00 00 00 00 f5 18 00 00 00 dc 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 07 20 20 20 20 20 20 ................................
51ac0 77 f5 18 00 00 00 dd 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 96 00 00 00 00 00 00 00 w...............................
51ae0 00 00 00 00 01 00 00 00 0a 20 20 20 20 61 2d 3e 77 20 3d f5 18 00 00 00 97 00 00 00 00 00 00 00 .............a->w.=.............
51b00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 ................................
51b20 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .............5..................
51b40 00 00 00 00 00 96 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 ................................
51b60 00 00 00 00 00 f5 18 00 00 00 00 96 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 46 00 00 00 07 ...........................F....
51b80 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 00 00 00 f5 18 00 00 00 ................................
51ba0 00 dc 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00 00 19 00 00 00 00 00 ................................
51bc0 00 00 00 00 00 00 00 00 00 16 02 00 00 00 00 00 00 35 81 5f d0 00 00 00 8b 00 00 00 8d 00 00 00 .................5._............
51be0 00 00 00 00 00 00 00 00 8c 00 00 00 f1 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 ................................
51c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................................
51d40 00 00 01 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 69 9d a7 5e 04 01 00 00 00 ..............V........i..^.....
51d60 25 00 f5 18 00 00 00 84 00 00 00 8f 00 00 00 f1 00 00 00 06 00 00 00 54 20 20 64 6f 75 62 6c 65 %......................T..double
51d80 20 68 61 20 3d 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 .ha.=.((tmv.tm_hour.%.12).+.(tmv
51da0 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f .tm_min./.60.0))./.12.0.*.2.*.M_
51dc0 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 2e 20 20 66 6f 72 20 28 64 6f 75 62 6c 65 20 66 20 PI.-.M_PI_2;......for.(double.f.
51de0 3d 20 2d 30 2e 30 34 3b 20 66 20 3c 3d 20 30 2e 30 34 3b 20 66 20 2b 3d 20 30 2e 30 31 29 00 00 =.-0.04;.f.<=.0.04;.f.+=.0.01)..
51e00 00 65 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 .e....line(px,.a->w,.a->h,.cx,.c
51e20 79 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2b 20 66 29 20 2a 20 72 20 2a 20 30 2e 35 2c 20 63 y,.cx.+.cos(ha.+.f).*.r.*.0.5,.c
51e40 79 20 2b 20 73 69 6e 28 68 61 20 2b 20 66 29 20 2a 20 72 20 2a 20 30 2e 35 2c 20 30 78 46 46 30 y.+.sin(ha.+.f).*.r.*.0.5,.0xFF0
51e60 30 30 30 30 30 29 3b 00 00 00 2e 20 20 66 6f 72 20 28 64 6f 75 62 6c 65 20 66 20 3d 20 2d 30 2e 00000);......for.(double.f.=.-0.
51e80 30 32 3b 20 66 20 3c 3d 20 30 2e 30 32 3b 20 66 20 2b 3d 20 30 2e 30 31 29 00 00 00 67 20 20 20 02;.f.<=.0.02;.f.+=.0.01)...g...
51ea0 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 .line(px,.a->w,.a->h,.cx,.cy,.cx
51ec0 20 2b 20 63 6f 73 28 6d 61 20 2b 20 66 29 20 2a 20 72 20 2a 20 30 2e 37 35 2c 20 63 79 20 2b 20 .+.cos(ma.+.f).*.r.*.0.75,.cy.+.
51ee0 73 69 6e 28 6d 61 20 2b 20 66 29 20 2a 20 72 20 2a 20 30 2e 37 35 2c 20 30 78 46 46 30 30 30 30 sin(ma.+.f).*.r.*.0.75,.0xFF0000
51f00 30 30 29 3b 00 00 00 5d 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 00);...]..line(px,.a->w,.a->h,.c
51f20 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 38 35 2c 20 x,.cy,.cx.+.cos(sa).*.r.*.0.85,.
51f40 63 79 20 2b 20 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 38 35 2c 20 30 78 46 46 46 46 30 cy.+.sin(sa).*.r.*.0.85,.0xFFFF0
51f60 30 30 30 29 3b 35 81 f5 18 00 00 00 00 84 00 00 00 0d 00 00 00 05 00 00 00 50 00 00 00 09 00 00 000);5...................P......
51f80 00 06 00 00 00 8b 0c 00 00 00 00 00 00 c4 01 00 00 00 00 00 00 e3 01 00 00 00 00 00 00 35 81 5f .............................5._
51fa0 d0 00 00 00 8c 00 00 00 8e 00 00 00 00 00 00 00 00 00 00 00 8d 00 00 00 01 00 00 00 00 00 00 00 ................................
51fc0 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
520a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
520c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
520e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52120 00 00 00 69 9d a7 98 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 f5 ...i............................
52140 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 ....#define._POSIX_C_SOURCE.2008
52160 30 39 4c 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 09L...&#include."xdg-shell-clien
52180 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c t-protocol.h"....#include.<fcntl
521a0 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 .h>....#include.<math.h>....#inc
521c0 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 lude.<poll.h>....#include.<signa
521e0 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 l.h>....#include.<stdbool.h>....
52200 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 #include.<stdint.h>....#include.
52220 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e <stdio.h>....#include.<stdlib.h>
52240 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c ....#include.<string.h>....#incl
52260 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 ude.<sys/mman.h>....#include.<sy
52280 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 s/timerfd.h>....#include.<time.h
522a0 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 >....#include.<unistd.h>....#inc
522c0 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 lude.<wayland-client.h>........#
522e0 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 ifndef.M_PI...##define.M_PI.3.14
52300 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 159265358979323846....#endif....
52320 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 #ifndef.M_PI_2...%#define.M_PI_2
52340 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 .1.57079632679489661923....#endi
52360 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f f.......)static.volatile.sig_ato
52380 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 mic_t.running.=.1;....static.voi
523a0 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 d.on_sig(int.s).{......(void)s;.
523c0 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 .....running.=.0;....}........st
523e0 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 ruct.app.{......struct.wl_displa
52400 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 y.*d;......struct.wl_registry.*r
52420 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 eg;......struct.wl_compositor.*c
52440 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 omp;......struct.wl_shm.*shm;...
52460 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 ...struct.xdg_wm_base.*wm;......
52480 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 struct.wl_surface.*ws;......stru
524a0 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 ct.xdg_surface.*xs;......struct.
524c0 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 xdg_toplevel.*xt;......void.*pix
524e0 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b els;......struct.wl_buffer.*buf;
52500 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 62 77 2c 20 62 68 3b ......int.w,.h;......int.bw,.bh;
52520 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c ......bool.configured;......bool
52540 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 .redraw;....};.......Jstatic.voi
52560 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 d.wm_ping(void.*data,.struct.xdg
52580 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b _wm_base.*wm,.uint32_t.serial).{
525a0 00 00 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 ......xdg_wm_base_pong(wm,.seria
525c0 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 l);....}.......$static.int.creat
525e0 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 e_shm(size_t.size).{...#..char.t
52600 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 [].=."/tmp/wlclock-XXXXXX";.....
52620 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 0d 20 20 69 66 20 28 66 .int.fd.=.mkstemp(t);......if.(f
52640 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 d.<.0)........exit(1);......unli
52660 6e 6b 28 74 29 3b 00 00 00 1e 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 nk(t);......if.(ftruncate(fd,.si
52680 7a 65 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 ze).<.0)........exit(1);......re
526a0 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 turn.fd;....}.......(static.void
526c0 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 .destroy_buf(struct.app.*a).{...
526e0 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 ...if.(!a->buf)........return;..
52700 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 .*..size_t.size.=.(size_t)a->bw.
52720 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 *.a->bh.*.4;......wl_buffer_dest
52740 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 roy(a->buf);......munmap(a->pixe
52760 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 ls,.size);......a->buf.=.NULL;..
52780 00 13 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 ....a->pixels.=.NULL;....}......
527a0 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 .&static.void.alloc_buf(struct.a
527c0 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 pp.*a).{......destroy_buf(a);...
527e0 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 (..size_t.size.=.(size_t)a->w.*.
52800 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 a->h.*.4;......int.fd.=.create_s
52820 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 hm(size);...J..a->pixels.=.mmap(
52840 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 NULL,.size,.PROT_READ.|.PROT_WRI
52860 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1e 20 20 69 66 20 TE,.MAP_SHARED,.fd,.0);......if.
52880 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 00 00 00 0c 20 20 20 (a->pixels.==.MAP_FAILED).......
528a0 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f .exit(1);...B..struct.wl_shm_poo
528c0 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e l.*pool.=.wl_shm_create_pool(a->
528e0 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c shm,.fd,.size);...C..a->buf.=.wl
52900 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c _shm_pool_create_buffer(pool,.0,
52920 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d 20 20 20 20 20 20 .a->w,.a->h,.a->w.*.4,...=......
52940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 ...............................W
52960 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f L_SHM_FORMAT_ARGB8888);......wl_
52980 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f shm_pool_destroy(pool);......clo
529a0 73 65 28 66 64 29 3b 00 00 00 0f 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b 00 00 00 0f 20 20 se(fd);......a->bw.=.a->w;......
529c0 61 2d 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4c 73 74 61 74 69 63 a->bh.=.a->h;....}.......Lstatic
529e0 20 76 6f 69 64 20 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 .void.line(uint32_t.*px,.int.w,.
52a00 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 int.h,.int.x0,.int.y0,.int.x1,.i
52a20 6e 74 20 79 31 2c 00 00 00 1e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 nt.y1,.....................uint3
52a40 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 2_t.c).{.../..int.dx.=.abs(x1.-.
52a60 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 x0),.sx.=.x0.<.x1.?.1.:.-1;...0.
52a80 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 .int.dy.=.-abs(y1.-.y0),.sy.=.y0
52aa0 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 14 20 20 69 6e 74 20 65 72 72 20 3d 20 64 .<.y1.?.1.:.-1;......int.err.=.d
52ac0 78 20 2b 20 64 79 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 2f 20 20 20 20 x.+.dy;......while.(1).{.../....
52ae0 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 if.(x0.>=.0.&&.x0.<.w.&&.y0.>=.0
52b00 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 1a 20 20 20 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b .&&.y0.<.h)..........px[y0.*.w.+
52b20 20 78 30 5d 20 3d 20 63 3b 00 00 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 .x0].=.c;........if.(x0.==.x1.&&
52b40 20 79 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 15 20 20 .y0.==.y1)..........break;......
52b60 20 20 69 6e 74 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 ..int.e2.=.2.*.err;........if.(e
52b80 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 2.>=.dy).{..........err.+=.dy;..
52ba0 00 0f 20 20 20 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 ........x0.+=.sx;........}......
52bc0 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b ..if.(e2.<=.dx).{..........err.+
52be0 3d 20 64 78 3b 00 00 00 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 =.dx;..........y0.+=.sy;........
52c00 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 }......}....}.......#static.void
52c20 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 .render(struct.app.*a).{.../..if
52c40 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c .(!a->configured.||.a->w.<=.0.||
52c60 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 .a->h.<=.0)........return;......
52c80 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 if.(!a->buf)........alloc_buf(a)
52ca0 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b ;......uint32_t.*px.=.a->pixels;
52cc0 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 61 2d ...$..memset(px,.0xFF,.a->w.*.a-
52ce0 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e >h.*.4);......time_t.tt.=.time(N
52d00 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c ULL);......struct.tm.tmv;......l
52d20 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 ocaltime_r(&tt,.&tmv);...#..int.
52d40 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 cx.=.a->w./.2,.cy.=.a->h./.2;...
52d60 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a /..int.r.=.(a->w.<.a->h.?.a->w.:
52d80 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 66 20 28 72 20 3c 20 35 29 .a->h)./.2.-.10;......if.(r.<.5)
52da0 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d ........r.=.5;......for.(int.i.=
52dc0 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 .0;.i.<.60;.i++).{........double
52de0 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 .ang.=.i./.60.0.*.2.*.M_PI.-.M_P
52e00 49 5f 32 3b 00 00 00 24 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 I_2;...$....int.len.=.(i.%.5.==.
52e20 30 29 20 3f 20 31 35 20 3a 20 35 3b 00 00 00 4e 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 0).?.15.:.5;...N....line(px,.a->
52e40 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 w,.a->h,.cx.+.cos(ang).*.(r.-.le
52e60 6e 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 00 00 n),.cy.+.sin(ang).*.(r.-.len),..
52e80 00 3b 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 72 2c 20 63 79 .;.........cx.+.cos(ang).*.r,.cy
52ea0 20 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 .+.sin(ang).*.r,.0xFF000000);...
52ec0 03 20 20 7d 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 ...}...4..double.sa.=.tmv.tm_sec
52ee0 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a ./.60.0.*.2.*.M_PI.-.M_PI_2;...J
52f00 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e ..double.ma.=.(tmv.tm_min.+.tmv.
52f20 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 tm_sec./.60.0)./.60.0.*.2.*.M_PI
52f40 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 4c 20 .-.M_PI_2;......double.ha.=...L.
52f60 20 20 20 20 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 2e .....((tmv.tm_hour.%.12).+.(tmv.
52f80 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 tm_min./.60.0))./.12.0.*.2.*.M_P
52fa0 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 2e 20 20 66 6f 72 20 28 64 6f 75 62 6c 65 20 66 20 3d I.-.M_PI_2;......for.(double.f.=
52fc0 20 2d 30 2e 30 34 3b 20 66 20 3c 3d 20 30 2e 30 34 3b 20 66 20 2b 3d 20 30 2e 30 31 29 00 00 00 .-0.04;.f.<=.0.04;.f.+=.0.01)...
52fe0 3c 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 <....line(px,.a->w,.a->h,.cx,.cy
53000 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2b 20 66 29 20 2a 20 72 20 2a 20 30 2e 35 2c 00 00 00 ,.cx.+.cos(ha.+.f).*.r.*.0.5,...
53020 31 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2b 20 66 29 20 2a 20 72 20 2a 1.........cy.+.sin(ha.+.f).*.r.*
53040 20 30 2e 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 2e 20 20 66 6f 72 20 28 64 6f 75 .0.5,.0xFF000000);......for.(dou
53060 62 6c 65 20 66 20 3d 20 2d 30 2e 30 32 3b 20 66 20 3c 3d 20 30 2e 30 32 3b 20 66 20 2b 3d 20 30 ble.f.=.-0.02;.f.<=.0.02;.f.+=.0
53080 2e 30 31 29 00 00 00 3d 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c .01)...=....line(px,.a->w,.a->h,
530a0 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2b 20 66 29 20 2a 20 72 20 2a 20 .cx,.cy,.cx.+.cos(ma.+.f).*.r.*.
530c0 30 2e 37 35 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2b 20 0.75,...2.........cy.+.sin(ma.+.
530e0 66 29 20 2a 20 72 20 2a 20 30 2e 37 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 50 20 f).*.r.*.0.75,.0xFF000000);...P.
53100 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 .line(px,.a->w,.a->h,.cx,.cy,.cx
53120 20 2b 20 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 38 35 2c 20 63 79 20 2b 20 73 69 6e 28 .+.cos(sa).*.r.*.0.85,.cy.+.sin(
53140 73 61 29 20 2a 20 72 20 2a 20 30 2e 38 35 2c 00 00 00 13 20 20 20 20 20 20 20 30 78 46 46 46 46 sa).*.r.*.0.85,...........0xFFFF
53160 30 30 30 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 0000);...)..wl_surface_attach(a-
53180 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 >ws,.a->buf,.0,.0);...4..wl_surf
531a0 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 ace_damage_buffer(a->ws,.0,.0,.a
531c0 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d ->w,.a->h);......wl_surface_comm
531e0 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c 73 it(a->ws);......a->redraw.=.fals
53200 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c e;....}.......Gstatic.void.xt_cl
53220 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c ose(void.*d,.struct.xdg_toplevel
53240 20 2a 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 4a 73 74 .*xt).{.running.=.0;.}.......Jst
53260 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 atic.void.xt_cfg(void.*d,.struct
53280 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e .xdg_toplevel.*xt,.int32_t.w,.in
532a0 74 33 32 5f 74 20 68 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 t32_t.h,...(...................s
532c0 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 truct.wl_array.*s).{......struct
532e0 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 .app.*a.=.d;...3..if.(w.>.0.&&.h
53300 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 .>.0.&&.(w.!=.a->w.||.h.!=.a->h)
53320 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 ).{........a->w.=.w;........a->h
53340 20 3d 20 68 3b 00 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 15 .=.h;........destroy_buf(a);....
53360 20 20 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 ....a->redraw.=.true;......}....
53380 7d 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 }.......Fstatic.void.xs_cfg(void
533a0 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e .*d,.struct.xdg_surface.*xs,.uin
533c0 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 t32_t.serial).{......struct.app.
533e0 2a 61 20 3d 20 64 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e *a.=.d;...(..xdg_surface_ack_con
53400 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 figure(xs,.serial);......a->conf
53420 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 13 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 igured.=.true;......a->redraw.=.
53440 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 true;....}.......Cstatic.void.re
53460 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 g_global(void.*d,.struct.wl_regi
53480 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 33 20 20 20 20 20 20 20 stry.*r,.uint32_t.id,...3.......
534a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c 20 75 ................const.char.*i,.u
534c0 69 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 int32_t.v).{......struct.app.*a.
534e0 3d 20 64 3b 00 00 00 22 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d =.d;..."..if.(!strcmp(i,."wl_com
53500 70 6f 73 69 74 6f 72 22 29 29 00 00 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 positor"))...C....a->comp.=.wl_r
53520 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 egistry_bind(r,.id,.&wl_composit
53540 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 20 20 20 65 6c 73 65 20 69 66 20 28 or_interface,.4);......else.if.(
53560 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 20 20 61 2d 3e !strcmp(i,."wl_shm"))...;....a->
53580 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 shm.=.wl_registry_bind(r,.id,.&w
535a0 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 l_shm_interface,.1);...'..else.i
535c0 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 f.(!strcmp(i,."xdg_wm_base")).{.
535e0 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 ..?....a->wm.=.wl_registry_bind(
53600 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 r,.id,.&xdg_wm_base_interface,.1
53620 29 3b 00 00 00 43 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 );...C....static.const.struct.xd
53640 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 g_wm_base_listener.l.=.{.ping.=.
53660 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 wm_ping};...+....xdg_wm_base_add
53680 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 _listener(a->wm,.&l,.a);......}.
536a0 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 ...}........int.main(void).{....
536c0 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d ..struct.app.a.=.{0};......a.w.=
536e0 20 34 30 30 3b 00 00 00 0c 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 .400;......a.h.=.400;......signa
53700 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c l(SIGINT,.on_sig);...!..a.d.=.wl
53720 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 0b 20 20 69 66 20 _display_connect(NULL);......if.
53740 28 21 61 2e 64 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 (!a.d)........return.1;...'..a.r
53760 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 eg.=.wl_display_get_registry(a.d
53780 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 );...G..static.const.struct.wl_r
537a0 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d egistry_listener.rl.=.{.global.=
537c0 20 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 .reg_global};...+..wl_registry_a
537e0 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c dd_listener(a.reg,.&rl,.&a);....
53800 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 21 ..wl_display_roundtrip(a.d);...!
53820 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d ..if.(!a.comp.||.!a.shm.||.!a.wm
53840 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 )........return.1;......a.ws.=.w
53860 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f l_compositor_create_surface(a.co
53880 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 mp);...1..a.xs.=.xdg_wm_base_get
538a0 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 _xdg_surface(a.wm,.a.ws);...G..s
538c0 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c tatic.const.struct.xdg_surface_l
538e0 69 73 74 65 6e 65 72 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 istener.xsl.=.{.configure.=.xs_c
53900 66 67 7d 3b 00 00 00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e fg};...+..xdg_surface_add_listen
53920 65 72 28 61 2e 78 73 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 er(a.xs,.&xsl,.&a);...(..a.xt.=.
53940 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 xdg_surface_get_toplevel(a.xs);.
53960 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 ..G..static.const.struct.xdg_top
53980 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 level_listener.xtl.=.{.configure
539a0 20 3d 20 78 74 5f 63 66 67 2c 00 00 00 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .=.xt_cfg,...F..................
539c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
539e0 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f ..close.=.xt_close};...,..xdg_to
53a00 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 plevel_add_listener(a.xt,.&xtl,.
53a20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 &a);...*..xdg_toplevel_set_title
53a40 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 (a.xt,."wlclock");......wl_surfa
53a60 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 17 20 20 77 68 69 6c 65 20 28 21 61 2e ce_commit(a.ws);......while.(!a.
53a80 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 1d 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 configured)........wl_display_di
53aa0 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 spatch(a.d);......render(&a);...
53ac0 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 9..int.tfd.=.timerfd_create(CLOC
53ae0 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 K_MONOTONIC,.TFD_CLOEXEC);...F..
53b00 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 timerfd_settime(tfd,.0,.&(struct
53b20 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 .itimerspec){{1,.0},.{1,.0}},.NU
53b40 4c 4c 29 3b 00 00 00 13 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 13 20 LL);......char.buffer[100];.....
53b60 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c 65 20 .while.(running).{...-....while.
53b80 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d (wl_display_prepare_read(a.d).!=
53ba0 20 30 29 00 00 00 27 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 .0)...'......wl_display_dispatch
53bc0 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 _pending(a.d);........wl_display
53be0 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 _flush(a.d);...M....struct.pollf
53c00 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 d.fds[2].=.{{wl_display_get_fd(a
53c20 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 .d),.POLLIN},.{tfd,.POLLIN}};...
53c40 1f 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b .....if.(poll(fds,.2,.-1).<.0).{
53c60 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 ..."......wl_display_cancel_read
53c80 28 61 2e 64 29 3b 00 00 00 0f 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 20 20 20 (a.d);..........continue;.......
53ca0 20 7d 00 00 00 20 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 .}........if.(fds[0].revents.&.P
53cc0 4f 4c 4c 49 4e 29 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f OLLIN)..."......wl_display_read_
53ce0 65 76 65 6e 74 73 28 61 2e 64 29 3b 00 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 20 20 events(a.d);........else..."....
53d00 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 ..wl_display_cancel_read(a.d);..
53d20 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e .%....wl_display_dispatch_pendin
53d40 67 28 61 2e 64 29 3b 00 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 g(a.d);..."....if.(fds[1].revent
53d60 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 s.&.POLLIN).{..........uint64_t.
53d80 74 5f 65 78 70 3b 00 00 00 27 20 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 70 t_exp;...'......read(tfd,.&t_exp
53da0 2c 20 73 69 7a 65 6f 66 28 74 5f 65 78 70 29 29 3b 00 00 00 1e 20 20 20 20 20 20 74 69 6d 65 5f ,.sizeof(t_exp));..........time_
53dc0 74 20 63 6c 69 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 20 20 73 74 72 t.cli.=.time(NULL);...,......str
53de0 75 63 74 20 74 6d 20 2a 74 5f 73 74 72 75 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c uct.tm.*t_struct.=.localtime(&cl
53e00 69 29 3b 00 00 00 49 20 20 20 20 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 i);...I......strftime(buffer,.si
53e20 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 zeof(buffer),."%d-%m-%Y.%I:%M:%S
53e40 20 25 70 22 2c 20 74 5f 73 74 72 75 63 74 29 3b 00 00 00 25 20 20 20 20 20 20 70 72 69 6e 74 66 .%p",.t_struct);...%......printf
53e60 28 22 5c 72 54 69 6d 65 20 69 73 20 25 73 22 2c 20 62 75 66 66 65 72 29 3b 00 00 00 15 20 20 20 ("\rTime.is.%s",.buffer);.......
53e80 20 20 20 66 66 6c 75 73 68 28 73 74 64 6f 75 74 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 ...fflush(stdout);..........a.re
53ea0 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 11 20 20 20 20 69 66 20 draw.=.true;........}........if.
53ec0 28 61 2e 72 65 64 72 61 77 29 00 00 00 11 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 (a.redraw)..........render(&a);.
53ee0 00 00 03 20 20 7d 00 00 00 0f 20 20 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b 00 00 00 0d 20 20 63 .....}......printf("\n");......c
53f00 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 12 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b lose(tfd);......destroy_buf(&a);
53f20 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 ......wl_display_disconnect(a.d)
53f40 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 ;......return.0;....}5..........
53f60 00 00 00 00 00 f5 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 36 1b 00 .............................6..
53f80 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 8d 00 00 00 8f 00 00 00 00 00 00 00 .............5._................
53fa0 00 00 00 00 8e 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 ................................
53fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
540a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
540c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
540e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a7 98 04 01 00 00 00 00 00 f5 18 ...................i............
54120 00 00 01 06 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 01 07 00 00 00 00 00 ....................}...........
54140 00 00 00 00 00 00 00 f5 18 00 00 00 fc 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 10 20 20 20 ................................
54160 20 20 20 61 2e 72 65 64 72 61 77 20 3d f5 18 00 00 00 fd 00 00 00 00 00 00 00 00 00 00 00 00 f5 ...a.redraw.=...................
54180 18 00 00 00 de 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 24 20 20 78 64 67 5f 74 6f 70 6c 65 ....................$..xdg_tople
541a0 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c f5 18 00 00 00 df 00 vel_set_title(a.xt,."wlcl.......
541c0 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 da 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................................
541e0 09 20 20 61 2e 78 74 20 3d 20 f5 18 00 00 00 db 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 ...a.xt.=.......................
54200 00 d4 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0e 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 ....................if.(!a.comp.
54220 f5 18 00 00 00 d5 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 b3 00 00 00 00 00 00 00 00 ................................
54240 00 00 00 01 00 00 00 42 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 .......Bstatic.void.xs_cfg(void.
54260 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 *d,.struct.xdg_surface.*xs,.uint
54280 33 32 5f 74 20 73 65 72 69 61 f5 18 00 00 00 b4 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 32_t.seria......................
542a0 00 a0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 28 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 .................(..wl_surface_a
542c0 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 f5 18 00 00 00 a1 ttach(a->ws,.a->buf,.0,.0)......
542e0 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 9a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ................................
54300 00 29 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 .)..double.ha.=.((tmv.tm_hour.%.
54320 31 32 29 20 2b 20 28 74 6d 76 2e f5 18 00 00 00 9b 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 12).+.(tmv......................
54340 00 00 8e 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 19 20 20 69 6e 74 20 63 78 20 3d 20 61 2d .....................int.cx.=.a-
54360 3e 77 20 2f 20 32 2c 20 63 79 20 3d f5 18 00 00 00 8f 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 >w./.2,.cy.=....................
54380 00 00 00 7a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 7b 00 00 00 00 00 00 ...z.....................{......
543a0 00 00 00 00 00 00 f5 18 00 00 00 6f 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0a 20 20 69 6e ...........o..................in
543c0 74 20 6d 69 6e 5f f5 18 00 00 00 70 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 4b 00 00 t.min_.....p.................K..
543e0 00 00 00 00 00 00 00 00 00 01 00 00 00 18 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f ................int.fd.=.create_
54400 73 68 6d 28 73 69 f5 18 00 00 00 4c 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 18 00 00 shm(si.....L....................
54420 00 00 00 00 00 00 00 00 00 01 00 00 00 23 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 .............#static.volatile.si
54440 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e f5 18 00 00 00 19 00 00 00 00 00 00 00 00 00 g_atomic_t.runnin...............
54460 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 ................................
54480 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...........5....................
544a0 00 00 00 18 00 00 00 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 .......#........................
544c0 00 00 00 f5 18 00 00 00 00 18 00 00 00 23 00 00 00 00 00 00 00 00 00 00 00 33 00 00 00 18 00 00 .............#...........3......
544e0 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 4b ...............................K
54500 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 24 00 00 00 0a 00 00 00 00 06 00 00 00 00 00 00 00 ...............$................
54520 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 6f 00 00 00 0a 00 00 00 00 00 00 .....................o..........
54540 00 00 00 00 00 0b 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 ................................
54560 00 00 00 00 00 f5 18 00 00 00 00 7a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 19 ...........z....................
54580 00 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 ................................
545a0 00 8e 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 29 00 00 00 00 0e 00 00 00 00 00 .....................)..........
545c0 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 9a 00 00 00 29 00 00 00 00 ...........................)....
545e0 00 00 00 00 00 00 00 06 00 00 00 28 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...........(....................
54600 02 00 00 00 00 00 00 f5 18 00 00 00 00 a0 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 13 00 00 .................(..............
54620 00 42 00 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 .B..............................
54640 00 00 00 b3 00 00 00 42 00 00 00 00 00 00 00 00 00 00 00 21 00 00 00 0e 00 00 00 00 14 00 00 00 .......B...........!............
54660 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 d4 00 00 00 0e 00 00 ................................
54680 00 00 00 00 00 00 00 00 00 06 00 00 00 09 00 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
546a0 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 da 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 04 ................................
546c0 00 00 00 24 00 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 ...$............................
546e0 18 00 00 00 00 de 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 10 00 00 00 00 1a 00 .........$......................
54700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 fc 00 00 00 10 ................................
54720 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 01 00 00 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 ................................
54740 00 00 00 91 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 8e 00 00 00 90 00 00 00 00 00 00 00 00 00 ...........5._..................
54760 00 00 8f 00 00 01 07 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 ................................
54780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
547a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
547c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
547e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
548a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
548c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a7 99 04 01 00 00 00 27 00 f5 18 00 00 .................i........'.....
548e0 00 6e 00 00 00 ae 00 00 01 07 00 00 00 31 00 00 00 6e 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 .n...........1...nstatic.void.fi
54900 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 ll_tri(uint32_t.*px,.int.w,.int.
54920 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 h,.int.x0,.int.y0,.int.x1,.int.y
54940 31 2c 20 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 1,.int.x2,.int.y2,.uint32_t.c).{
54960 00 00 00 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 ...B..int.min_y.=.y0.<.y1.?.(y0.
54980 3c 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 <.y2.?.y0.:.y2).:.(y1.<.y2.?.y1.
549a0 3a 20 79 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 :.y2);...B..int.max_y.=.y0.>.y1.
549c0 3f 20 28 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 ?.(y0.>.y2.?.y0.:.y2).:.(y1.>.y2
549e0 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 1b 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 .?.y1.:.y2);......if.(min_y.<.0)
54a00 20 6d 69 6e 5f 79 20 3d 20 30 3b 00 00 00 20 20 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 .min_y.=.0;......if.(max_y.>=.h)
54a20 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 .max_y.=.h.-.1;...(..for.(int.y.
54a40 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 =.min_y;.y.<=.max_y;.y++).{.....
54a60 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 ...int.x_start.=.w,.x_end.=.0;..
54a80 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 .3....int.xs[3].=.{x0,.x1,.x2},.
54aa0 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 21 20 20 20 20 66 6f 72 ys[3].=.{y0,.y1,.y2};...!....for
54ac0 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 .(int.i.=.0;.i.<.3;.i++).{......
54ae0 20 20 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 ....int.j.=.(i.+.1).%.3;...C....
54b00 20 20 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 ..if.((ys[i].<=.y.&&.ys[j].>.y).
54b20 7c 7c 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 ||.(ys[j].<=.y.&&.ys[i].>.y)).{.
54b40 00 00 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 ..H........int.x.=.xs[i].+.(y.-.
54b60 79 73 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a ys[i]).*.(xs[j].-.xs[i])./.(ys[j
54b80 5d 20 2d 20 79 73 5b 69 5d 29 3b 00 00 00 25 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 ].-.ys[i]);...%........if.(x.<.x
54ba0 5f 73 74 61 72 74 29 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 00 00 21 20 20 20 20 20 20 20 20 _start).x_start.=.x;...!........
54bc0 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 07 20 20 20 if.(x.>.x_end).x_end.=.x;.......
54be0 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 74 ...}........}...!....if.(x_start
54c00 20 3c 20 30 29 20 78 5f 73 74 61 72 74 20 3d 20 30 3b 00 00 00 22 20 20 20 20 69 66 20 28 78 5f .<.0).x_start.=.0;..."....if.(x_
54c20 65 6e 64 20 3e 3d 20 77 29 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 3d 20 20 20 20 end.>=.w).x_end.=.w.-.1;...=....
54c40 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 for.(int.x.=.x_start;.x.<=.x_end
54c60 3b 20 78 2b 2b 29 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 03 20 20 7d ;.x++).px[y.*.w.+.x].=.c;......}
54c80 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 ....}.......#static.void.render(
54ca0 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f struct.app.*a).{.../..if.(!a->co
54cc0 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d nfigured.||.a->w.<=.0.||.a->h.<=
54ce0 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e .0)........return;......if.(!a->
54d00 62 75 66 29 00 00 00 11 20 20 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 buf)........alloc_buf(a);......u
54d20 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 24 20 20 6d 65 int32_t.*px.=.a->pixels;...$..me
54d40 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b mset(px,.0xFF,.a->w.*.a->h.*.4);
54d60 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 ......time_t.tt.=.time(NULL);...
54d80 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 ...struct.tm.tmv;......localtime
54da0 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e _r(&tt,.&tmv);...#..int.cx.=.a->
54dc0 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 w./.2,.cy.=.a->h./.2;.../..int.r
54de0 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f .=.(a->w.<.a->h.?.a->w.:.a->h)./
54e00 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 .2.-.10;......if.(r.<.5)........
54e20 72 20 3d 20 35 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 r.=.5;......for.(int.i.=.0;.i.<.
54e40 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 60;.i++).{........double.ang.=.i
54e60 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 24 ./.60.0.*.2.*.M_PI.-.M_PI_2;...$
54e80 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 31 35 20 ....int.len.=.(i.%.5.==.0).?.15.
54ea0 3a 20 35 3b 00 00 00 4e 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c :.5;...N....line(px,.a->w,.a->h,
54ec0 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 20 63 79 20 2b .cx.+.cos(ang).*.(r.-.len),.cy.+
54ee0 20 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 00 00 00 3b 20 20 20 20 20 20 .sin(ang).*.(r.-.len),...;......
54f00 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 ...cx.+.cos(ang).*.r,.cy.+.sin(a
54f20 6e 67 29 20 2a 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 34 ng).*.r,.0xFF000000);......}...4
54f40 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 ..double.sa.=.tmv.tm_sec./.60.0.
54f60 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 6c 65 *.2.*.M_PI.-.M_PI_2;...J..double
54f80 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f .ma.=.(tmv.tm_min.+.tmv.tm_sec./
54fa0 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f .60.0)./.60.0.*.2.*.M_PI.-.M_PI_
54fc0 32 3b 00 00 00 54 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 2;...T..double.ha.=.((tmv.tm_hou
54fe0 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f r.%.12).+.(tmv.tm_min./.60.0))./
55000 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 02 20 20 .12.0.*.2.*.M_PI.-.M_PI_2;......
55020 00 00 00 a3 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 ......fill_tri(px,.a->w,.a->h,.c
55040 78 20 2b 20 63 6f 73 28 68 61 2d 30 2e 31 29 2a 31 30 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 2d x.+.cos(ha-0.1)*10,.cy.+.sin(ha-
55060 30 2e 31 29 2a 31 30 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 2b 30 2e 31 29 2a 31 30 2c 20 63 79 0.1)*10,.cx.+.cos(ha+0.1)*10,.cy
55080 20 2b 20 73 69 6e 28 68 61 2b 30 2e 31 29 2a 31 30 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 29 2a .+.sin(ha+0.1)*10,.cx.+.cos(ha)*
550a0 72 2a 30 2e 35 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 29 2a 72 2a 30 2e 35 2c 20 30 78 46 46 30 r*0.5,.cy.+.sin(ha)*r*0.5,.0xFF0
550c0 30 30 30 30 30 29 3b 00 00 00 a5 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 00000);......fill_tri(px,.a->w,.
550e0 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 2d 30 2e 30 36 29 2a 38 2c 20 63 79 20 2b 20 a->h,.cx.+.cos(ma-0.06)*8,.cy.+.
55100 73 69 6e 28 6d 61 2d 30 2e 30 36 29 2a 38 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 2b 30 2e 30 36 sin(ma-0.06)*8,.cx.+.cos(ma+0.06
55120 29 2a 38 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 2b 30 2e 30 36 29 2a 38 2c 20 63 78 20 2b 20 63 )*8,.cy.+.sin(ma+0.06)*8,.cx.+.c
55140 6f 73 28 6d 61 29 2a 72 2a 30 2e 37 35 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 2a 72 2a 30 2e os(ma)*r*0.75,.cy.+.sin(ma)*r*0.
55160 37 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 5d 20 20 6c 69 6e 65 28 70 78 2c 20 61 75,.0xFF000000);...]..line(px,.a
55180 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 29 20 ->w,.a->h,.cx,.cy,.cx.+.cos(sa).
551a0 2a 20 72 20 2a 20 30 2e 38 35 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 *.r.*.0.85,.cy.+.sin(sa).*.r.*.0
551c0 2e 38 35 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 35 81 f5 18 00 00 00 00 6e 00 00 00 50 00 00 .85,.0xFFFF0000);5.......n...P..
551e0 00 30 00 00 00 50 00 00 00 3e 00 00 00 06 00 00 00 d7 09 00 00 00 00 00 00 f2 07 00 00 00 00 00 .0...P...>......................
55200 00 9c 08 00 00 00 00 00 00 35 81 5f d0 00 00 00 8f 00 00 00 91 00 00 00 00 00 00 00 00 00 00 00 .........5._....................
55220 90 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
552a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
552c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
552e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a7 ce 04 01 00 00 00 00 00 f5 18 00 00 00 00 ...............i................
553a0 00 00 00 02 00 00 00 00 00 00 01 15 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 ................#define._POSIX_C
553c0 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 _SOURCE.200809L...&#include."xdg
553e0 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e -shell-client-protocol.h"....#in
55400 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 clude.<fcntl.h>....#include.<mat
55420 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e h.h>....#include.<poll.h>....#in
55440 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 clude.<signal.h>....#include.<st
55460 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e 00 dbool.h>....#include.<stdint.h>.
55480 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 ...#include.<stdio.h>....#includ
554a0 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 e.<stdlib.h>....#include.<string
554c0 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 .h>....#include.<sys/mman.h>....
554e0 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 #include.<sys/timerfd.h>....#inc
55500 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 lude.<time.h>....#include.<unist
55520 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 d.h>....#include.<wayland-client
55540 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 .h>........#ifndef.M_PI...##defi
55560 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 ne.M_PI.3.14159265358979323846..
55580 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 ..#endif....#ifndef.M_PI_2...%#d
555a0 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 efine.M_PI_2.1.57079632679489661
555c0 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 923....#endif.......)static.vola
555e0 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 tile.sig_atomic_t.running.=.1;..
55600 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 ..static.void.on_sig(int.s).{...
55620 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 ...(void)s;......running.=.0;...
55640 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 .}........struct.app.{......stru
55660 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c ct.wl_display.*d;......struct.wl
55680 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 _registry.*reg;......struct.wl_c
556a0 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f ompositor.*comp;......struct.wl_
556c0 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 shm.*shm;......struct.xdg_wm_bas
556e0 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 e.*wm;......struct.wl_surface.*w
55700 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 s;......struct.xdg_surface.*xs;.
55720 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 .....struct.xdg_toplevel.*xt;...
55740 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f ...void.*pixels;......struct.wl_
55760 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 buffer.*buf;......int.w,.h;.....
55780 20 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 .int.bw,.bh;......bool.configure
557a0 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 d;......bool.redraw;....};......
557c0 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 .Jstatic.void.wm_ping(void.*data
557e0 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 ,.struct.xdg_wm_base.*wm,.uint32
55800 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f _t.serial).{......xdg_wm_base_po
55820 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 ng(wm,.serial);....}.......$stat
55840 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b ic.int.create_shm(size_t.size).{
55860 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 ...#..char.t[].=."/tmp/wlclock-X
55880 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 XXXXX";......int.fd.=.mkstemp(t)
558a0 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 ;......if.(fd.<.0)........exit(1
558c0 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 1e 20 20 69 66 20 28 66 74 72 75 );......unlink(t);......if.(ftru
558e0 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 ncate(fd,.size).<.0)........exit
55900 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 (1);......return.fd;....}.......
55920 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 (static.void.destroy_buf(struct.
55940 61 70 70 20 2a 61 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 0b 20 app.*a).{......if.(!a->buf).....
55960 20 20 20 72 65 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 ...return;...*..size_t.size.=.(s
55980 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 6c ize_t)a->bw.*.a->bh.*.4;......wl
559a0 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 _buffer_destroy(a->buf);......mu
559c0 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d 3e 62 nmap(a->pixels,.size);......a->b
559e0 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c uf.=.NULL;......a->pixels.=.NULL
55a00 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f ;....}.......&static.void.alloc_
55a20 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 6f buf(struct.app.*a).{......destro
55a40 79 5f 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 y_buf(a);...(..size_t.size.=.(si
55a60 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 ze_t)a->w.*.a->h.*.4;......int.f
55a80 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 d.=.create_shm(size);...J..a->pi
55aa0 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 xels.=.mmap(NULL,.size,.PROT_REA
55ac0 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 D.|.PROT_WRITE,.MAP_SHARED,.fd,.
55ae0 30 29 3b 00 00 00 1e 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 0);......if.(a->pixels.==.MAP_FA
55b00 49 4c 45 44 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 ILED)........exit(1);...B..struc
55b20 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 t.wl_shm_pool.*pool.=.wl_shm_cre
55b40 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 43 20 ate_pool(a->shm,.fd,.size);...C.
55b60 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 .a->buf.=.wl_shm_pool_create_buf
55b80 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 fer(pool,.0,.a->w,.a->h,.a->w.*.
55ba0 34 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4,...=..........................
55bc0 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 ...........WL_SHM_FORMAT_ARGB888
55be0 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 8);......wl_shm_pool_destroy(poo
55c00 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0f 20 20 61 2d 3e 62 77 20 3d l);......close(fd);......a->bw.=
55c20 20 61 2d 3e 77 3b 00 00 00 0f 20 20 61 2d 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 00 .a->w;......a->bh.=.a->h;....}..
55c40 00 00 00 00 00 4c 73 74 61 74 69 63 20 76 6f 69 64 20 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 .....Lstatic.void.line(uint32_t.
55c60 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 *px,.int.w,.int.h,.int.x0,.int.y
55c80 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 1e 20 20 20 20 20 20 20 20 20 20 0,.int.x1,.int.y1,..............
55ca0 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 .......uint32_t.c).{.../..int.dx
55cc0 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 .=.abs(x1.-.x0),.sx.=.x0.<.x1.?.
55ce0 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 1.:.-1;...0..int.dy.=.-abs(y1.-.
55d00 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 14 20 y0),.sy.=.y0.<.y1.?.1.:.-1;.....
55d20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 .int.err.=.dx.+.dy;......while.(
55d40 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 1).{.../....if.(x0.>=.0.&&.x0.<.
55d60 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 1a 20 20 20 20 20 w.&&.y0.>=.0.&&.y0.<.h).........
55d80 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 1d 20 20 20 20 69 66 20 .px[y0.*.w.+.x0].=.c;........if.
55da0 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 20 (x0.==.x1.&&.y0.==.y1)..........
55dc0 62 72 65 61 6b 3b 00 00 00 15 20 20 20 20 69 6e 74 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 break;........int.e2.=.2.*.err;.
55de0 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 .......if.(e2.>=.dy).{..........
55e00 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 err.+=.dy;..........x0.+=.sx;...
55e20 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 .....}........if.(e2.<=.dx).{...
55e40 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 20 20 20 20 79 30 20 2b 3d .......err.+=.dx;..........y0.+=
55e60 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 .sy;........}......}....}.......
55e80 50 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a Pstatic.void.fill_tri(uint32_t.*
55ea0 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 px,.int.w,.int.h,.int.x0,.int.y0
55ec0 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 ,.int.x1,.int.y1,...2...........
55ee0 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 ..........int.x2,.int.y2,.uint32
55f00 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 _t.c).{...B..int.min_y.=.y0.<.y1
55f20 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 .?.(y0.<.y2.?.y0.:.y2).:.(y1.<.y
55f40 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 2.?.y1.:.y2);...B..int.max_y.=.y
55f60 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 0.>.y1.?.(y0.>.y2.?.y0.:.y2).:.(
55f80 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 10 20 20 69 66 20 28 6d 69 6e y1.>.y2.?.y1.:.y2);......if.(min
55fa0 5f 79 20 3c 20 30 29 00 00 00 0e 20 20 20 20 6d 69 6e 5f 79 20 3d 20 30 3b 00 00 00 11 20 20 69 _y.<.0)........min_y.=.0;......i
55fc0 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 00 00 00 12 20 20 20 20 6d 61 78 5f 79 20 3d 20 68 20 f.(max_y.>=.h)........max_y.=.h.
55fe0 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 -.1;...(..for.(int.y.=.min_y;.y.
56000 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 <=.max_y;.y++).{........int.x_st
56020 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 art.=.w,.x_end.=.0;...3....int.x
56040 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 s[3].=.{x0,.x1,.x2},.ys[3].=.{y0
56060 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 ,.y1,.y2};...!....for.(int.i.=.0
56080 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d ;.i.<.3;.i++).{..........int.j.=
560a0 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 .(i.+.1).%.3;...C......if.((ys[i
560c0 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c ].<=.y.&&.ys[j].>.y).||.(ys[j].<
560e0 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 48 20 20 20 20 20 20 20 20 =.y.&&.ys[i].>.y)).{...H........
56100 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 int.x.=.xs[i].+.(y.-.ys[i]).*.(x
56120 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b s[j].-.xs[i])./.(ys[j].-.ys[i]);
56140 00 00 00 18 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 74 61 72 74 29 00 00 00 16 ............if.(x.<.x_start)....
56160 20 20 20 20 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 00 00 16 20 20 20 20 20 20 ..........x_start.=.x;..........
56180 20 20 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 00 00 00 14 20 20 20 20 20 20 20 20 20 20 78 5f ..if.(x.>.x_end)..............x_
561a0 65 6e 64 20 3d 20 78 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 14 end.=.x;..........}........}....
561c0 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 74 20 3c 20 30 29 00 00 00 12 20 20 20 20 20 20 78 5f ....if.(x_start.<.0)..........x_
561e0 73 74 61 72 74 20 3d 20 30 3b 00 00 00 13 20 20 20 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 start.=.0;........if.(x_end.>=.w
56200 29 00 00 00 14 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 2a 20 20 20 )..........x_end.=.w.-.1;...*...
56220 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e .for.(int.x.=.x_start;.x.<=.x_en
56240 64 3b 20 78 2b 2b 29 00 00 00 18 20 20 20 20 20 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d d;.x++)..........px[y.*.w.+.x].=
56260 20 63 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f .c;......}....}.......#static.vo
56280 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 id.render(struct.app.*a).{.../..
562a0 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 if.(!a->configured.||.a->w.<=.0.
562c0 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e ||.a->h.<=.0)........return;....
562e0 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 20 61 6c 6c 6f 63 5f 62 75 66 28 ..if.(!a->buf)........alloc_buf(
56300 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c a);......uint32_t.*px.=.a->pixel
56320 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 s;...$..memset(px,.0xFF,.a->w.*.
56340 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 a->h.*.4);......time_t.tt.=.time
56360 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 (NULL);......struct.tm.tmv;.....
56380 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e .localtime_r(&tt,.&tmv);...#..in
563a0 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 t.cx.=.a->w./.2,.cy.=.a->h./.2;.
563c0 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 ../..int.r.=.(a->w.<.a->h.?.a->w
563e0 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 66 20 28 72 20 3c 20 .:.a->h)./.2.-.10;......if.(r.<.
56400 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 5)........r.=.5;......for.(int.i
56420 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 .=.0;.i.<.60;.i++).{........doub
56440 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d le.ang.=.i./.60.0.*.2.*.M_PI.-.M
56460 5f 50 49 5f 32 3b 00 00 00 24 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d _PI_2;...$....int.len.=.(i.%.5.=
56480 3d 20 30 29 20 3f 20 31 35 20 3a 20 35 3b 00 00 00 4e 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 =.0).?.15.:.5;...N....line(px,.a
564a0 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 ->w,.a->h,.cx.+.cos(ang).*.(r.-.
564c0 6c 65 6e 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c len),.cy.+.sin(ang).*.(r.-.len),
564e0 00 00 00 3b 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 72 2c 20 ...;.........cx.+.cos(ang).*.r,.
56500 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 cy.+.sin(ang).*.r,.0xFF000000);.
56520 00 00 03 20 20 7d 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 .....}...4..double.sa.=.tmv.tm_s
56540 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 ec./.60.0.*.2.*.M_PI.-.M_PI_2;..
56560 00 4a 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d .J..double.ma.=.(tmv.tm_min.+.tm
56580 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f v.tm_sec./.60.0)./.60.0.*.2.*.M_
565a0 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 PI.-.M_PI_2;......double.ha.=...
565c0 4c 20 20 20 20 20 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d L......((tmv.tm_hour.%.12).+.(tm
565e0 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d v.tm_min./.60.0))./.12.0.*.2.*.M
56600 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 4c 20 20 66 69 6c 6c 5f 74 72 69 28 _PI.-.M_PI_2;.......L..fill_tri(
56620 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2d 20 30 2e px,.a->w,.a->h,.cx.+.cos(ha.-.0.
56640 31 29 20 2a 20 31 30 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2d 20 30 2e 31 29 20 2a 20 31 30 1).*.10,.cy.+.sin(ha.-.0.1).*.10
56660 2c 00 00 00 3c 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2b 20 30 2e ,...<...........cx.+.cos(ha.+.0.
56680 31 29 20 2a 20 31 30 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2b 20 30 2e 31 29 20 2a 20 31 30 1).*.10,.cy.+.sin(ha.+.0.1).*.10
566a0 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 2a 20 72 ,...G...........cx.+.cos(ha).*.r
566c0 20 2a 20 30 2e 35 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 2c 20 .*.0.5,.cy.+.sin(ha).*.r.*.0.5,.
566e0 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 4c 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 0xFF000000);...L..fill_tri(px,.a
56700 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2d 20 30 2e 30 36 29 20 2a ->w,.a->h,.cx.+.cos(ma.-.0.06).*
56720 20 38 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2d 20 30 2e 30 36 29 20 2a 20 38 2c 00 00 00 3c .8,.cy.+.sin(ma.-.0.06).*.8,...<
56740 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2b 20 30 2e 30 36 29 20 2a ...........cx.+.cos(ma.+.0.06).*
56760 20 38 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2b 20 30 2e 30 36 29 20 2a 20 38 2c 00 00 00 49 .8,.cy.+.sin(ma.+.0.06).*.8,...I
56780 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e ...........cx.+.cos(ma).*.r.*.0.
567a0 37 35 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 35 2c 20 30 78 46 75,.cy.+.sin(ma).*.r.*.0.75,.0xF
567c0 46 30 30 30 30 30 30 29 3b 00 00 00 50 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d F000000);...P..line(px,.a->w,.a-
567e0 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 >h,.cx,.cy,.cx.+.cos(sa).*.r.*.0
56800 2e 38 35 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 38 35 2c 00 00 00 .85,.cy.+.sin(sa).*.r.*.0.85,...
56820 13 20 20 20 20 20 20 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 00 00 00 00 29 20 20 77 6c ........0xFFFF0000);.......)..wl
56840 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 _surface_attach(a->ws,.a->buf,.0
56860 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 ,.0);...4..wl_surface_damage_buf
56880 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 fer(a->ws,.0,.0,.a->w,.a->h);...
568a0 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 14 ...wl_surface_commit(a->ws);....
568c0 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 ..a->redraw.=.false;....}.......
568e0 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 Gstatic.void.xt_close(void.*d,.s
56900 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 72 75 6e 6e 69 6e truct.xdg_toplevel.*xt).{.runnin
56920 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 g.=.0;.}.......Jstatic.void.xt_c
56940 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 fg(void.*d,.struct.xdg_toplevel.
56960 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 28 20 20 *xt,.int32_t.w,.int32_t.h,...(..
56980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 .................struct.wl_array
569a0 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 .*s).{......struct.app.*a.=.d;..
569c0 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 .3..if.(w.>.0.&&.h.>.0.&&.(w.!=.
569e0 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e a->w.||.h.!=.a->h)).{........a->
56a00 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 13 20 20 20 20 64 w.=.w;........a->h.=.h;........d
56a20 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 15 20 20 20 20 61 2d 3e 72 65 64 72 61 77 20 estroy_buf(a);........a->redraw.
56a40 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 46 73 74 61 74 69 =.true;......}....}.......Fstati
56a60 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 c.void.xs_cfg(void.*d,.struct.xd
56a80 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 g_surface.*xs,.uint32_t.serial).
56aa0 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 28 20 20 78 {......struct.app.*a.=.d;...(..x
56ac0 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 dg_surface_ack_configure(xs,.ser
56ae0 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b ial);......a->configured.=.true;
56b00 00 00 00 13 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 ......a->redraw.=.true;....}....
56b20 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 20 ...Cstatic.void.reg_global(void.
56b40 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 *d,.struct.wl_registry.*r,.uint3
56b60 32 5f 74 20 69 64 2c 00 00 00 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2_t.id,...3.....................
56b80 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c 20 75 69 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 ..const.char.*i,.uint32_t.v).{..
56ba0 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 22 20 20 69 66 20 28 ....struct.app.*a.=.d;..."..if.(
56bc0 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 43 !strcmp(i,."wl_compositor"))...C
56be0 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 ....a->comp.=.wl_registry_bind(r
56c00 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 ,.id,.&wl_compositor_interface,.
56c20 34 29 3b 00 00 00 20 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 4);......else.if.(!strcmp(i,."wl
56c40 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 _shm"))...;....a->shm.=.wl_regis
56c60 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 try_bind(r,.id,.&wl_shm_interfac
56c80 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 e,.1);...'..else.if.(!strcmp(i,.
56ca0 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d "xdg_wm_base")).{...?....a->wm.=
56cc0 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d .wl_registry_bind(r,.id,.&xdg_wm
56ce0 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 73 74 61 74 _base_interface,.1);...C....stat
56d00 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 ic.const.struct.xdg_wm_base_list
56d20 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 ener.l.=.{.ping.=.wm_ping};...+.
56d40 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 ...xdg_wm_base_add_listener(a->w
56d60 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e m,.&l,.a);......}....}........in
56d80 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 73 74 72 75 63 74 20 61 70 70 20 61 t.main(void).{......struct.app.a
56da0 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d 20 34 30 30 3b 00 00 00 0c 20 20 61 2e 68 .=.{0};......a.w.=.400;......a.h
56dc0 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 .=.400;......signal(SIGINT,.on_s
56de0 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 ig);...!..a.d.=.wl_display_conne
56e00 63 74 28 4e 55 4c 4c 29 3b 00 00 00 0b 20 20 69 66 20 28 21 61 2e 64 29 00 00 00 0d 20 20 20 20 ct(NULL);......if.(!a.d)........
56e20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 return.1;...'..a.reg.=.wl_displa
56e40 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 y_get_registry(a.d);...G..static
56e60 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e .const.struct.wl_registry_listen
56e80 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 er.rl.=.{.global.=.reg_global};.
56ea0 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e ..+..wl_registry_add_listener(a.
56ec0 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 reg,.&rl,.&a);......wl_display_r
56ee0 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 21 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 oundtrip(a.d);...!..if.(!a.comp.
56f00 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 ||.!a.shm.||.!a.wm)........retur
56f20 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 n.1;......a.ws.=.wl_compositor_c
56f40 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 reate_surface(a.comp);...1..a.xs
56f60 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 .=.xdg_wm_base_get_xdg_surface(a
56f80 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 .wm,.a.ws);...G..static.const.st
56fa0 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 6c 20 3d 20 ruct.xdg_surface_listener.xsl.=.
56fc0 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 2b 20 20 78 64 67 5f {.configure.=.xs_cfg};...+..xdg_
56fe0 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 6c 2c surface_add_listener(a.xs,.&xsl,
57000 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 .&a);...(..a.xt.=.xdg_surface_ge
57020 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f t_toplevel(a.xs);...G..static.co
57040 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 nst.struct.xdg_toplevel_listener
57060 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 00 00 00 46 .xtl.=.{.configure.=.xt_cfg,...F
57080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
570a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 ....................close.=.xt_c
570c0 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 lose};...,..xdg_toplevel_add_lis
570e0 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f tener(a.xt,.&xtl,.&a);...*..xdg_
57100 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 toplevel_set_title(a.xt,."wlcloc
57120 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 k");......wl_surface_commit(a.ws
57140 29 3b 00 00 00 17 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 );......while.(!a.configured)...
57160 1d 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 .....wl_display_dispatch(a.d);..
57180 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 ....render(&a);...9..int.tfd.=.t
571a0 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 imerfd_create(CLOCK_MONOTONIC,.T
571c0 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d FD_CLOEXEC);...F..timerfd_settim
571e0 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b e(tfd,.0,.&(struct.itimerspec){{
57200 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 20 20 63 68 61 72 1,.0},.{1,.0}},.NULL);......char
57220 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e .buffer[100];......while.(runnin
57240 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 g).{...-....while.(wl_display_pr
57260 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 00 00 00 27 20 20 20 20 20 20 77 epare_read(a.d).!=.0)...'......w
57280 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b l_display_dispatch_pending(a.d);
572a0 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 ........wl_display_flush(a.d);..
572c0 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 .M....struct.pollfd.fds[2].=.{{w
572e0 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 l_display_get_fd(a.d),.POLLIN},.
57300 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1f 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 {tfd,.POLLIN}};........if.(poll(
57320 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 fds,.2,.-1).<.0).{..."......wl_d
57340 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 0f 20 20 20 20 isplay_cancel_read(a.d);........
57360 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 20 20 20 20 20 69 66 20 28 ..continue;........}........if.(
57380 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 22 20 20 20 20 fds[0].revents.&.POLLIN)..."....
573a0 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 00 00 ..wl_display_read_events(a.d);..
573c0 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 ......else..."......wl_display_c
573e0 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c ancel_read(a.d);...%....wl_displ
57400 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 20 20 ay_dispatch_pending(a.d);..."...
57420 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 .if.(fds[1].revents.&.POLLIN).{.
57440 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 5f 65 78 70 3b 00 00 00 27 20 20 20 20 .........uint64_t.t_exp;...'....
57460 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 78 70 ..read(tfd,.&t_exp,.sizeof(t_exp
57480 29 29 3b 00 00 00 1e 20 20 20 20 20 20 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 28 4e ));..........time_t.cli.=.time(N
574a0 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 5f 73 74 72 75 ULL);...,......struct.tm.*t_stru
574c0 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 3b 00 00 00 49 20 20 20 20 20 20 73 ct.=.localtime(&cli);...I......s
574e0 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 trftime(buffer,.sizeof(buffer),.
57500 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c 20 74 5f 73 74 72 75 63 74 "%d-%m-%Y.%I:%M:%S.%p",.t_struct
57520 29 3b 00 00 00 25 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 73 );...%......printf("\rTime.is.%s
57540 22 2c 20 62 75 66 66 65 72 29 3b 00 00 00 15 20 20 20 20 20 20 66 66 6c 75 73 68 28 73 74 64 6f ",.buffer);..........fflush(stdo
57560 75 74 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 ut);..........a.redraw.=.true;..
57580 00 05 20 20 20 20 7d 00 00 00 11 20 20 20 20 69 66 20 28 61 2e 72 65 64 72 61 77 29 00 00 00 11 ......}........if.(a.redraw)....
575a0 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 0f 20 20 70 72 ......render(&a);......}......pr
575c0 69 6e 74 66 28 22 5c 6e 22 29 3b 00 00 00 0d 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 12 intf("\n");......close(tfd);....
575e0 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c ..destroy_buf(&a);......wl_displ
57600 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 ay_disconnect(a.d);......return.
57620 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 15 01 00 00 00 00 00 00 01 0;....}5........................
57640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 1f 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 ...............<...............5
57660 81 5f d0 00 00 00 90 00 00 00 92 00 00 00 00 00 00 00 00 00 00 00 91 00 00 00 01 00 00 00 00 00 ._..............................
57680 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
576a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
576c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
576e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
577a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
577c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
577e0 00 00 00 00 00 69 9d a7 ce 04 01 00 00 00 00 00 f5 18 00 00 01 1a 00 00 00 00 00 00 00 00 00 00 .....i..........................
57800 00 01 00 00 00 01 7d f5 18 00 00 01 1b 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 14 00 ......}.........................
57820 00 00 00 00 00 00 00 00 00 00 01 00 00 00 03 20 20 7d f5 18 00 00 01 15 00 00 00 00 00 00 00 00 .................}..............
57840 00 00 00 00 f5 18 00 00 01 0b 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 16 20 20 20 20 20 20 ................................
57860 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d f5 18 00 00 01 0c 00 00 00 00 00 00 00 00 00 00 time_t.cli.=.tim................
57880 00 00 f5 18 00 00 00 f4 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 12 20 20 77 68 69 6c 65 20 ..........................while.
578a0 28 21 61 2e 63 6f 6e 66 69 67 f5 18 00 00 00 f5 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 (!a.config......................
578c0 00 ea 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 12 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f ....................a.ws.=.wl_co
578e0 6d 70 6f 73 f5 18 00 00 00 eb 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 d7 00 00 00 00 mpos............................
57900 00 00 00 00 00 00 00 01 00 00 00 09 20 20 20 20 73 74 61 74 69 f5 18 00 00 00 d8 00 00 00 00 00 ................stati...........
57920 00 00 00 00 00 00 00 f5 18 00 00 00 b5 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 32 20 20 77 ............................2..w
57940 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 l_surface_damage_buffer(a->ws,.0
57960 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 f5 18 00 00 00 b6 00 00 00 00 00 00 00 00 00 00 00 ,.0,.a->w,.a->h.................
57980 00 f5 18 00 00 00 84 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1d 20 20 69 66 20 28 6d 61 78 .........................if.(max
579a0 5f 79 20 3e 3d 20 68 29 20 6d 61 78 5f 79 20 3d 20 68 20 2d f5 18 00 00 00 85 00 00 00 00 00 00 _y.>=.h).max_y.=.h.-............
579c0 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 ................................
579e0 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..............5.................
57a00 00 00 00 00 00 00 84 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d ................................
57a20 00 00 00 00 00 00 f5 18 00 00 00 00 84 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 31 00 00 00 ............................1...
57a40 32 00 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 f5 18 00 00 2...............................
57a60 00 00 b5 00 00 00 32 00 00 00 00 00 00 00 00 00 00 00 22 00 00 00 09 00 00 00 00 15 00 00 00 00 ......2...........".............
57a80 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 d7 00 00 00 09 00 00 00 ................................
57aa0 00 00 00 00 00 00 00 00 13 00 00 00 12 00 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57ac0 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 ea 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 0a 00 ................................
57ae0 00 00 12 00 00 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 ................................
57b00 00 00 00 00 f4 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 17 00 00 00 16 00 00 00 00 1d 00 00 ................................
57b20 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 0b 01 00 00 16 00 ................................
57b40 00 00 00 00 00 00 00 00 00 00 09 00 00 00 03 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57b60 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 14 01 00 00 03 00 00 00 00 00 00 00 00 00 00 00 ................................
57b80 06 00 00 00 01 00 00 00 00 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5d 00 00 00 00 00 00 00 .........!..............].......
57ba0 35 81 5f d0 00 00 00 91 00 00 00 93 00 00 00 00 00 00 00 00 00 00 00 92 00 00 01 1b 00 00 00 00 5._.............................
57bc0 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57d20 00 00 00 00 00 00 69 9d a7 cf 04 01 00 00 00 29 00 f5 18 00 00 00 6e 00 00 00 c3 00 00 01 1b 00 ......i........)......n.........
57d40 00 00 44 00 00 00 53 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 ..D...Sstatic.void.circle(uint32
57d60 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e _t.*px,.int.w,.int.h,.int.cx,.in
57d80 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 t.cy,.int.r,.uint32_t.c).{..."..
57da0 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b int.x.=.0,.y.=.r,.d.=.3.-.2.*.r;
57dc0 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e ......while.(y.>=.x).{...H....in
57de0 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b t.p[8][2].=.{{cx.+.x,.cy.+.y},.{
57e00 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 cx.-.x,.cy.+.y},.{cx.+.x,.cy.-.y
57e20 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 },...H...................{cx.-.x
57e40 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 ,.cy.-.y},.{cx.+.y,.cy.+.x},.{cx
57e60 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .-.y,.cy.+.x},...7..............
57e80 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 .....{cx.+.y,.cy.-.x},.{cx.-.y,.
57ea0 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b cy.-.x}};........for.(int.i.=.0;
57ec0 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 .i.<.8;.i++)...E......if.(p[i][0
57ee0 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d ].>=.0.&&.p[i][0].<.w.&&.p[i][1]
57f00 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 .>=.0.&&.p[i][1].<.h)...&.......
57f20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 .px[p[i][1].*.w.+.p[i][0]].=.c;.
57f40 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b .......if.(d.>.0).{..........d.+
57f60 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d =.4.*.(x.-.y).+.10;..........y--
57f80 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 ;........}.else..........d.+=.4.
57fa0 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d *.x.+.6;........x++;......}....}
57fc0 00 00 00 00 00 00 00 6e 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e .......nstatic.void.fill_tri(uin
57fe0 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c t32_t.*px,.int.w,.int.h,.int.x0,
58000 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 69 6e 74 20 78 32 2c .int.y0,.int.x1,.int.y1,.int.x2,
58020 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 6e 74 20 .int.y2,.uint32_t.c).{...B..int.
58040 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 79 30 20 min_y.=.y0.<.y1.?.(y0.<.y2.?.y0.
58060 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 42 :.y2).:.(y1.<.y2.?.y1.:.y2);...B
58080 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e 20 79 32 ..int.max_y.=.y0.>.y1.?.(y0.>.y2
580a0 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 32 .?.y0.:.y2).:.(y1.>.y2.?.y1.:.y2
580c0 29 3b 00 00 00 1b 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 20 6d 69 6e 5f 79 20 3d 20 30 );......if.(min_y.<.0).min_y.=.0
580e0 3b 00 00 00 20 20 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 20 6d 61 78 5f 79 20 3d 20 68 ;......if.(max_y.>=.h).max_y.=.h
58100 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 .-.1;...(..for.(int.y.=.min_y;.y
58120 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 .<=.max_y;.y++).{........int.x_s
58140 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 tart.=.w,.x_end.=.0;...3....int.
58160 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 xs[3].=.{x0,.x1,.x2},.ys[3].=.{y
58180 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 0,.y1,.y2};...!....for.(int.i.=.
581a0 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 0;.i.<.3;.i++).{..........int.j.
581c0 3d 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b =.(i.+.1).%.3;...C......if.((ys[
581e0 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 i].<=.y.&&.ys[j].>.y).||.(ys[j].
58200 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 48 20 20 20 20 20 20 20 <=.y.&&.ys[i].>.y)).{...H.......
58220 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 .int.x.=.xs[i].+.(y.-.ys[i]).*.(
58240 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 xs[j].-.xs[i])./.(ys[j].-.ys[i])
58260 3b 00 00 00 25 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 74 61 72 74 29 20 78 5f ;...%........if.(x.<.x_start).x_
58280 73 74 61 72 74 20 3d 20 78 3b 00 00 00 21 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3e 20 78 5f start.=.x;...!........if.(x.>.x_
582a0 65 6e 64 29 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 end).x_end.=.x;..........}......
582c0 20 20 7d 00 00 00 21 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 74 20 3c 20 30 29 20 78 5f 73 74 ..}...!....if.(x_start.<.0).x_st
582e0 61 72 74 20 3d 20 30 3b 00 00 00 22 20 20 20 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 20 art.=.0;..."....if.(x_end.>=.w).
58300 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 3d 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 x_end.=.w.-.1;...=....for.(int.x
58320 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b 29 20 70 78 5b .=.x_start;.x.<=.x_end;.x++).px[
58340 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 y.*.w.+.x].=.c;......}....}.....
58360 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 ..#static.void.render(struct.app
58380 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c .*a).{.../..if.(!a->configured.|
583a0 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 |.a->w.<=.0.||.a->h.<=.0).......
583c0 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 .return;......if.(!a->buf)......
583e0 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 ..alloc_buf(a);......uint32_t.*p
58400 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 x.=.a->pixels;...$..memset(px,.0
58420 78 46 46 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 xFF,.a->w.*.a->h.*.4);......time
58440 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 _t.tt.=.time(NULL);......struct.
58460 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 tm.tmv;......localtime_r(&tt,.&t
58480 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 mv);...#..int.cx.=.a->w./.2,.cy.
584a0 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c =.a->h./.2;.../..int.r.=.(a->w.<
584c0 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 .a->h.?.a->w.:.a->h)./.2.-.10;..
584e0 00 0c 20 20 69 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 20 ....if.(r.<.5)........r.=.5;....
58500 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b ..for.(int.i.=.0;.i.<.60;.i++).{
58520 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 ........double.ang.=.i./.60.0.*.
58540 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 24 20 20 20 20 69 6e 74 20 6c 65 2.*.M_PI.-.M_PI_2;...$....int.le
58560 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 31 35 20 3a 20 35 3b 00 00 00 4e 20 20 n.=.(i.%.5.==.0).?.15.:.5;...N..
58580 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 ..line(px,.a->w,.a->h,.cx.+.cos(
585a0 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 ang).*.(r.-.len),.cy.+.sin(ang).
585c0 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 00 00 00 3b 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f *.(r.-.len),...;.........cx.+.co
585e0 73 28 61 6e 67 29 20 2a 20 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 72 2c 20 30 s(ang).*.r,.cy.+.sin(ang).*.r,.0
58600 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 xFF000000);......}...4..double.s
58620 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 a.=.tmv.tm_sec./.60.0.*.2.*.M_PI
58640 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 .-.M_PI_2;...J..double.ma.=.(tmv
58660 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 .tm_min.+.tmv.tm_sec./.60.0)./.6
58680 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 54 20 20 64 6f 0.0.*.2.*.M_PI.-.M_PI_2;...T..do
586a0 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 uble.ha.=.((tmv.tm_hour.%.12).+.
586c0 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 (tmv.tm_min./.60.0))./.12.0.*.2.
586e0 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 a3 20 20 66 69 6c 6c 5f 74 72 69 28 70 *.M_PI.-.M_PI_2;......fill_tri(p
58700 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 2d 30 2e 31 29 2a x,.a->w,.a->h,.cx.+.cos(ha-0.1)*
58720 31 30 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 2d 30 2e 31 29 2a 31 30 2c 20 63 78 20 2b 20 63 6f 10,.cy.+.sin(ha-0.1)*10,.cx.+.co
58740 73 28 68 61 2b 30 2e 31 29 2a 31 30 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 2b 30 2e 31 29 2a 31 s(ha+0.1)*10,.cy.+.sin(ha+0.1)*1
58760 30 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 29 2a 72 2a 30 2e 35 2c 20 63 79 20 2b 20 73 69 6e 28 0,.cx.+.cos(ha)*r*0.5,.cy.+.sin(
58780 68 61 29 2a 72 2a 30 2e 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 a5 20 20 66 69 6c ha)*r*0.5,.0xFF000000);......fil
587a0 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d l_tri(px,.a->w,.a->h,.cx.+.cos(m
587c0 61 2d 30 2e 30 36 29 2a 38 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 2d 30 2e 30 36 29 2a 38 2c 20 a-0.06)*8,.cy.+.sin(ma-0.06)*8,.
587e0 63 78 20 2b 20 63 6f 73 28 6d 61 2b 30 2e 30 36 29 2a 38 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 cx.+.cos(ma+0.06)*8,.cy.+.sin(ma
58800 2b 30 2e 30 36 29 2a 38 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 2a 72 2a 30 2e 37 35 2c 20 63 +0.06)*8,.cx.+.cos(ma)*r*0.75,.c
58820 79 20 2b 20 73 69 6e 28 6d 61 29 2a 72 2a 30 2e 37 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b y.+.sin(ma)*r*0.75,.0xFF000000);
58840 00 00 00 5d 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 ...]..line(px,.a->w,.a->h,.cx,.c
58860 79 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 38 35 2c 20 63 79 20 2b y,.cx.+.cos(sa).*.r.*.0.85,.cy.+
58880 20 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 38 35 2c 20 30 78 46 46 46 46 30 30 30 30 29 .sin(sa).*.r.*.0.85,.0xFFFF0000)
588a0 3b 00 00 00 02 20 20 00 00 00 4f 20 20 66 6f 72 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 72 20 ;.........O..for(int.ir.=.0;.ir.
588c0 3c 20 34 3b 20 69 72 2b 2b 29 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 <.4;.ir++).circle(px,.a->w,.a->h
588e0 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 30 78 46 46 46 46 46 46 46 46 29 3b 35 81 f5 18 00 00 ,.cx,.cy,.ir,.0xFFFFFFFF);5.....
58900 00 00 6e 00 00 00 45 00 00 00 43 00 00 00 1f 00 00 00 53 00 00 00 03 00 00 00 cc 09 00 00 00 00 ..n...E...C.......S.............
58920 00 00 75 0a 00 00 00 00 00 00 37 0b 00 00 00 00 00 00 35 81 5f d0 00 00 00 92 00 00 00 94 00 00 ..u.......7.......5._...........
58940 00 00 00 00 00 00 00 00 00 93 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 ................................
58960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
589a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
589c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
589e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a8 26 04 01 00 00 ........................i..&....
58ac0 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 2b 00 00 00 1f 23 64 65 66 69 6e 65 ....................+....#define
58ae0 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 00 26 23 69 6e 63 ._POSIX_C_SOURCE.200809L...&#inc
58b00 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e lude."xdg-shell-client-protocol.
58b20 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 h"....#include.<fcntl.h>....#inc
58b40 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e lude.<math.h>....#include.<poll.
58b60 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e h>....#include.<signal.h>....#in
58b80 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 clude.<stdbool.h>....#include.<s
58ba0 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 tdint.h>....#include.<stdio.h>..
58bc0 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 ..#include.<stdlib.h>....#includ
58be0 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d e.<string.h>....#include.<sys/mm
58c00 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 an.h>....#include.<sys/timerfd.h
58c20 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 >....#include.<time.h>....#inclu
58c40 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 de.<unistd.h>....#include.<wayla
58c60 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 nd-client.h>........#ifndef.M_PI
58c80 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 ...##define.M_PI.3.1415926535897
58ca0 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 9323846....#endif....#ifndef.M_P
58cc0 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 I_2...%#define.M_PI_2.1.57079632
58ce0 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 679489661923....#endif.......)st
58d00 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 atic.volatile.sig_atomic_t.runni
58d20 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e ng.=.1;....static.void.on_sig(in
58d40 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e t.s).{......(void)s;......runnin
58d60 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 g.=.0;....}........struct.app.{.
58d80 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 .....struct.wl_display.*d;......
58da0 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 struct.wl_registry.*reg;......st
58dc0 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 ruct.wl_compositor.*comp;......s
58de0 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 truct.wl_shm.*shm;......struct.x
58e00 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 dg_wm_base.*wm;......struct.wl_s
58e20 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 urface.*ws;......struct.xdg_surf
58e40 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 ace.*xs;......struct.xdg_topleve
58e60 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 l.*xt;......void.*pixels;......s
58e80 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 truct.wl_buffer.*buf;......int.w
58ea0 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 ,.h;......int.bw,.bh;......bool.
58ec0 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 configured;......bool.redraw;...
58ee0 02 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 .};.......Jstatic.void.wm_ping(v
58f00 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 oid.*data,.struct.xdg_wm_base.*w
58f20 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 67 5f 77 m,.uint32_t.serial).{......xdg_w
58f40 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 m_base_pong(wm,.serial);....}...
58f60 00 00 00 00 24 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f ....$static.int.create_shm(size_
58f80 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f t.size).{...#..char.t[].=."/tmp/
58fa0 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d wlclock-XXXXXX";......int.fd.=.m
58fc0 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 kstemp(t);......if.(fd.<.0).....
58fe0 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 1e 20 ...exit(1);......unlink(t);.....
59000 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 00 00 00 .if.(ftruncate(fd,.size).<.0)...
59020 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 .....exit(1);......return.fd;...
59040 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 .}.......(static.void.destroy_bu
59060 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e f(struct.app.*a).{......if.(!a->
59080 62 75 66 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 buf)........return;...*..size_t.
590a0 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a 20 34 size.=.(size_t)a->bw.*.a->bh.*.4
590c0 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 ;......wl_buffer_destroy(a->buf)
590e0 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 ;......munmap(a->pixels,.size);.
59100 00 00 10 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 20 20 61 2d 3e 70 69 78 65 .....a->buf.=.NULL;......a->pixe
59120 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f ls.=.NULL;....}.......&static.vo
59140 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 id.alloc_buf(struct.app.*a).{...
59160 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 ...destroy_buf(a);...(..size_t.s
59180 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 3b 00 00 ize.=.(size_t)a->w.*.a->h.*.4;..
591a0 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 ....int.fd.=.create_shm(size);..
591c0 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c .J..a->pixels.=.mmap(NULL,.size,
591e0 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 .PROT_READ.|.PROT_WRITE,.MAP_SHA
59200 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1e 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 RED,.fd,.0);......if.(a->pixels.
59220 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 ==.MAP_FAILED)........exit(1);..
59240 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 .B..struct.wl_shm_pool.*pool.=.w
59260 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 l_shm_create_pool(a->shm,.fd,.si
59280 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 ze);...C..a->buf.=.wl_shm_pool_c
592a0 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 reate_buffer(pool,.0,.a->w,.a->h
592c0 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.a->w.*.4,...=.................
592e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 ....................WL_SHM_FORMA
59300 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 T_ARGB8888);......wl_shm_pool_de
59320 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0f stroy(pool);......close(fd);....
59340 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b 00 00 00 0f 20 20 61 2d 3e 62 68 20 3d 20 61 2d 3e ..a->bw.=.a->w;......a->bh.=.a->
59360 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4c 73 74 61 74 69 63 20 76 6f 69 64 20 6c 69 6e 65 28 h;....}.......Lstatic.void.line(
59380 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 uint32_t.*px,.int.w,.int.h,.int.
593a0 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 1e 20 x0,.int.y0,.int.x1,.int.y1,.....
593c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 ................uint32_t.c).{...
593e0 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 /..int.dx.=.abs(x1.-.x0),.sx.=.x
59400 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 0.<.x1.?.1.:.-1;...0..int.dy.=.-
59420 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a abs(y1.-.y0),.sy.=.y0.<.y1.?.1.:
59440 20 2d 31 3b 00 00 00 14 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 3b 00 00 00 0d .-1;......int.err.=.dx.+.dy;....
59460 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 ..while.(1).{.../....if.(x0.>=.0
59480 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 .&&.x0.<.w.&&.y0.>=.0.&&.y0.<.h)
594a0 00 00 00 1a 20 20 20 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 ..........px[y0.*.w.+.x0].=.c;..
594c0 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 ......if.(x0.==.x1.&&.y0.==.y1).
594e0 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 15 20 20 20 20 69 6e 74 20 65 32 20 3d 20 .........break;........int.e2.=.
59500 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 2.*.err;........if.(e2.>=.dy).{.
59520 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 .........err.+=.dy;..........x0.
59540 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d +=.sx;........}........if.(e2.<=
59560 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 .dx).{..........err.+=.dx;......
59580 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 ....y0.+=.sy;........}......}...
595a0 01 7d 00 00 00 00 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e .}.......Estatic.void.circle(uin
595c0 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c t32_t.*px,.int.w,.int.h,.int.cx,
595e0 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .int.cy,.int.r,.................
59600 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d ......uint32_t.c).{..."..int.x.=
59620 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 .0,.y.=.r,.d.=.3.-.2.*.r;......w
59640 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b hile.(y.>=.x).{...H....int.p[8][
59660 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 2].=.{{cx.+.x,.cy.+.y},.{cx.-.x,
59680 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 .cy.+.y},.{cx.+.x,.cy.-.y},...H.
596a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 ..................{cx.-.x,.cy.-.
596c0 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 y},.{cx.+.y,.cy.+.x},.{cx.-.y,.c
596e0 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 y.+.x},...7...................{c
59700 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d x.+.y,.cy.-.x},.{cx.-.y,.cy.-.x}
59720 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b };........for.(int.i.=.0;.i.<.8;
59740 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 .i++)...E......if.(p[i][0].>=.0.
59760 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 &&.p[i][0].<.w.&&.p[i][1].>=.0.&
59780 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 &.p[i][1].<.h)...&........px[p[i
597a0 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 ][1].*.w.+.p[i][0]].=.c;........
597c0 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 if.(d.>.0).{..........d.+=.4.*.(
597e0 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 x.-.y).+.10;..........y--;......
59800 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 ..}.else..........d.+=.4.*.x.+.6
59820 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 ;........x++;......}....}.......
59840 50 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a Pstatic.void.fill_tri(uint32_t.*
59860 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 px,.int.w,.int.h,.int.x0,.int.y0
59880 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 ,.int.x1,.int.y1,...2...........
598a0 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 ..........int.x2,.int.y2,.uint32
598c0 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 _t.c).{...B..int.min_y.=.y0.<.y1
598e0 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 .?.(y0.<.y2.?.y0.:.y2).:.(y1.<.y
59900 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 2.?.y1.:.y2);...B..int.max_y.=.y
59920 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 0.>.y1.?.(y0.>.y2.?.y0.:.y2).:.(
59940 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 10 20 20 69 66 20 28 6d 69 6e y1.>.y2.?.y1.:.y2);......if.(min
59960 5f 79 20 3c 20 30 29 00 00 00 0e 20 20 20 20 6d 69 6e 5f 79 20 3d 20 30 3b 00 00 00 11 20 20 69 _y.<.0)........min_y.=.0;......i
59980 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 00 00 00 12 20 20 20 20 6d 61 78 5f 79 20 3d 20 68 20 f.(max_y.>=.h)........max_y.=.h.
599a0 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 -.1;...(..for.(int.y.=.min_y;.y.
599c0 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 <=.max_y;.y++).{........int.x_st
599e0 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 art.=.w,.x_end.=.0;...3....int.x
59a00 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 s[3].=.{x0,.x1,.x2},.ys[3].=.{y0
59a20 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 ,.y1,.y2};...!....for.(int.i.=.0
59a40 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d ;.i.<.3;.i++).{..........int.j.=
59a60 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 .(i.+.1).%.3;...C......if.((ys[i
59a80 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c ].<=.y.&&.ys[j].>.y).||.(ys[j].<
59aa0 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 48 20 20 20 20 20 20 20 20 =.y.&&.ys[i].>.y)).{...H........
59ac0 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 int.x.=.xs[i].+.(y.-.ys[i]).*.(x
59ae0 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b s[j].-.xs[i])./.(ys[j].-.ys[i]);
59b00 00 00 00 18 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 74 61 72 74 29 00 00 00 16 ............if.(x.<.x_start)....
59b20 20 20 20 20 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 00 00 16 20 20 20 20 20 20 ..........x_start.=.x;..........
59b40 20 20 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 00 00 00 14 20 20 20 20 20 20 20 20 20 20 78 5f ..if.(x.>.x_end)..............x_
59b60 65 6e 64 20 3d 20 78 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 14 end.=.x;..........}........}....
59b80 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 74 20 3c 20 30 29 00 00 00 12 20 20 20 20 20 20 78 5f ....if.(x_start.<.0)..........x_
59ba0 73 74 61 72 74 20 3d 20 30 3b 00 00 00 13 20 20 20 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 start.=.0;........if.(x_end.>=.w
59bc0 29 00 00 00 14 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 2a 20 20 20 )..........x_end.=.w.-.1;...*...
59be0 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e .for.(int.x.=.x_start;.x.<=.x_en
59c00 64 3b 20 78 2b 2b 29 00 00 00 18 20 20 20 20 20 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d d;.x++)..........px[y.*.w.+.x].=
59c20 20 63 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f .c;......}....}.......#static.vo
59c40 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 id.render(struct.app.*a).{.../..
59c60 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 if.(!a->configured.||.a->w.<=.0.
59c80 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e ||.a->h.<=.0)........return;....
59ca0 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 20 61 6c 6c 6f 63 5f 62 75 66 28 ..if.(!a->buf)........alloc_buf(
59cc0 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c a);......uint32_t.*px.=.a->pixel
59ce0 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 s;...$..memset(px,.0xFF,.a->w.*.
59d00 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 a->h.*.4);......time_t.tt.=.time
59d20 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 (NULL);......struct.tm.tmv;.....
59d40 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e .localtime_r(&tt,.&tmv);...#..in
59d60 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 t.cx.=.a->w./.2,.cy.=.a->h./.2;.
59d80 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 ../..int.r.=.(a->w.<.a->h.?.a->w
59da0 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 66 20 28 72 20 3c 20 .:.a->h)./.2.-.10;......if.(r.<.
59dc0 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 5)........r.=.5;......for.(int.i
59de0 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 .=.0;.i.<.60;.i++).{........doub
59e00 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d le.ang.=.i./.60.0.*.2.*.M_PI.-.M
59e20 5f 50 49 5f 32 3b 00 00 00 24 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d _PI_2;...$....int.len.=.(i.%.5.=
59e40 3d 20 30 29 20 3f 20 31 35 20 3a 20 35 3b 00 00 00 4e 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 =.0).?.15.:.5;...N....line(px,.a
59e60 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 ->w,.a->h,.cx.+.cos(ang).*.(r.-.
59e80 6c 65 6e 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c len),.cy.+.sin(ang).*.(r.-.len),
59ea0 00 00 00 3b 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 72 2c 20 ...;.........cx.+.cos(ang).*.r,.
59ec0 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 cy.+.sin(ang).*.r,.0xFF000000);.
59ee0 00 00 03 20 20 7d 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 .....}...4..double.sa.=.tmv.tm_s
59f00 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 ec./.60.0.*.2.*.M_PI.-.M_PI_2;..
59f20 00 4a 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d .J..double.ma.=.(tmv.tm_min.+.tm
59f40 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f v.tm_sec./.60.0)./.60.0.*.2.*.M_
59f60 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 PI.-.M_PI_2;......double.ha.=...
59f80 4c 20 20 20 20 20 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d L......((tmv.tm_hour.%.12).+.(tm
59fa0 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d v.tm_min./.60.0))./.12.0.*.2.*.M
59fc0 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4c 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 _PI.-.M_PI_2;...L..fill_tri(px,.
59fe0 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2d 20 30 2e 31 29 20 2a a->w,.a->h,.cx.+.cos(ha.-.0.1).*
5a000 20 31 30 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2d 20 30 2e 31 29 20 2a 20 31 30 2c 00 00 00 .10,.cy.+.sin(ha.-.0.1).*.10,...
5a020 3c 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2b 20 30 2e 31 29 20 2a <...........cx.+.cos(ha.+.0.1).*
5a040 20 31 30 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2b 20 30 2e 31 29 20 2a 20 31 30 2c 00 00 00 .10,.cy.+.sin(ha.+.0.1).*.10,...
5a060 47 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 G...........cx.+.cos(ha).*.r.*.0
5a080 2e 35 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 2c 20 30 78 46 46 .5,.cy.+.sin(ha).*.r.*.0.5,.0xFF
5a0a0 30 30 30 30 30 30 29 3b 00 00 00 4c 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 000000);...L..fill_tri(px,.a->w,
5a0c0 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2d 20 30 2e 30 36 29 20 2a 20 38 2c 20 .a->h,.cx.+.cos(ma.-.0.06).*.8,.
5a0e0 63 79 20 2b 20 73 69 6e 28 6d 61 20 2d 20 30 2e 30 36 29 20 2a 20 38 2c 00 00 00 3c 20 20 20 20 cy.+.sin(ma.-.0.06).*.8,...<....
5a100 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2b 20 30 2e 30 36 29 20 2a 20 38 2c 20 .......cx.+.cos(ma.+.0.06).*.8,.
5a120 63 79 20 2b 20 73 69 6e 28 6d 61 20 2b 20 30 2e 30 36 29 20 2a 20 38 2c 00 00 00 49 20 20 20 20 cy.+.sin(ma.+.0.06).*.8,...I....
5a140 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 35 2c 20 .......cx.+.cos(ma).*.r.*.0.75,.
5a160 63 79 20 2b 20 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 35 2c 20 30 78 46 46 30 30 30 cy.+.sin(ma).*.r.*.0.75,.0xFF000
5a180 30 30 30 29 3b 00 00 00 50 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 000);...P..line(px,.a->w,.a->h,.
5a1a0 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 38 35 2c cx,.cy,.cx.+.cos(sa).*.r.*.0.85,
5a1c0 20 63 79 20 2b 20 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 38 35 2c 00 00 00 13 20 20 20 .cy.+.sin(sa).*.r.*.0.85,.......
5a1e0 20 20 20 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 00 00 00 00 20 20 20 66 6f 72 20 28 69 ....0xFFFF0000);..........for.(i
5a200 6e 74 20 69 72 20 3d 20 30 3b 20 69 72 20 3c 20 34 3b 20 69 72 2b 2b 29 00 00 00 33 20 20 20 20 nt.ir.=.0;.ir.<.4;.ir++)...3....
5a220 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 circle(px,.a->w,.a->h,.cx,.cy,.i
5a240 72 2c 20 30 78 46 46 46 46 46 46 46 46 29 3b 00 00 00 30 20 20 63 69 72 63 6c 65 28 70 78 2c 20 r,.0xFFFFFFFF);...0..circle(px,.
5a260 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 35 2c 20 30 78 46 46 30 30 30 30 30 a->w,.a->h,.cx,.cy,.5,.0xFF00000
5a280 30 29 3b 00 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 0);.......)..wl_surface_attach(a
5a2a0 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 ->ws,.a->buf,.0,.0);...4..wl_sur
5a2c0 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 face_damage_buffer(a->ws,.0,.0,.
5a2e0 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d a->w,.a->h);......wl_surface_com
5a300 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c mit(a->ws);......a->redraw.=.fal
5a320 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 se;....}.......Gstatic.void.xt_c
5a340 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 lose(void.*d,.struct.xdg_topleve
5a360 6c 20 2a 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 4a 73 l.*xt).{.running.=.0;.}.......Js
5a380 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 tatic.void.xt_cfg(void.*d,.struc
5a3a0 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 t.xdg_toplevel.*xt,.int32_t.w,.i
5a3c0 6e 74 33 32 5f 74 20 68 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt32_t.h,...(...................
5a3e0 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 struct.wl_array.*s).{......struc
5a400 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 t.app.*a.=.d;...3..if.(w.>.0.&&.
5a420 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 h.>.0.&&.(w.!=.a->w.||.h.!=.a->h
5a440 29 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e )).{........a->w.=.w;........a->
5a460 68 20 3d 20 68 3b 00 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 h.=.h;........destroy_buf(a);...
5a480 15 20 20 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 .....a->redraw.=.true;......}...
5a4a0 01 7d 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 .}.......Fstatic.void.xs_cfg(voi
5a4c0 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 d.*d,.struct.xdg_surface.*xs,.ui
5a4e0 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 nt32_t.serial).{......struct.app
5a500 20 2a 61 20 3d 20 64 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f .*a.=.d;...(..xdg_surface_ack_co
5a520 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e nfigure(xs,.serial);......a->con
5a540 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 13 20 20 61 2d 3e 72 65 64 72 61 77 20 3d figured.=.true;......a->redraw.=
5a560 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 72 .true;....}.......Cstatic.void.r
5a580 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 eg_global(void.*d,.struct.wl_reg
5a5a0 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 33 20 20 20 20 20 20 istry.*r,.uint32_t.id,...3......
5a5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c 20 .................const.char.*i,.
5a5e0 75 69 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 uint32_t.v).{......struct.app.*a
5a600 20 3d 20 64 3b 00 00 00 22 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f .=.d;..."..if.(!strcmp(i,."wl_co
5a620 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f mpositor"))...C....a->comp.=.wl_
5a640 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 registry_bind(r,.id,.&wl_composi
5a660 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 20 20 20 65 6c 73 65 20 69 66 20 tor_interface,.4);......else.if.
5a680 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 20 20 61 2d (!strcmp(i,."wl_shm"))...;....a-
5a6a0 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 >shm.=.wl_registry_bind(r,.id,.&
5a6c0 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 wl_shm_interface,.1);...'..else.
5a6e0 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b if.(!strcmp(i,."xdg_wm_base")).{
5a700 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 ...?....a->wm.=.wl_registry_bind
5a720 28 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 (r,.id,.&xdg_wm_base_interface,.
5a740 31 29 3b 00 00 00 43 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 1);...C....static.const.struct.x
5a760 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d dg_wm_base_listener.l.=.{.ping.=
5a780 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 .wm_ping};...+....xdg_wm_base_ad
5a7a0 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d d_listener(a->wm,.&l,.a);......}
5a7c0 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 ....}........int.main(void).{...
5a7e0 15 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 ...struct.app.a.=.{0};......a.w.
5a800 3d 20 34 30 30 3b 00 00 00 0c 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e =.400;......a.h.=.400;......sign
5a820 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 al(SIGINT,.on_sig);...!..a.d.=.w
5a840 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 0b 20 20 69 66 l_display_connect(NULL);......if
5a860 20 28 21 61 2e 64 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e .(!a.d)........return.1;...'..a.
5a880 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e reg.=.wl_display_get_registry(a.
5a8a0 64 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f d);...G..static.const.struct.wl_
5a8c0 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 registry_listener.rl.=.{.global.
5a8e0 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f =.reg_global};...+..wl_registry_
5a900 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 add_listener(a.reg,.&rl,.&a);...
5a920 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 ...wl_display_roundtrip(a.d);...
5a940 21 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 !..if.(!a.comp.||.!a.shm.||.!a.w
5a960 6d 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 m)........return.1;......a.ws.=.
5a980 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 wl_compositor_create_surface(a.c
5a9a0 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 omp);...1..a.xs.=.xdg_wm_base_ge
5a9c0 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 t_xdg_surface(a.wm,.a.ws);...G..
5a9e0 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f static.const.struct.xdg_surface_
5aa00 6c 69 73 74 65 6e 65 72 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f listener.xsl.=.{.configure.=.xs_
5aa20 63 66 67 7d 3b 00 00 00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 cfg};...+..xdg_surface_add_liste
5aa40 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d ner(a.xs,.&xsl,.&a);...(..a.xt.=
5aa60 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b .xdg_surface_get_toplevel(a.xs);
5aa80 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f ...G..static.const.struct.xdg_to
5aaa0 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 plevel_listener.xtl.=.{.configur
5aac0 65 20 3d 20 78 74 5f 63 66 67 2c 00 00 00 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.=.xt_cfg,...F.................
5aae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5ab00 20 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 ...close.=.xt_close};...,..xdg_t
5ab20 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c oplevel_add_listener(a.xt,.&xtl,
5ab40 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c .&a);...*..xdg_toplevel_set_titl
5ab60 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 e(a.xt,."wlclock");......wl_surf
5ab80 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 17 20 20 77 68 69 6c 65 20 28 21 61 ace_commit(a.ws);......while.(!a
5aba0 2e 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 1d 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 .configured)........wl_display_d
5abc0 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 ispatch(a.d);......render(&a);..
5abe0 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f .9..int.tfd.=.timerfd_create(CLO
5ac00 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 CK_MONOTONIC,.TFD_CLOEXEC);...F.
5ac20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 .timerfd_settime(tfd,.0,.&(struc
5ac40 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e t.itimerspec){{1,.0},.{1,.0}},.N
5ac60 55 4c 4c 29 3b 00 00 00 13 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 13 ULL);......char.buffer[100];....
5ac80 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c 65 ..while.(running).{...-....while
5aca0 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 .(wl_display_prepare_read(a.d).!
5acc0 3d 20 30 29 00 00 00 27 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 =.0)...'......wl_display_dispatc
5ace0 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 h_pending(a.d);........wl_displa
5ad00 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c y_flush(a.d);...M....struct.poll
5ad20 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 fd.fds[2].=.{{wl_display_get_fd(
5ad40 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 a.d),.POLLIN},.{tfd,.POLLIN}};..
5ad60 00 1f 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 ......if.(poll(fds,.2,.-1).<.0).
5ad80 7b 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 {..."......wl_display_cancel_rea
5ada0 64 28 61 2e 64 29 3b 00 00 00 0f 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 20 20 d(a.d);..........continue;......
5adc0 20 20 7d 00 00 00 20 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 ..}........if.(fds[0].revents.&.
5ade0 50 4f 4c 4c 49 4e 29 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 POLLIN)..."......wl_display_read
5ae00 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 00 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 20 _events(a.d);........else..."...
5ae20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 ...wl_display_cancel_read(a.d);.
5ae40 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 ..%....wl_display_dispatch_pendi
5ae60 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e ng(a.d);..."....if.(fds[1].reven
5ae80 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 ts.&.POLLIN).{..........uint64_t
5aea0 20 74 5f 65 78 70 3b 00 00 00 27 20 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 .t_exp;...'......read(tfd,.&t_ex
5aec0 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 78 70 29 29 3b 00 00 00 1e 20 20 20 20 20 20 74 69 6d 65 p,.sizeof(t_exp));..........time
5aee0 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 20 20 73 74 _t.cli.=.time(NULL);...,......st
5af00 72 75 63 74 20 74 6d 20 2a 74 5f 73 74 72 75 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 ruct.tm.*t_struct.=.localtime(&c
5af20 6c 69 29 3b 00 00 00 49 20 20 20 20 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 li);...I......strftime(buffer,.s
5af40 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 izeof(buffer),."%d-%m-%Y.%I:%M:%
5af60 53 20 25 70 22 2c 20 74 5f 73 74 72 75 63 74 29 3b 00 00 00 25 20 20 20 20 20 20 70 72 69 6e 74 S.%p",.t_struct);...%......print
5af80 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 73 22 2c 20 62 75 66 66 65 72 29 3b 00 00 00 15 20 20 f("\rTime.is.%s",.buffer);......
5afa0 20 20 20 20 66 66 6c 75 73 68 28 73 74 64 6f 75 74 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 ....fflush(stdout);..........a.r
5afc0 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 11 20 20 20 20 69 66 edraw.=.true;........}........if
5afe0 20 28 61 2e 72 65 64 72 61 77 29 00 00 00 11 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b .(a.redraw)..........render(&a);
5b000 00 00 00 03 20 20 7d 00 00 00 0f 20 20 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b 00 00 00 0d 20 20 ......}......printf("\n");......
5b020 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 12 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 close(tfd);......destroy_buf(&a)
5b040 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 ;......wl_display_disconnect(a.d
5b060 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 );......return.0;....}5.........
5b080 00 00 00 00 00 00 2b 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 22 ......+........................"
5b0a0 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 93 00 00 00 95 00 00 00 00 00 00 ..............5._...............
5b0c0 00 00 00 00 00 94 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 ................................
5b0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a8 26 04 01 00 00 00 00 00 f5 ....................i..&........
5b240 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 ................................
5b260 00 00 00 00 00 00 00 35 81 35 81 5f d0 00 00 00 94 00 00 00 96 00 00 00 00 00 00 00 00 00 00 00 .......5.5._....................
5b280 95 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a8 29 04 01 00 00 00 00 00 f5 18 00 00 01 1c ...............i..).............
5b400 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 01 1d 00 00 00 00 00 00 00 00 00 ................}...............
5b420 00 00 00 f5 18 00 00 01 1a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0d 20 20 77 6c 5f 64 69 ...........................wl_di
5b440 73 70 6c 61 79 5f f5 18 00 00 01 1b 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 ff 00 00 splay_..........................
5b460 00 00 00 00 00 00 00 00 00 01 00 00 00 0e 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 f5 18 00 00 ..................wl_display....
5b480 01 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 ed 00 00 00 00 00 00 00 00 00 00 00 01 ................................
5b4a0 00 00 00 22 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 ..."..a.xs.=.xdg_wm_base_get_xdg
5b4c0 5f 73 75 72 66 61 f5 18 00 00 00 ee 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 da 00 00 _surfa..........................
5b4e0 00 00 00 00 00 00 00 00 00 01 00 00 00 04 20 20 20 20 f5 18 00 00 00 db 00 00 00 00 00 00 00 00 ................................
5b500 00 00 00 00 f5 18 00 00 00 d0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 73 f5 18 00 00 00 ..........................s.....
5b520 d1 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 bc 00 00 00 00 00 00 00 00 00 00 00 01 00 ................................
5b540 00 00 08 73 74 61 74 69 63 20 76 f5 18 00 00 00 bd 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 ...static.v.....................
5b560 00 00 b0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 7f 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 .....................fill_tri(px
5b580 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2d 20 30 2e 31 32 ,.a->w,.a->h,.cx.+.cos(ma.-.0.12
5b5a0 29 20 2a 20 31 30 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2d 20 30 2e 31 32 29 20 2a 20 31 30 ).*.10,.cy.+.sin(ma.-.0.12).*.10
5b5c0 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2b 20 30 2e 31 32 29 20 2a 20 31 30 2c 20 63 79 20 2b ,.cx.+.cos(ma.+.0.12).*.10,.cy.+
5b5e0 20 73 69 6e 28 6d 61 20 2b 20 30 2e 31 32 29 20 2a 20 f5 18 00 00 00 b1 00 00 00 00 00 00 00 00 .sin(ma.+.0.12).*...............
5b600 00 00 00 00 f5 18 00 00 00 ac 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 10 20 20 64 6f 75 62 ............................doub
5b620 6c 65 20 73 61 20 3d 20 74 6d f5 18 00 00 00 ad 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 le.sa.=.tm......................
5b640 00 8a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 42 20 20 20 20 20 20 69 66 20 28 28 79 73 5b .................B......if.((ys[
5b660 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 i].<=.y.&&.ys[j].>.y).||.(ys[j].
5b680 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 f5 18 00 00 00 8b 00 00 00 00 00 00 <=.y.&&.ys[i].>.y)).............
5b6a0 00 00 00 00 00 00 f5 18 00 00 00 84 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1d 20 20 69 66 ..............................if
5b6c0 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 20 6d 61 78 5f 79 20 3d 20 68 20 2d f5 18 00 00 00 85 00 .(max_y.>=.h).max_y.=.h.-.......
5b6e0 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 75 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................u...............
5b700 05 20 20 20 20 20 f5 18 00 00 00 76 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 5a 00 00 ...........v.................Z..
5b720 00 00 00 00 00 00 00 00 00 01 00 00 00 06 20 20 69 6e 74 20 f5 18 00 00 00 5b 00 00 00 00 00 00 ................int......[......
5b740 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 ................................
5b760 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..............5.................
5b780 00 00 00 00 00 00 5a 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 ......Z.........................
5b7a0 00 00 00 00 00 00 f5 18 00 00 00 00 5a 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 1b 00 00 00 ............Z...................
5b7c0 05 00 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 ................................
5b7e0 00 00 75 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 1d 00 00 00 00 0b 00 00 00 00 ..u.............................
5b800 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 84 00 00 00 1d 00 00 00 ................................
5b820 00 00 00 00 00 00 00 00 06 00 00 00 42 00 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............B...................
5b840 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 8a 00 00 00 42 00 00 00 00 00 00 00 00 00 00 00 22 00 ..................B...........".
5b860 00 00 10 00 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 ................................
5b880 00 00 00 00 ac 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 7f 00 00 00 00 12 00 00 ................................
5b8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 b0 00 00 00 7f 00 ................................
5b8c0 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 08 00 00 00 00 14 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b8e0 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 bc 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 ................................
5b900 14 00 00 00 01 00 00 00 00 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 ................................
5b920 f5 18 00 00 00 00 d0 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 04 00 00 00 00 18 ................................
5b940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 da 00 00 00 ................................
5b960 04 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 22 00 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 ................"...............
5b980 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 ed 00 00 00 22 00 00 00 00 00 00 00 00 00 ......................".........
5b9a0 00 00 12 00 00 00 0e 00 00 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 ................................
5b9c0 00 00 f5 18 00 00 00 00 ff 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 1b 00 00 00 0d 00 00 00 ................................
5b9e0 00 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 1a 01 ................................
5ba00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 22 00 00 00 00 00 00 00 00 ......................."........
5ba20 00 00 00 00 00 00 1e 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 95 00 00 00 97 00 00 00 00 00 00 ..............5._...............
5ba40 00 00 00 00 00 96 00 00 01 1d 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 ................................
5ba60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ba80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5baa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a8 2a 04 01 00 00 00 2b 00 f5 ....................i..*.....+..
5bbc0 18 00 00 00 6e 00 00 00 c7 00 00 01 1d 00 00 00 47 00 00 00 53 73 74 61 74 69 63 20 76 6f 69 64 ....n...........G...Sstatic.void
5bbe0 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 .circle(uint32_t.*px,.int.w,.int
5bc00 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 .h,.int.cx,.int.cy,.int.r,.uint3
5bc20 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 2_t.c).{..."..int.x.=.0,.y.=.r,.
5bc40 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 d.=.3.-.2.*.r;......while.(y.>=.
5bc60 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b x).{...H....int.p[8][2].=.{{cx.+
5bc80 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b .x,.cy.+.y},.{cx.-.x,.cy.+.y},.{
5bca0 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 cx.+.x,.cy.-.y},...H............
5bcc0 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 .......{cx.-.x,.cy.-.y},.{cx.+.y
5bce0 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 ,.cy.+.x},.{cx.-.y,.cy.+.x},...7
5bd00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d ...................{cx.+.y,.cy.-
5bd20 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 .x},.{cx.-.y,.cy.-.x}};........f
5bd40 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 or.(int.i.=.0;.i.<.8;.i++)...E..
5bd60 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 ....if.(p[i][0].>=.0.&&.p[i][0].
5bd80 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c <.w.&&.p[i][1].>=.0.&&.p[i][1].<
5bda0 20 68 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 .h)...&........px[p[i][1].*.w.+.
5bdc0 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 p[i][0]].=.c;........if.(d.>.0).
5bde0 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 {..........d.+=.4.*.(x.-.y).+.10
5be00 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 ;..........y--;........}.else...
5be20 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b .......d.+=.4.*.x.+.6;........x+
5be40 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 6e 73 74 61 74 69 63 20 76 6f 69 +;......}....}.......nstatic.voi
5be60 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 d.fill_tri(uint32_t.*px,.int.w,.
5be80 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 int.h,.int.x0,.int.y0,.int.x1,.i
5bea0 6e 74 20 79 31 2c 20 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 nt.y1,.int.x2,.int.y2,.uint32_t.
5bec0 63 29 20 7b 00 00 00 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 c).{...B..int.min_y.=.y0.<.y1.?.
5bee0 28 79 30 20 3c 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f (y0.<.y2.?.y0.:.y2).:.(y1.<.y2.?
5bf00 20 79 31 20 3a 20 79 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e .y1.:.y2);...B..int.max_y.=.y0.>
5bf20 20 79 31 20 3f 20 28 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 .y1.?.(y0.>.y2.?.y0.:.y2).:.(y1.
5bf40 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 1b 20 20 69 66 20 28 6d 69 6e 5f 79 20 >.y2.?.y1.:.y2);......if.(min_y.
5bf60 3c 20 30 29 20 6d 69 6e 5f 79 20 3d 20 30 3b 00 00 00 20 20 20 69 66 20 28 6d 61 78 5f 79 20 3e <.0).min_y.=.0;......if.(max_y.>
5bf80 3d 20 68 29 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e =.h).max_y.=.h.-.1;...(..for.(in
5bfa0 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 t.y.=.min_y;.y.<=.max_y;.y++).{.
5bfc0 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 .......int.x_start.=.w,.x_end.=.
5bfe0 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 0;...3....int.xs[3].=.{x0,.x1,.x
5c000 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 21 20 20 20 2},.ys[3].=.{y0,.y1,.y2};...!...
5c020 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 .for.(int.i.=.0;.i.<.3;.i++).{..
5c040 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 ........int.j.=.(i.+.1).%.3;...C
5c060 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e ......if.((ys[i].<=.y.&&.ys[j].>
5c080 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 .y).||.(ys[j].<=.y.&&.ys[i].>.y)
5c0a0 29 20 7b 00 00 00 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 ).{...H........int.x.=.xs[i].+.(
5c0c0 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 y.-.ys[i]).*.(xs[j].-.xs[i])./.(
5c0e0 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b 00 00 00 25 20 20 20 20 20 20 20 20 69 66 20 28 78 ys[j].-.ys[i]);...%........if.(x
5c100 20 3c 20 78 5f 73 74 61 72 74 29 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 00 00 21 20 20 20 20 .<.x_start).x_start.=.x;...!....
5c120 20 20 20 20 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 ....if.(x.>.x_end).x_end.=.x;...
5c140 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 20 20 20 69 66 20 28 78 5f 73 .......}........}...!....if.(x_s
5c160 74 61 72 74 20 3c 20 30 29 20 78 5f 73 74 61 72 74 20 3d 20 30 3b 00 00 00 22 20 20 20 20 69 66 tart.<.0).x_start.=.0;..."....if
5c180 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 3d .(x_end.>=.w).x_end.=.w.-.1;...=
5c1a0 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 ....for.(int.x.=.x_start;.x.<=.x
5c1c0 5f 65 6e 64 3b 20 78 2b 2b 29 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 _end;.x++).px[y.*.w.+.x].=.c;...
5c1e0 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e ...}....}.......#static.void.ren
5c200 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 der(struct.app.*a).{.../..if.(!a
5c220 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e ->configured.||.a->w.<=.0.||.a->
5c240 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 h.<=.0)........return;......if.(
5c260 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 !a->buf)........alloc_buf(a);...
5c280 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 24 ...uint32_t.*px.=.a->pixels;...$
5c2a0 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a ..memset(px,.0xFF,.a->w.*.a->h.*
5c2c0 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 .4);......time_t.tt.=.time(NULL)
5c2e0 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c ;......struct.tm.tmv;......local
5c300 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d time_r(&tt,.&tmv);...#..int.cx.=
5c320 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 .a->w./.2,.cy.=.a->h./.2;.../..i
5c340 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e nt.r.=.(a->w.<.a->h.?.a->w.:.a->
5c360 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 66 20 28 72 20 3c 20 35 29 00 00 00 0a h)./.2.-.10;......if.(r.<.5)....
5c380 20 20 20 20 72 20 3d 20 35 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 ....r.=.5;......for.(int.i.=.0;.
5c3a0 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 i.<.60;.i++).{........double.ang
5c3c0 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b .=.i./.60.0.*.2.*.M_PI.-.M_PI_2;
5c3e0 00 00 00 24 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f ...$....int.len.=.(i.%.5.==.0).?
5c400 20 32 30 20 3a 20 38 3b 00 00 00 33 20 20 20 20 66 6f 72 20 28 64 6f 75 62 6c 65 20 66 20 3d 20 .20.:.8;...3....for.(double.f.=.
5c420 2d 30 2e 30 31 3b 20 66 20 3c 3d 20 30 2e 30 31 3b 20 66 20 2b 3d 20 30 2e 30 30 35 29 20 7b 00 -0.01;.f.<=.0.01;.f.+=.0.005).{.
5c440 00 00 58 20 20 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 ..X......line(px,.a->w,.a->h,.cx
5c460 20 2b 20 63 6f 73 28 61 6e 67 20 2b 20 66 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 20 63 79 20 .+.cos(ang.+.f).*.(r.-.len),.cy.
5c480 2b 20 73 69 6e 28 61 6e 67 20 2b 20 66 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 00 00 00 45 20 +.sin(ang.+.f).*.(r.-.len),...E.
5c4a0 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 20 2b 20 66 29 20 2a 20 72 2c ..........cx.+.cos(ang.+.f).*.r,
5c4c0 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2b 20 66 29 20 2a 20 72 2c 20 30 78 46 46 30 30 30 30 .cy.+.sin(ang.+.f).*.r,.0xFF0000
5c4e0 30 30 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 34 20 20 64 6f 75 62 6c 65 00);........}......}...4..double
5c500 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f .sa.=.tmv.tm_sec./.60.0.*.2.*.M_
5c520 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 PI.-.M_PI_2;...J..double.ma.=.(t
5c540 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f mv.tm_min.+.tmv.tm_sec./.60.0)./
5c560 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 54 20 20 .60.0.*.2.*.M_PI.-.M_PI_2;...T..
5c580 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 double.ha.=.((tmv.tm_hour.%.12).
5c5a0 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 +.(tmv.tm_min./.60.0))./.12.0.*.
5c5c0 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 bb 20 20 66 69 6c 6c 5f 74 72 69 2.*.M_PI.-.M_PI_2;......fill_tri
5c5e0 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2d 20 30 (px,.a->w,.a->h,.cx.+.cos(ha.-.0
5c600 2e 32 29 20 2a 20 31 32 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2d 20 30 2e 32 29 20 2a 20 31 .2).*.12,.cy.+.sin(ha.-.0.2).*.1
5c620 32 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2b 20 30 2e 32 29 20 2a 20 31 32 2c 20 63 79 20 2b 2,.cx.+.cos(ha.+.0.2).*.12,.cy.+
5c640 20 73 69 6e 28 68 61 20 2b 20 30 2e 32 29 20 2a 20 31 32 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 .sin(ha.+.0.2).*.12,.cx.+.cos(ha
5c660 29 20 2a 20 72 20 2a 20 30 2e 35 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 ).*.r.*.0.5,.cy.+.sin(ha).*.r.*.
5c680 30 2e 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 c1 20 20 66 69 6c 6c 5f 74 72 69 28 0.5,.0xFF000000);......fill_tri(
5c6a0 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2d 20 30 2e px,.a->w,.a->h,.cx.+.cos(ma.-.0.
5c6c0 31 32 29 20 2a 20 31 30 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2d 20 30 2e 31 32 29 20 2a 20 12).*.10,.cy.+.sin(ma.-.0.12).*.
5c6e0 31 30 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2b 20 30 2e 31 32 29 20 2a 20 31 30 2c 20 63 79 10,.cx.+.cos(ma.+.0.12).*.10,.cy
5c700 20 2b 20 73 69 6e 28 6d 61 20 2b 20 30 2e 31 32 29 20 2a 20 31 30 2c 20 63 78 20 2b 20 63 6f 73 .+.sin(ma.+.0.12).*.10,.cx.+.cos
5c720 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 35 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 20 2a 20 (ma).*.r.*.0.75,.cy.+.sin(ma).*.
5c740 72 20 2a 20 30 2e 37 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 33 20 20 66 6f 72 20 r.*.0.75,.0xFF000000);...3..for.
5c760 28 64 6f 75 62 6c 65 20 66 20 3d 20 2d 30 2e 30 30 35 3b 20 66 20 3c 3d 20 30 2e 30 30 35 3b 20 (double.f.=.-0.005;.f.<=.0.005;.
5c780 66 20 2b 3d 20 30 2e 30 30 35 29 20 7b 00 00 00 67 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d f.+=.0.005).{...g....line(px,.a-
5c7a0 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 20 2b 20 >w,.a->h,.cx,.cy,.cx.+.cos(sa.+.
5c7c0 66 29 20 2a 20 72 20 2a 20 30 2e 38 35 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 20 2b 20 66 29 20 f).*.r.*.0.85,.cy.+.sin(sa.+.f).
5c7e0 2a 20 72 20 2a 20 30 2e 38 35 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 *.r.*.0.85,.0xFFFF0000);......}.
5c800 00 00 50 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 72 20 3c 20 38 3b 20 69 72 ..P..for.(int.ir.=.0;.ir.<.8;.ir
5c820 2b 2b 29 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 ++).circle(px,.a->w,.a->h,.cx,.c
5c840 79 2c 20 69 72 2c 20 30 78 46 46 46 46 46 46 46 46 29 3b 35 81 f5 18 00 00 00 00 6e 00 00 00 45 y,.ir,.0xFFFFFFFF);5.......n...E
5c860 00 00 00 46 00 00 00 20 00 00 00 57 00 00 00 03 00 00 00 cc 09 00 00 00 00 00 00 37 0b 00 00 00 ...F.......W...............7....
5c880 00 00 00 d7 0b 00 00 00 00 00 00 35 81 5f d0 00 00 00 96 00 00 00 98 00 00 00 00 00 00 00 00 00 ...........5._..................
5c8a0 00 00 97 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 ................................
5c8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ca00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a8 74 04 01 00 00 00 00 00 f5 18 00 00 .................i..t...........
5ca20 00 00 00 00 00 02 00 00 00 00 00 00 01 2e 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 ..................#define._POSIX
5ca40 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 _C_SOURCE.200809L...&#include."x
5ca60 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 dg-shell-client-protocol.h"....#
5ca80 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d include.<fcntl.h>....#include.<m
5caa0 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 ath.h>....#include.<poll.h>....#
5cac0 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c include.<signal.h>....#include.<
5cae0 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 stdbool.h>....#include.<stdint.h
5cb00 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c >....#include.<stdio.h>....#incl
5cb20 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 ude.<stdlib.h>....#include.<stri
5cb40 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 ng.h>....#include.<sys/mman.h>..
5cb60 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 ..#include.<sys/timerfd.h>....#i
5cb80 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 nclude.<time.h>....#include.<uni
5cba0 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 std.h>....#include.<wayland-clie
5cbc0 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 nt.h>........#ifndef.M_PI...##de
5cbe0 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 fine.M_PI.3.14159265358979323846
5cc00 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 ....#endif....#ifndef.M_PI_2...%
5cc20 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 #define.M_PI_2.1.570796326794896
5cc40 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 61923....#endif.......)static.vo
5cc60 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b latile.sig_atomic_t.running.=.1;
5cc80 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 ....static.void.on_sig(int.s).{.
5cca0 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 .....(void)s;......running.=.0;.
5ccc0 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 ...}........struct.app.{......st
5cce0 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 ruct.wl_display.*d;......struct.
5cd00 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c wl_registry.*reg;......struct.wl
5cd20 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 _compositor.*comp;......struct.w
5cd40 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 l_shm.*shm;......struct.xdg_wm_b
5cd60 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 ase.*wm;......struct.wl_surface.
5cd80 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 *ws;......struct.xdg_surface.*xs
5cda0 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 ;......struct.xdg_toplevel.*xt;.
5cdc0 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 .....void.*pixels;......struct.w
5cde0 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 l_buffer.*buf;......int.w,.h;...
5ce00 0d 20 20 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 ...int.bw,.bh;......bool.configu
5ce20 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 red;......bool.redraw;....};....
5ce40 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 ...Jstatic.void.wm_ping(void.*da
5ce60 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 ta,.struct.xdg_wm_base.*wm,.uint
5ce80 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 32_t.serial).{......xdg_wm_base_
5cea0 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 pong(wm,.serial);....}.......$st
5cec0 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 atic.int.create_shm(size_t.size)
5cee0 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b .{...#..char.t[].=."/tmp/wlclock
5cf00 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 -XXXXXX";......int.fd.=.mkstemp(
5cf20 74 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 t);......if.(fd.<.0)........exit
5cf40 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 1e 20 20 69 66 20 28 66 74 (1);......unlink(t);......if.(ft
5cf60 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 runcate(fd,.size).<.0)........ex
5cf80 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 it(1);......return.fd;....}.....
5cfa0 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 ..(static.void.destroy_buf(struc
5cfc0 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 t.app.*a).{......if.(!a->buf)...
5cfe0 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 .....return;...*..size_t.size.=.
5d000 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 (size_t)a->bw.*.a->bh.*.4;......
5d020 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 wl_buffer_destroy(a->buf);......
5d040 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d munmap(a->pixels,.size);......a-
5d060 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 >buf.=.NULL;......a->pixels.=.NU
5d080 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f LL;....}.......&static.void.allo
5d0a0 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 c_buf(struct.app.*a).{......dest
5d0c0 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 roy_buf(a);...(..size_t.size.=.(
5d0e0 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 size_t)a->w.*.a->h.*.4;......int
5d100 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e .fd.=.create_shm(size);...J..a->
5d120 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 pixels.=.mmap(NULL,.size,.PROT_R
5d140 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 EAD.|.PROT_WRITE,.MAP_SHARED,.fd
5d160 2c 20 30 29 3b 00 00 00 1e 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f ,.0);......if.(a->pixels.==.MAP_
5d180 46 41 49 4c 45 44 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 FAILED)........exit(1);...B..str
5d1a0 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 uct.wl_shm_pool.*pool.=.wl_shm_c
5d1c0 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 reate_pool(a->shm,.fd,.size);...
5d1e0 43 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 C..a->buf.=.wl_shm_pool_create_b
5d200 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 uffer(pool,.0,.a->w,.a->h,.a->w.
5d220 2a 20 34 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *.4,...=........................
5d240 20 20 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 .............WL_SHM_FORMAT_ARGB8
5d260 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 888);......wl_shm_pool_destroy(p
5d280 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0f 20 20 61 2d 3e 62 77 ool);......close(fd);......a->bw
5d2a0 20 3d 20 61 2d 3e 77 3b 00 00 00 0f 20 20 61 2d 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d .=.a->w;......a->bh.=.a->h;....}
5d2c0 00 00 00 00 00 00 00 4c 73 74 61 74 69 63 20 76 6f 69 64 20 6c 69 6e 65 28 75 69 6e 74 33 32 5f .......Lstatic.void.line(uint32_
5d2e0 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 t.*px,.int.w,.int.h,.int.x0,.int
5d300 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 1e 20 20 20 20 20 20 20 20 .y0,.int.x1,.int.y1,............
5d320 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 .........uint32_t.c).{.../..int.
5d340 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 dx.=.abs(x1.-.x0),.sx.=.x0.<.x1.
5d360 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 ?.1.:.-1;...0..int.dy.=.-abs(y1.
5d380 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 -.y0),.sy.=.y0.<.y1.?.1.:.-1;...
5d3a0 14 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 3b 00 00 00 0d 20 20 77 68 69 6c 65 ...int.err.=.dx.+.dy;......while
5d3c0 20 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 .(1).{.../....if.(x0.>=.0.&&.x0.
5d3e0 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 1a 20 20 20 <.w.&&.y0.>=.0.&&.y0.<.h).......
5d400 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 1d 20 20 20 20 69 ...px[y0.*.w.+.x0].=.c;........i
5d420 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 f.(x0.==.x1.&&.y0.==.y1)........
5d440 20 20 62 72 65 61 6b 3b 00 00 00 15 20 20 20 20 69 6e 74 20 65 32 20 3d 20 32 20 2a 20 65 72 72 ..break;........int.e2.=.2.*.err
5d460 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 10 20 20 20 20 ;........if.(e2.>=.dy).{........
5d480 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 ..err.+=.dy;..........x0.+=.sx;.
5d4a0 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 .......}........if.(e2.<=.dx).{.
5d4c0 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 20 20 20 20 79 30 20 .........err.+=.dx;..........y0.
5d4e0 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 +=.sy;........}......}....}.....
5d500 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a ..Estatic.void.circle(uint32_t.*
5d520 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 px,.int.w,.int.h,.int.cx,.int.cy
5d540 2c 20 69 6e 74 20 72 2c 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 ,.int.r,.......................u
5d560 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d int32_t.c).{..."..int.x.=.0,.y.=
5d580 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 .r,.d.=.3.-.2.*.r;......while.(y
5d5a0 20 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b .>=.x).{...H....int.p[8][2].=.{{
5d5c0 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 cx.+.x,.cy.+.y},.{cx.-.x,.cy.+.y
5d5e0 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 },.{cx.+.x,.cy.-.y},...H........
5d600 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 ...........{cx.-.x,.cy.-.y},.{cx
5d620 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c .+.y,.cy.+.x},.{cx.-.y,.cy.+.x},
5d640 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 ...7...................{cx.+.y,.
5d660 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 cy.-.x},.{cx.-.y,.cy.-.x}};.....
5d680 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 ...for.(int.i.=.0;.i.<.8;.i++)..
5d6a0 00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d .E......if.(p[i][0].>=.0.&&.p[i]
5d6c0 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b [0].<.w.&&.p[i][1].>=.0.&&.p[i][
5d6e0 31 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 1].<.h)...&........px[p[i][1].*.
5d700 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e w.+.p[i][0]].=.c;........if.(d.>
5d720 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 .0).{..........d.+=.4.*.(x.-.y).
5d740 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 +.10;..........y--;........}.els
5d760 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 e..........d.+=.4.*.x.+.6;......
5d780 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 50 73 74 61 74 69 63 ..x++;......}....}.......Pstatic
5d7a0 20 76 6f 69 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 .void.fill_tri(uint32_t.*px,.int
5d7c0 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 .w,.int.h,.int.x0,.int.y0,.int.x
5d7e0 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1,.int.y1,...2..................
5d800 20 20 20 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b ...int.x2,.int.y2,.uint32_t.c).{
5d820 00 00 00 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 ...B..int.min_y.=.y0.<.y1.?.(y0.
5d840 3c 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 <.y2.?.y0.:.y2).:.(y1.<.y2.?.y1.
5d860 3a 20 79 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 :.y2);...B..int.max_y.=.y0.>.y1.
5d880 3f 20 28 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 ?.(y0.>.y2.?.y0.:.y2).:.(y1.>.y2
5d8a0 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 10 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 .?.y1.:.y2);......if.(min_y.<.0)
5d8c0 00 00 00 0e 20 20 20 20 6d 69 6e 5f 79 20 3d 20 30 3b 00 00 00 11 20 20 69 66 20 28 6d 61 78 5f ........min_y.=.0;......if.(max_
5d8e0 79 20 3e 3d 20 68 29 00 00 00 12 20 20 20 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 y.>=.h)........max_y.=.h.-.1;...
5d900 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f (..for.(int.y.=.min_y;.y.<=.max_
5d920 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 y;.y++).{........int.x_start.=.w
5d940 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 ,.x_end.=.0;...3....int.xs[3].=.
5d960 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 {x0,.x1,.x2},.ys[3].=.{y0,.y1,.y
5d980 32 7d 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 2};...!....for.(int.i.=.0;.i.<.3
5d9a0 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 ;.i++).{..........int.j.=.(i.+.1
5d9c0 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 ).%.3;...C......if.((ys[i].<=.y.
5d9e0 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 &&.ys[j].>.y).||.(ys[j].<=.y.&&.
5da00 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d ys[i].>.y)).{...H........int.x.=
5da20 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 .xs[i].+.(y.-.ys[i]).*.(xs[j].-.
5da40 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b 00 00 00 18 20 20 20 xs[i])./.(ys[j].-.ys[i]);.......
5da60 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 74 61 72 74 29 00 00 00 16 20 20 20 20 20 20 20 .....if.(x.<.x_start)...........
5da80 20 20 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 00 00 16 20 20 20 20 20 20 20 20 69 66 20 28 78 ...x_start.=.x;............if.(x
5daa0 20 3e 20 78 5f 65 6e 64 29 00 00 00 14 20 20 20 20 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 78 .>.x_end)..............x_end.=.x
5dac0 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 14 20 20 20 20 69 66 20 ;..........}........}........if.
5dae0 28 78 5f 73 74 61 72 74 20 3c 20 30 29 00 00 00 12 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d (x_start.<.0)..........x_start.=
5db00 20 30 3b 00 00 00 13 20 20 20 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 00 00 00 14 20 20 .0;........if.(x_end.>=.w)......
5db20 20 20 20 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 2a 20 20 20 20 66 6f 72 20 28 69 ....x_end.=.w.-.1;...*....for.(i
5db40 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b 29 nt.x.=.x_start;.x.<=.x_end;.x++)
5db60 00 00 00 18 20 20 20 20 20 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 03 ..........px[y.*.w.+.x].=.c;....
5db80 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 ..}....}.......#static.void.rend
5dba0 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d er(struct.app.*a).{.../..if.(!a-
5dbc0 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 >configured.||.a->w.<=.0.||.a->h
5dbe0 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 .<=.0)........return;......if.(!
5dc00 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b a->buf)........alloc_buf(a);....
5dc20 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 24 20 ..uint32_t.*px.=.a->pixels;...$.
5dc40 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 .memset(px,.0xFF,.a->w.*.a->h.*.
5dc60 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 4);......time_t.tt.=.time(NULL);
5dc80 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 ......struct.tm.tmv;......localt
5dca0 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 ime_r(&tt,.&tmv);...#..int.cx.=.
5dcc0 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e a->w./.2,.cy.=.a->h./.2;.../..in
5dce0 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 t.r.=.(a->w.<.a->h.?.a->w.:.a->h
5dd00 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 )./.2.-.10;......if.(r.<.5).....
5dd20 20 20 20 72 20 3d 20 35 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 ...r.=.5;......for.(int.i.=.0;.i
5dd40 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 .<.60;.i++).{........double.ang.
5dd60 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 =.i./.60.0.*.2.*.M_PI.-.M_PI_2;.
5dd80 00 00 24 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 ..$....int.len.=.(i.%.5.==.0).?.
5dda0 32 30 20 3a 20 38 3b 00 00 00 33 20 20 20 20 66 6f 72 20 28 64 6f 75 62 6c 65 20 66 20 3d 20 2d 20.:.8;...3....for.(double.f.=.-
5ddc0 30 2e 30 31 3b 20 66 20 3c 3d 20 30 2e 30 31 3b 20 66 20 2b 3d 20 30 2e 30 30 35 29 20 7b 00 00 0.01;.f.<=.0.01;.f.+=.0.005).{..
5dde0 00 39 20 20 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 .9......line(px,.a->w,.a->h,.cx.
5de00 2b 20 63 6f 73 28 61 6e 67 20 2b 20 66 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 00 00 00 40 20 +.cos(ang.+.f).*.(r.-.len),...@.
5de20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2b 20 66 29 20 2a 20 28 72 ..........cy.+.sin(ang.+.f).*.(r
5de40 20 2d 20 6c 65 6e 29 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 20 2b 20 66 29 20 2a 20 72 2c 00 .-.len),.cx.+.cos(ang.+.f).*.r,.
5de60 00 00 2e 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2b 20 66 29 20 ..............cy.+.sin(ang.+.f).
5de80 2a 20 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 *.r,.0xFF000000);........}......
5dea0 7d 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 }...4..double.sa.=.tmv.tm_sec./.
5dec0 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 60.0.*.2.*.M_PI.-.M_PI_2;...J..d
5dee0 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f ouble.ma.=.(tmv.tm_min.+.tmv.tm_
5df00 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 sec./.60.0)./.60.0.*.2.*.M_PI.-.
5df20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 4c 20 20 20 20 M_PI_2;......double.ha.=...L....
5df40 20 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d 5f ..((tmv.tm_hour.%.12).+.(tmv.tm_
5df60 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d min./.60.0))./.12.0.*.2.*.M_PI.-
5df80 20 4d 5f 50 49 5f 32 3b 00 00 00 4c 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c .M_PI_2;...L..fill_tri(px,.a->w,
5dfa0 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2d 20 30 2e 32 29 20 2a 20 31 32 2c 20 .a->h,.cx.+.cos(ha.-.0.2).*.12,.
5dfc0 63 79 20 2b 20 73 69 6e 28 68 61 20 2d 20 30 2e 32 29 20 2a 20 31 32 2c 00 00 00 3c 20 20 20 20 cy.+.sin(ha.-.0.2).*.12,...<....
5dfe0 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2b 20 30 2e 32 29 20 2a 20 31 32 2c 20 .......cx.+.cos(ha.+.0.2).*.12,.
5e000 63 79 20 2b 20 73 69 6e 28 68 61 20 2b 20 30 2e 32 29 20 2a 20 31 32 2c 00 00 00 47 20 20 20 20 cy.+.sin(ha.+.0.2).*.12,...G....
5e020 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 2c 20 63 .......cx.+.cos(ha).*.r.*.0.5,.c
5e040 79 20 2b 20 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 2c 20 30 78 46 46 30 30 30 30 30 y.+.sin(ha).*.r.*.0.5,.0xFF00000
5e060 30 29 3b 00 00 00 4e 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 0);...N..fill_tri(px,.a->w,.a->h
5e080 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2d 20 30 2e 31 32 29 20 2a 20 31 30 2c 20 63 79 20 2b ,.cx.+.cos(ma.-.0.12).*.10,.cy.+
5e0a0 20 73 69 6e 28 6d 61 20 2d 20 30 2e 31 32 29 20 2a 20 31 30 2c 00 00 00 3e 20 20 20 20 20 20 20 .sin(ma.-.0.12).*.10,...>.......
5e0c0 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2b 20 30 2e 31 32 29 20 2a 20 31 30 2c 20 63 79 ....cx.+.cos(ma.+.0.12).*.10,.cy
5e0e0 20 2b 20 73 69 6e 28 6d 61 20 2b 20 30 2e 31 32 29 20 2a 20 31 30 2c 00 00 00 49 20 20 20 20 20 .+.sin(ma.+.0.12).*.10,...I.....
5e100 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 35 2c 20 63 ......cx.+.cos(ma).*.r.*.0.75,.c
5e120 79 20 2b 20 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 37 35 2c 20 30 78 46 46 30 30 30 30 y.+.sin(ma).*.r.*.0.75,.0xFF0000
5e140 30 30 29 3b 00 00 00 33 20 20 66 6f 72 20 28 64 6f 75 62 6c 65 20 66 20 3d 20 2d 30 2e 30 30 35 00);...3..for.(double.f.=.-0.005
5e160 3b 20 66 20 3c 3d 20 30 2e 30 30 35 3b 20 66 20 2b 3d 20 30 2e 30 30 35 29 20 7b 00 00 00 3d 20 ;.f.<=.0.005;.f.+=.0.005).{...=.
5e180 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 ...line(px,.a->w,.a->h,.cx,.cy,.
5e1a0 63 78 20 2b 20 63 6f 73 28 73 61 20 2b 20 66 29 20 2a 20 72 20 2a 20 30 2e 38 35 2c 00 00 00 32 cx.+.cos(sa.+.f).*.r.*.0.85,...2
5e1c0 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 73 61 20 2b 20 66 29 20 2a 20 72 20 2a 20 .........cy.+.sin(sa.+.f).*.r.*.
5e1e0 30 2e 38 35 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 20 20 20 66 0.85,.0xFFFF0000);......}......f
5e200 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 72 20 3c 20 38 3b 20 69 72 2b 2b 29 00 00 00 or.(int.ir.=.0;.ir.<.8;.ir++)...
5e220 33 20 20 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 3....circle(px,.a->w,.a->h,.cx,.
5e240 63 79 2c 20 69 72 2c 20 30 78 46 46 46 46 46 46 46 46 29 3b 00 00 00 30 20 20 63 69 72 63 6c 65 cy,.ir,.0xFFFFFFFF);...0..circle
5e260 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 39 2c 20 30 78 46 46 (px,.a->w,.a->h,.cx,.cy,.9,.0xFF
5e280 30 30 30 30 30 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 000000);...)..wl_surface_attach(
5e2a0 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 a->ws,.a->buf,.0,.0);...4..wl_su
5e2c0 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c rface_damage_buffer(a->ws,.0,.0,
5e2e0 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f .a->w,.a->h);......wl_surface_co
5e300 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 mmit(a->ws);......a->redraw.=.fa
5e320 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f lse;....}.......Gstatic.void.xt_
5e340 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 close(void.*d,.struct.xdg_toplev
5e360 65 6c 20 2a 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 4a el.*xt).{.running.=.0;.}.......J
5e380 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 static.void.xt_cfg(void.*d,.stru
5e3a0 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 ct.xdg_toplevel.*xt,.int32_t.w,.
5e3c0 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 int32_t.h,...(..................
5e3e0 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 .struct.wl_array.*s).{......stru
5e400 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 ct.app.*a.=.d;...3..if.(w.>.0.&&
5e420 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e .h.>.0.&&.(w.!=.a->w.||.h.!=.a->
5e440 68 29 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d h)).{........a->w.=.w;........a-
5e460 3e 68 20 3d 20 68 3b 00 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 >h.=.h;........destroy_buf(a);..
5e480 00 15 20 20 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 ......a->redraw.=.true;......}..
5e4a0 00 01 7d 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f ..}.......Fstatic.void.xs_cfg(vo
5e4c0 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 id.*d,.struct.xdg_surface.*xs,.u
5e4e0 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 int32_t.serial).{......struct.ap
5e500 70 20 2a 61 20 3d 20 64 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 p.*a.=.d;...(..xdg_surface_ack_c
5e520 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f onfigure(xs,.serial);......a->co
5e540 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 13 20 20 61 2d 3e 72 65 64 72 61 77 20 nfigured.=.true;......a->redraw.
5e560 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 =.true;....}.......Cstatic.void.
5e580 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 reg_global(void.*d,.struct.wl_re
5e5a0 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 33 20 20 20 20 20 gistry.*r,.uint32_t.id,...3.....
5e5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c ..................const.char.*i,
5e5e0 20 75 69 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a .uint32_t.v).{......struct.app.*
5e600 61 20 3d 20 64 3b 00 00 00 22 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 a.=.d;..."..if.(!strcmp(i,."wl_c
5e620 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c ompositor"))...C....a->comp.=.wl
5e640 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 _registry_bind(r,.id,.&wl_compos
5e660 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 20 20 20 65 6c 73 65 20 69 66 itor_interface,.4);......else.if
5e680 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 20 20 61 .(!strcmp(i,."wl_shm"))...;....a
5e6a0 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 ->shm.=.wl_registry_bind(r,.id,.
5e6c0 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 &wl_shm_interface,.1);...'..else
5e6e0 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 .if.(!strcmp(i,."xdg_wm_base")).
5e700 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e {...?....a->wm.=.wl_registry_bin
5e720 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c d(r,.id,.&xdg_wm_base_interface,
5e740 20 31 29 3b 00 00 00 43 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 .1);...C....static.const.struct.
5e760 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 xdg_wm_base_listener.l.=.{.ping.
5e780 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 =.wm_ping};...+....xdg_wm_base_a
5e7a0 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 dd_listener(a->wm,.&l,.a);......
5e7c0 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 }....}........int.main(void).{..
5e7e0 00 15 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 ....struct.app.a.=.{0};......a.w
5e800 20 3d 20 34 30 30 3b 00 00 00 0c 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 .=.400;......a.h.=.400;......sig
5e820 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 nal(SIGINT,.on_sig);...!..a.d.=.
5e840 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 0b 20 20 69 wl_display_connect(NULL);......i
5e860 66 20 28 21 61 2e 64 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 f.(!a.d)........return.1;...'..a
5e880 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 .reg.=.wl_display_get_registry(a
5e8a0 2e 64 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c .d);...G..static.const.struct.wl
5e8c0 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c _registry_listener.rl.=.{.global
5e8e0 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 .=.reg_global};...+..wl_registry
5e900 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 _add_listener(a.reg,.&rl,.&a);..
5e920 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 ....wl_display_roundtrip(a.d);..
5e940 00 21 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e .!..if.(!a.comp.||.!a.shm.||.!a.
5e960 77 6d 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d wm)........return.1;......a.ws.=
5e980 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e .wl_compositor_create_surface(a.
5e9a0 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 comp);...1..a.xs.=.xdg_wm_base_g
5e9c0 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 et_xdg_surface(a.wm,.a.ws);...G.
5e9e0 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 .static.const.struct.xdg_surface
5ea00 5f 6c 69 73 74 65 6e 65 72 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 _listener.xsl.=.{.configure.=.xs
5ea20 5f 63 66 67 7d 3b 00 00 00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 _cfg};...+..xdg_surface_add_list
5ea40 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 ener(a.xs,.&xsl,.&a);...(..a.xt.
5ea60 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 =.xdg_surface_get_toplevel(a.xs)
5ea80 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 ;...G..static.const.struct.xdg_t
5eaa0 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 oplevel_listener.xtl.=.{.configu
5eac0 72 65 20 3d 20 78 74 5f 63 66 67 2c 00 00 00 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 re.=.xt_cfg,...F................
5eae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5eb00 20 20 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f ....close.=.xt_close};...,..xdg_
5eb20 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c toplevel_add_listener(a.xt,.&xtl
5eb40 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 ,.&a);...*..xdg_toplevel_set_tit
5eb60 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 le(a.xt,."wlclock");......wl_sur
5eb80 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 17 20 20 77 68 69 6c 65 20 28 21 face_commit(a.ws);......while.(!
5eba0 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 1d 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f a.configured)........wl_display_
5ebc0 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 dispatch(a.d);......render(&a);.
5ebe0 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c ..9..int.tfd.=.timerfd_create(CL
5ec00 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 OCK_MONOTONIC,.TFD_CLOEXEC);...F
5ec20 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 ..timerfd_settime(tfd,.0,.&(stru
5ec40 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 ct.itimerspec){{1,.0},.{1,.0}},.
5ec60 4e 55 4c 4c 29 3b 00 00 00 13 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 NULL);......char.buffer[100];...
5ec80 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c ...while.(running).{...-....whil
5eca0 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 e.(wl_display_prepare_read(a.d).
5ecc0 21 3d 20 30 29 00 00 00 27 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 !=.0)...'......wl_display_dispat
5ece0 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c ch_pending(a.d);........wl_displ
5ed00 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c ay_flush(a.d);...M....struct.pol
5ed20 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 lfd.fds[2].=.{{wl_display_get_fd
5ed40 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 (a.d),.POLLIN},.{tfd,.POLLIN}};.
5ed60 00 00 1f 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 .......if.(poll(fds,.2,.-1).<.0)
5ed80 20 7b 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 .{..."......wl_display_cancel_re
5eda0 61 64 28 61 2e 64 29 3b 00 00 00 0f 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 20 ad(a.d);..........continue;.....
5edc0 20 20 20 7d 00 00 00 20 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 ...}........if.(fds[0].revents.&
5ede0 20 50 4f 4c 4c 49 4e 29 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 .POLLIN)..."......wl_display_rea
5ee00 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 00 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 d_events(a.d);........else..."..
5ee20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b ....wl_display_cancel_read(a.d);
5ee40 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 ...%....wl_display_dispatch_pend
5ee60 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 ing(a.d);..."....if.(fds[1].reve
5ee80 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f nts.&.POLLIN).{..........uint64_
5eea0 74 20 74 5f 65 78 70 3b 00 00 00 27 20 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 t.t_exp;...'......read(tfd,.&t_e
5eec0 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 78 70 29 29 3b 00 00 00 1e 20 20 20 20 20 20 74 69 6d xp,.sizeof(t_exp));..........tim
5eee0 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 20 20 73 e_t.cli.=.time(NULL);...,......s
5ef00 74 72 75 63 74 20 74 6d 20 2a 74 5f 73 74 72 75 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 truct.tm.*t_struct.=.localtime(&
5ef20 63 6c 69 29 3b 00 00 00 49 20 20 20 20 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 cli);...I......strftime(buffer,.
5ef40 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a sizeof(buffer),."%d-%m-%Y.%I:%M:
5ef60 25 53 20 25 70 22 2c 20 74 5f 73 74 72 75 63 74 29 3b 00 00 00 25 20 20 20 20 20 20 70 72 69 6e %S.%p",.t_struct);...%......prin
5ef80 74 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 73 22 2c 20 62 75 66 66 65 72 29 3b 00 00 00 15 20 tf("\rTime.is.%s",.buffer);.....
5efa0 20 20 20 20 20 66 66 6c 75 73 68 28 73 74 64 6f 75 74 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e .....fflush(stdout);..........a.
5efc0 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 11 20 20 20 20 69 redraw.=.true;........}........i
5efe0 66 20 28 61 2e 72 65 64 72 61 77 29 00 00 00 11 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 f.(a.redraw)..........render(&a)
5f000 3b 00 00 00 03 20 20 7d 00 00 00 0f 20 20 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b 00 00 00 0d 20 ;......}......printf("\n");.....
5f020 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 12 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 .close(tfd);......destroy_buf(&a
5f040 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e );......wl_display_disconnect(a.
5f060 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 d);......return.0;....}5........
5f080 00 00 00 00 00 00 00 2e 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bf ................................
5f0a0 22 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 97 00 00 00 99 00 00 00 00 00 "..............5._..............
5f0c0 00 00 00 00 00 00 98 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 ................................
5f0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a8 75 04 01 00 00 00 00 00 .....................i..u.......
5f240 f5 18 00 00 01 2a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 01 2b 00 00 00 .....*................}.....+...
5f260 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 16 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1d 20 ................................
5f280 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 f5 18 00 00 .....wl_display_cancel_read(....
5f2a0 01 17 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 07 00 00 00 00 00 00 00 00 00 00 00 01 ................................
5f2c0 00 00 00 2b 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 ...+..int.tfd.=.timerfd_create(C
5f2e0 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c f5 18 00 00 01 08 00 00 00 00 00 00 00 00 00 00 00 LOCK_MONOTONIC,.................
5f300 00 f5 18 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 29 20 20 20 20 20 20 20 20 20 ......................).........
5f320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5f340 f5 18 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 f5 00 00 00 00 00 00 00 00 ................................
5f360 00 00 00 01 00 00 00 30 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c .......0..static.const.struct.wl
5f380 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 f5 18 00 00 00 f6 00 00 _registry_listener.rl.=.........
5f3a0 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 e4 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0a ................................
5f3c0 20 20 20 20 61 2d 3e 73 68 6d f5 18 00 00 00 e5 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 ....a->shm......................
5f3e0 00 d2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04 20 20 20 20 f5 18 00 00 00 d3 00 00 00 00 ................................
5f400 00 00 00 00 00 00 00 00 f5 18 00 00 00 bb 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0f 20 20 ................................
5f420 66 6f 72 20 28 64 6f 75 62 6c 65 20 66 f5 18 00 00 00 bc 00 00 00 00 00 00 00 00 00 00 00 00 f5 for.(double.f...................
5f440 18 00 00 00 b2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 00 b3 00 00 00 ................................
5f460 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 a6 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1e 20 ................................
5f480 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 f5 18 00 .for.(int.i.=.0;.i.<.60;.i++)...
5f4a0 00 00 a7 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 92 00 00 00 00 00 00 00 00 00 00 00 ................................
5f4c0 01 00 00 00 17 20 20 20 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 20 78 5f 65 f5 18 00 00 .........if.(x_end.>=.w).x_e....
5f4e0 00 93 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 01 ................................
5f500 00 00 00 2e 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f ....static.void.fill_tri(uint32_
5f520 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 f5 18 00 00 00 81 00 00 00 00 00 00 00 00 t.*px,.int.w,.int...............
5f540 00 00 00 00 f5 18 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 41 20 20 61 2d 3e 62 .........P...............A..a->b
5f560 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 uf.=.wl_shm_pool_create_buffer(p
5f580 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 f5 18 00 00 00 ool,.0,.a->w,.a->h,.a->w.*......
5f5a0 51 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 Q...............................
5f5c0 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 .....................5..........
5f5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .............P...A..............
5f600 00 00 00 00 00 00 07 00 00 00 00 00 00 f5 18 00 00 00 00 50 00 00 00 41 00 00 00 00 00 00 00 00 ...................P...A........
5f620 00 00 00 30 00 00 00 2e 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 ...0............................
5f640 00 00 00 f5 18 00 00 00 00 80 00 00 00 2e 00 00 00 00 00 00 00 00 00 00 00 12 00 00 00 17 00 00 ................................
5f660 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 92 ................................
5f680 00 00 00 17 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 1e 00 00 00 00 0f 00 00 00 00 00 00 00 ................................
5f6a0 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 a6 00 00 00 1e 00 00 00 00 00 00 ................................
5f6c0 00 00 00 00 00 0c 00 00 00 02 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 ................................
5f6e0 00 00 00 00 00 f5 18 00 00 00 00 b2 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 0f ................................
5f700 00 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 ................................
5f720 00 bb 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 17 00 00 00 04 00 00 00 00 15 00 00 00 00 00 ................................
5f740 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 d2 00 00 00 04 00 00 00 00 ................................
5f760 00 00 00 00 00 00 00 12 00 00 00 0a 00 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f780 02 00 00 00 00 00 00 f5 18 00 00 00 00 e4 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 11 00 00 ................................
5f7a0 00 30 00 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 .0..............................
5f7c0 00 00 00 f5 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 29 00 00 00 00 1c 00 00 00 .......0...............)........
5f7e0 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 00 01 00 00 29 00 00 .............................)..
5f800 00 00 00 00 00 00 00 00 00 07 00 00 00 2b 00 00 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 .............+..................
5f820 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 07 01 00 00 2b 00 00 00 00 00 00 00 00 00 00 00 0f ...................+............
5f840 00 00 00 1d 00 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 ................................
5f860 18 00 00 00 00 16 01 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00 00 21 00 ..............................!.
5f880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 35 81 5f d0 00 00 00 98 00 00 00 .....................5._........
5f8a0 9a 00 00 00 00 00 00 00 00 00 00 00 99 00 00 01 2b 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 ................+...............
5f8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5fa00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a8 76 04 ...........................i..v.
5fa20 01 00 00 00 2d 00 f5 18 00 00 00 6e 00 00 00 d3 00 00 01 2b 00 00 00 54 00 00 00 53 73 74 61 74 ....-......n.......+...T...Sstat
5fa40 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 ic.void.circle(uint32_t.*px,.int
5fa60 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 .w,.int.h,.int.cx,.int.cy,.int.r
5fa80 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 ,.uint32_t.c).{..."..int.x.=.0,.
5faa0 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 y.=.r,.d.=.3.-.2.*.r;......while
5fac0 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d .(y.>=.x).{...H....int.p[8][2].=
5fae0 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 .{{cx.+.x,.cy.+.y},.{cx.-.x,.cy.
5fb00 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 +.y},.{cx.+.x,.cy.-.y},...H.....
5fb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 ..............{cx.-.x,.cy.-.y},.
5fb40 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 {cx.+.y,.cy.+.x},.{cx.-.y,.cy.+.
5fb60 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 x},...7...................{cx.+.
5fb80 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 y,.cy.-.x},.{cx.-.y,.cy.-.x}};..
5fba0 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b ......for.(int.i.=.0;.i.<.8;.i++
5fbc0 29 00 00 00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 )...E......if.(p[i][0].>=.0.&&.p
5fbe0 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b [i][0].<.w.&&.p[i][1].>=.0.&&.p[
5fc00 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d i][1].<.h)...&........px[p[i][1]
5fc20 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 .*.w.+.p[i][0]].=.c;........if.(
5fc40 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 d.>.0).{..........d.+=.4.*.(x.-.
5fc60 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 y).+.10;..........y--;........}.
5fc80 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 else..........d.+=.4.*.x.+.6;...
5fca0 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 6e 73 74 61 .....x++;......}....}.......nsta
5fcc0 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 tic.void.fill_tri(uint32_t.*px,.
5fce0 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e int.w,.int.h,.int.x0,.int.y0,.in
5fd00 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 t.x1,.int.y1,.int.x2,.int.y2,.ui
5fd20 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 nt32_t.c).{...B..int.min_y.=.y0.
5fd40 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 <.y1.?.(y0.<.y2.?.y0.:.y2).:.(y1
5fd60 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 .<.y2.?.y1.:.y2);...B..int.max_y
5fd80 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 .=.y0.>.y1.?.(y0.>.y2.?.y0.:.y2)
5fda0 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 1b 20 20 69 66 20 .:.(y1.>.y2.?.y1.:.y2);......if.
5fdc0 28 6d 69 6e 5f 79 20 3c 20 30 29 20 6d 69 6e 5f 79 20 3d 20 30 3b 00 00 00 20 20 20 69 66 20 28 (min_y.<.0).min_y.=.0;......if.(
5fde0 6d 61 78 5f 79 20 3e 3d 20 68 29 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 max_y.>=.h).max_y.=.h.-.1;...(..
5fe00 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 for.(int.y.=.min_y;.y.<=.max_y;.
5fe20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 y++).{........int.x_start.=.w,.x
5fe40 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 _end.=.0;...3....int.xs[3].=.{x0
5fe60 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b ,.x1,.x2},.ys[3].=.{y0,.y1,.y2};
5fe80 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 ...!....for.(int.i.=.0;.i.<.3;.i
5fea0 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 ++).{..........int.j.=.(i.+.1).%
5fec0 20 33 3b 00 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 .3;...C......if.((ys[i].<=.y.&&.
5fee0 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b ys[j].>.y).||.(ys[j].<=.y.&&.ys[
5ff00 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 25 20 20 20 20 20 20 20 20 69 66 20 28 79 73 5b 6a 5d 20 i].>.y)).{...%........if.(ys[j].
5ff20 3d 3d 20 79 73 5b 69 5d 29 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 48 20 20 20 20 20 20 20 20 69 ==.ys[i]).continue;...H........i
5ff40 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 73 nt.x.=.xs[i].+.(y.-.ys[i]).*.(xs
5ff60 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b 00 [j].-.xs[i])./.(ys[j].-.ys[i]);.
5ff80 00 00 25 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 74 61 72 74 29 20 78 5f 73 74 ..%........if.(x.<.x_start).x_st
5ffa0 61 72 74 20 3d 20 78 3b 00 00 00 21 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3e 20 78 5f 65 6e art.=.x;...!........if.(x.>.x_en
5ffc0 64 29 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 d).x_end.=.x;..........}........
5ffe0 7d 00 00 00 21 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 74 20 3c 20 30 29 20 78 5f 73 74 61 72 }...!....if.(x_start.<.0).x_star
60000 74 20 3d 20 30 3b 00 00 00 22 20 20 20 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 20 78 5f t.=.0;..."....if.(x_end.>=.w).x_
60020 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 3d 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d end.=.w.-.1;...=....for.(int.x.=
60040 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b 29 20 70 78 5b 79 20 .x_start;.x.<=.x_end;.x++).px[y.
60060 2a 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 *.w.+.x].=.c;......}....}.......
60080 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a #static.void.render(struct.app.*
600a0 61 29 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 a).{.../..if.(!a->configured.||.
600c0 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 a->w.<=.0.||.a->h.<=.0)........r
600e0 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 20 eturn;......if.(!a->buf)........
60100 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 alloc_buf(a);......uint32_t.*px.
60120 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 =.a->pixels;...$..memset(px,.0xF
60140 46 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 F,.a->w.*.a->h.*.4);......time_t
60160 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d .tt.=.time(NULL);......struct.tm
60180 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 .tmv;......localtime_r(&tt,.&tmv
601a0 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 );...#..int.cx.=.a->w./.2,.cy.=.
601c0 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 a->h./.2;.../..int.r.=.(a->w.<.a
601e0 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 13 ->h.?.a->w.:.a->h)./.2.-.10;....
60200 20 20 69 66 20 28 72 20 3c 20 35 29 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 20 20 20 64 6f 75 ..if.(r.<.5).r.=.5;..........dou
60220 62 6c 65 20 74 68 69 63 6b 5f 74 69 63 6b 20 3d 20 72 20 2a 20 30 2e 30 32 3b 20 00 00 00 20 20 ble.thick_tick.=.r.*.0.02;......
60240 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 .for.(int.i.=.0;.i.<.60;.i++).{.
60260 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 .......double.ang.=.i./.60.0.*.2
60280 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 31 20 20 20 20 69 6e 74 20 6c 65 6e .*.M_PI.-.M_PI_2;...1....int.len
602a0 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 20 2a 20 30 2e 31 35 20 3a 20 72 20 2a .=.(i.%.5.==.0).?.r.*.0.15.:.r.*
602c0 20 30 2e 30 35 3b 00 00 00 3c 20 20 20 20 64 6f 75 62 6c 65 20 74 20 3d 20 28 69 20 25 20 35 20 .0.05;...<....double.t.=.(i.%.5.
602e0 3d 3d 20 30 29 20 3f 20 74 68 69 63 6b 5f 74 69 63 6b 20 3a 20 74 68 69 63 6b 5f 74 69 63 6b 20 ==.0).?.thick_tick.:.thick_tick.
60300 2a 20 30 2e 35 3b 00 00 00 1d 20 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c *.0.5;........fill_tri(px,.a->w,
60320 20 61 2d 3e 68 2c 20 00 00 00 38 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 .a->h,....8.............cx.+.cos
60340 28 61 6e 67 2d 30 2e 30 32 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 2d 30 2e 30 32 29 (ang-0.02)*r,.cy.+.sin(ang-0.02)
60360 2a 72 2c 00 00 00 38 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 *r,...8.............cx.+.cos(ang
60380 2b 30 2e 30 32 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 2b 30 2e 30 32 29 2a 72 2c 00 +0.02)*r,.cy.+.sin(ang+0.02)*r,.
603a0 00 00 47 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 2a 28 72 ..G.............cx.+.cos(ang)*(r
603c0 2d 6c 65 6e 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 2a 28 72 2d 6c 65 6e 29 2c 20 30 78 -len),.cy.+.sin(ang)*(r-len),.0x
603e0 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 34 20 20 64 6f 75 62 6c FF000000);......}.......4..doubl
60400 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d e.sa.=.tmv.tm_sec./.60.0.*.2.*.M
60420 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 _PI.-.M_PI_2;...J..double.ma.=.(
60440 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 tmv.tm_min.+.tmv.tm_sec./.60.0).
60460 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 54 20 /.60.0.*.2.*.M_PI.-.M_PI_2;...T.
60480 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 .double.ha.=.((tmv.tm_hour.%.12)
604a0 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a .+.(tmv.tm_min./.60.0))./.12.0.*
604c0 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 4d 20 20 66 69 6c .2.*.M_PI.-.M_PI_2;.......M..fil
604e0 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 l_tri(px,.a->w,.a->h,.cx.+.cos(h
60500 61 2d 30 2e 32 29 2a 72 2a 30 2e 30 38 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 2d 30 2e 32 29 2a a-0.2)*r*0.08,.cy.+.sin(ha-0.2)*
60520 72 2a 30 2e 30 38 2c 20 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 r*0.08,....=...........cx.+.cos(
60540 68 61 2b 30 2e 32 29 2a 72 2a 30 2e 30 38 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 2b 30 2e 32 29 ha+0.2)*r*0.08,.cy.+.sin(ha+0.2)
60560 2a 72 2a 30 2e 30 38 2c 20 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 *r*0.08,....?...........cx.+.cos
60580 28 68 61 29 2a 72 2a 30 2e 35 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 29 2a 72 2a 30 2e 35 2c 20 (ha)*r*0.5,.cy.+.sin(ha)*r*0.5,.
605a0 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 4f 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 0xFF000000);...O..fill_tri(px,.a
605c0 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 2d 30 2e 31 32 29 2a 72 2a 30 ->w,.a->h,.cx.+.cos(ma-0.12)*r*0
605e0 2e 30 36 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 2d 30 2e 31 32 29 2a 72 2a 30 2e 30 36 2c 20 00 .06,.cy.+.sin(ma-0.12)*r*0.06,..
60600 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 2b 30 2e 31 32 29 2a ..?...........cx.+.cos(ma+0.12)*
60620 72 2a 30 2e 30 36 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 2b 30 2e 31 32 29 2a 72 2a 30 2e 30 36 r*0.06,.cy.+.sin(ma+0.12)*r*0.06
60640 2c 20 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 2a 72 2a ,....?...........cx.+.cos(ma)*r*
60660 30 2e 38 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 2a 72 2a 30 2e 38 2c 20 30 78 46 46 30 30 30 0.8,.cy.+.sin(ma)*r*0.8,.0xFF000
60680 30 30 30 29 3b 00 00 00 00 00 00 00 33 20 20 66 6f 72 20 28 64 6f 75 62 6c 65 20 66 20 3d 20 2d 000);.......3..for.(double.f.=.-
606a0 30 2e 30 30 35 3b 20 66 20 3c 3d 20 30 2e 30 30 35 3b 20 66 20 2b 3d 20 30 2e 30 30 32 29 20 7b 0.005;.f.<=.0.005;.f.+=.0.002).{
606c0 00 00 00 59 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c ...Y....line(px,.a->w,.a->h,.cx,
606e0 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 2b 66 29 2a 72 2a 30 2e 39 2c 20 63 79 20 2b 20 .cy,.cx.+.cos(sa+f)*r*0.9,.cy.+.
60700 73 69 6e 28 73 61 2b 66 29 2a 72 2a 30 2e 39 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 sin(sa+f)*r*0.9,.0xFFFF0000);...
60720 03 20 20 7d 00 00 00 00 00 00 00 17 20 20 69 6e 74 20 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e ...}..........int.hub_r.=.r.*.0.
60740 30 35 3b 00 00 00 1b 20 20 69 66 20 28 68 75 62 5f 72 20 3c 20 33 29 20 68 75 62 5f 72 20 3d 20 05;......if.(hub_r.<.3).hub_r.=.
60760 33 3b 00 00 00 54 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 72 20 3c 20 68 75 3;...T..for.(int.ir.=.0;.ir.<.hu
60780 62 5f 72 3b 20 69 72 2b 2b 29 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 b_r;.ir++).circle(px,.a->w,.a->h
607a0 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 30 78 46 46 46 46 46 46 46 46 29 3b 35 81 f5 18 00 00 ,.cx,.cy,.ir,.0xFFFFFFFF);5.....
607c0 00 00 6e 00 00 00 45 00 00 00 53 00 00 00 24 00 00 00 63 00 00 00 03 00 00 00 cc 09 00 00 00 00 ..n...E...S...$...c.............
607e0 00 00 10 0c 00 00 00 00 00 00 f2 0c 00 00 00 00 00 00 35 81 5f d0 00 00 00 99 00 00 00 9b 00 00 ..................5._...........
60800 00 00 00 00 00 00 00 00 00 9a 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 ................................
60820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
608a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
608c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
608e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a8 ce 04 01 00 00 ........................i.......
60980 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 3b 00 00 00 1f 23 64 65 66 69 6e 65 ....................;....#define
609a0 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 00 26 23 69 6e 63 ._POSIX_C_SOURCE.200809L...&#inc
609c0 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e lude."xdg-shell-client-protocol.
609e0 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 h"....#include.<fcntl.h>....#inc
60a00 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e lude.<math.h>....#include.<poll.
60a20 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e h>....#include.<signal.h>....#in
60a40 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 clude.<stdbool.h>....#include.<s
60a60 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 tdint.h>....#include.<stdio.h>..
60a80 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 ..#include.<stdlib.h>....#includ
60aa0 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d e.<string.h>....#include.<sys/mm
60ac0 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 an.h>....#include.<sys/timerfd.h
60ae0 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 >....#include.<time.h>....#inclu
60b00 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 de.<unistd.h>....#include.<wayla
60b20 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 nd-client.h>........#ifndef.M_PI
60b40 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 ...##define.M_PI.3.1415926535897
60b60 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 9323846....#endif....#ifndef.M_P
60b80 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 I_2...%#define.M_PI_2.1.57079632
60ba0 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 679489661923....#endif.......)st
60bc0 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 atic.volatile.sig_atomic_t.runni
60be0 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e ng.=.1;....static.void.on_sig(in
60c00 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e t.s).{......(void)s;......runnin
60c20 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 g.=.0;....}........struct.app.{.
60c40 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 .....struct.wl_display.*d;......
60c60 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 struct.wl_registry.*reg;......st
60c80 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 ruct.wl_compositor.*comp;......s
60ca0 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 truct.wl_shm.*shm;......struct.x
60cc0 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 dg_wm_base.*wm;......struct.wl_s
60ce0 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 urface.*ws;......struct.xdg_surf
60d00 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 ace.*xs;......struct.xdg_topleve
60d20 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 l.*xt;......void.*pixels;......s
60d40 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 truct.wl_buffer.*buf;......int.w
60d60 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 ,.h;......int.bw,.bh;......bool.
60d80 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 configured;......bool.redraw;...
60da0 02 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 .};.......Jstatic.void.wm_ping(v
60dc0 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 oid.*data,.struct.xdg_wm_base.*w
60de0 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 67 5f 77 m,.uint32_t.serial).{......xdg_w
60e00 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 m_base_pong(wm,.serial);....}...
60e20 00 00 00 00 24 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f ....$static.int.create_shm(size_
60e40 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f t.size).{...#..char.t[].=."/tmp/
60e60 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d wlclock-XXXXXX";......int.fd.=.m
60e80 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 kstemp(t);......if.(fd.<.0).....
60ea0 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 1e 20 ...exit(1);......unlink(t);.....
60ec0 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 00 00 00 .if.(ftruncate(fd,.size).<.0)...
60ee0 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 .....exit(1);......return.fd;...
60f00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 .}.......(static.void.destroy_bu
60f20 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e f(struct.app.*a).{......if.(!a->
60f40 62 75 66 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 buf)........return;...*..size_t.
60f60 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a 20 34 size.=.(size_t)a->bw.*.a->bh.*.4
60f80 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 ;......wl_buffer_destroy(a->buf)
60fa0 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 ;......munmap(a->pixels,.size);.
60fc0 00 00 10 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 20 20 61 2d 3e 70 69 78 65 .....a->buf.=.NULL;......a->pixe
60fe0 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f ls.=.NULL;....}.......&static.vo
61000 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 id.alloc_buf(struct.app.*a).{...
61020 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 ...destroy_buf(a);...(..size_t.s
61040 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 3b 00 00 ize.=.(size_t)a->w.*.a->h.*.4;..
61060 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 ....int.fd.=.create_shm(size);..
61080 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c .J..a->pixels.=.mmap(NULL,.size,
610a0 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 .PROT_READ.|.PROT_WRITE,.MAP_SHA
610c0 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1e 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 RED,.fd,.0);......if.(a->pixels.
610e0 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 ==.MAP_FAILED)........exit(1);..
61100 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 .B..struct.wl_shm_pool.*pool.=.w
61120 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 l_shm_create_pool(a->shm,.fd,.si
61140 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 ze);...C..a->buf.=.wl_shm_pool_c
61160 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 reate_buffer(pool,.0,.a->w,.a->h
61180 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.a->w.*.4,...=.................
611a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 ....................WL_SHM_FORMA
611c0 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 T_ARGB8888);......wl_shm_pool_de
611e0 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0f stroy(pool);......close(fd);....
61200 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b 00 00 00 0f 20 20 61 2d 3e 62 68 20 3d 20 61 2d 3e ..a->bw.=.a->w;......a->bh.=.a->
61220 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4c 73 74 61 74 69 63 20 76 6f 69 64 20 6c 69 6e 65 28 h;....}.......Lstatic.void.line(
61240 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 uint32_t.*px,.int.w,.int.h,.int.
61260 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 1e 20 x0,.int.y0,.int.x1,.int.y1,.....
61280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 ................uint32_t.c).{...
612a0 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 /..int.dx.=.abs(x1.-.x0),.sx.=.x
612c0 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 0.<.x1.?.1.:.-1;...0..int.dy.=.-
612e0 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a abs(y1.-.y0),.sy.=.y0.<.y1.?.1.:
61300 20 2d 31 3b 00 00 00 14 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 3b 00 00 00 0d .-1;......int.err.=.dx.+.dy;....
61320 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 ..while.(1).{.../....if.(x0.>=.0
61340 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 .&&.x0.<.w.&&.y0.>=.0.&&.y0.<.h)
61360 00 00 00 1a 20 20 20 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 ..........px[y0.*.w.+.x0].=.c;..
61380 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 ......if.(x0.==.x1.&&.y0.==.y1).
613a0 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 15 20 20 20 20 69 6e 74 20 65 32 20 3d 20 .........break;........int.e2.=.
613c0 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 2.*.err;........if.(e2.>=.dy).{.
613e0 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 .........err.+=.dy;..........x0.
61400 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d +=.sx;........}........if.(e2.<=
61420 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 .dx).{..........err.+=.dx;......
61440 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 ....y0.+=.sy;........}......}...
61460 01 7d 00 00 00 00 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e .}.......Estatic.void.circle(uin
61480 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c t32_t.*px,.int.w,.int.h,.int.cx,
614a0 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .int.cy,.int.r,.................
614c0 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d ......uint32_t.c).{..."..int.x.=
614e0 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 .0,.y.=.r,.d.=.3.-.2.*.r;......w
61500 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b hile.(y.>=.x).{...H....int.p[8][
61520 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 2].=.{{cx.+.x,.cy.+.y},.{cx.-.x,
61540 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 .cy.+.y},.{cx.+.x,.cy.-.y},...H.
61560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 ..................{cx.-.x,.cy.-.
61580 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 y},.{cx.+.y,.cy.+.x},.{cx.-.y,.c
615a0 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 y.+.x},...7...................{c
615c0 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d x.+.y,.cy.-.x},.{cx.-.y,.cy.-.x}
615e0 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b };........for.(int.i.=.0;.i.<.8;
61600 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 .i++)...E......if.(p[i][0].>=.0.
61620 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 &&.p[i][0].<.w.&&.p[i][1].>=.0.&
61640 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 &.p[i][1].<.h)...&........px[p[i
61660 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 ][1].*.w.+.p[i][0]].=.c;........
61680 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 if.(d.>.0).{..........d.+=.4.*.(
616a0 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 x.-.y).+.10;..........y--;......
616c0 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 ..}.else..........d.+=.4.*.x.+.6
616e0 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 ;........x++;......}....}.......
61700 50 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a Pstatic.void.fill_tri(uint32_t.*
61720 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 px,.int.w,.int.h,.int.x0,.int.y0
61740 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 ,.int.x1,.int.y1,...2...........
61760 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 ..........int.x2,.int.y2,.uint32
61780 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 _t.c).{...B..int.min_y.=.y0.<.y1
617a0 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 .?.(y0.<.y2.?.y0.:.y2).:.(y1.<.y
617c0 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 2.?.y1.:.y2);...B..int.max_y.=.y
617e0 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 0.>.y1.?.(y0.>.y2.?.y0.:.y2).:.(
61800 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 10 20 20 69 66 20 28 6d 69 6e y1.>.y2.?.y1.:.y2);......if.(min
61820 5f 79 20 3c 20 30 29 00 00 00 0e 20 20 20 20 6d 69 6e 5f 79 20 3d 20 30 3b 00 00 00 11 20 20 69 _y.<.0)........min_y.=.0;......i
61840 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 00 00 00 12 20 20 20 20 6d 61 78 5f 79 20 3d 20 68 20 f.(max_y.>=.h)........max_y.=.h.
61860 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 -.1;...(..for.(int.y.=.min_y;.y.
61880 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 <=.max_y;.y++).{........int.x_st
618a0 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 art.=.w,.x_end.=.0;...3....int.x
618c0 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 s[3].=.{x0,.x1,.x2},.ys[3].=.{y0
618e0 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 ,.y1,.y2};...!....for.(int.i.=.0
61900 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d ;.i.<.3;.i++).{..........int.j.=
61920 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 .(i.+.1).%.3;...C......if.((ys[i
61940 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c ].<=.y.&&.ys[j].>.y).||.(ys[j].<
61960 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 1b 20 20 20 20 20 20 20 20 =.y.&&.ys[i].>.y)).{............
61980 69 66 20 28 79 73 5b 6a 5d 20 3d 3d 20 79 73 5b 69 5d 29 00 00 00 13 20 20 20 20 20 20 20 20 20 if.(ys[j].==.ys[i]).............
619a0 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 .continue;...H........int.x.=.xs
619c0 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b [i].+.(y.-.ys[i]).*.(xs[j].-.xs[
619e0 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b 00 00 00 18 20 20 20 20 20 20 i])./.(ys[j].-.ys[i]);..........
61a00 20 20 69 66 20 28 78 20 3c 20 78 5f 73 74 61 72 74 29 00 00 00 16 20 20 20 20 20 20 20 20 20 20 ..if.(x.<.x_start)..............
61a20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 00 00 16 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3e 20 x_start.=.x;............if.(x.>.
61a40 78 5f 65 6e 64 29 00 00 00 14 20 20 20 20 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 x_end)..............x_end.=.x;..
61a60 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 14 20 20 20 20 69 66 20 28 78 5f ........}........}........if.(x_
61a80 73 74 61 72 74 20 3c 20 30 29 00 00 00 12 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 30 3b start.<.0)..........x_start.=.0;
61aa0 00 00 00 13 20 20 20 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 00 00 00 14 20 20 20 20 20 ........if.(x_end.>=.w).........
61ac0 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 2a 20 20 20 20 66 6f 72 20 28 69 6e 74 20 .x_end.=.w.-.1;...*....for.(int.
61ae0 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b 29 00 00 00 x.=.x_start;.x.<=.x_end;.x++)...
61b00 18 20 20 20 20 20 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 03 20 20 7d .......px[y.*.w.+.x].=.c;......}
61b20 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 ....}.......#static.void.render(
61b40 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f struct.app.*a).{.../..if.(!a->co
61b60 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d nfigured.||.a->w.<=.0.||.a->h.<=
61b80 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e .0)........return;......if.(!a->
61ba0 62 75 66 29 00 00 00 11 20 20 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 buf)........alloc_buf(a);......u
61bc0 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 24 20 20 6d 65 int32_t.*px.=.a->pixels;...$..me
61be0 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b mset(px,.0xFF,.a->w.*.a->h.*.4);
61c00 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 ......time_t.tt.=.time(NULL);...
61c20 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 ...struct.tm.tmv;......localtime
61c40 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e _r(&tt,.&tmv);...#..int.cx.=.a->
61c60 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 w./.2,.cy.=.a->h./.2;.../..int.r
61c80 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f .=.(a->w.<.a->h.?.a->w.:.a->h)./
61ca0 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 .2.-.10;......if.(r.<.5)........
61cc0 72 20 3d 20 35 3b 00 00 00 00 00 00 00 1f 20 20 64 6f 75 62 6c 65 20 74 68 69 63 6b 5f 74 69 63 r.=.5;..........double.thick_tic
61ce0 6b 20 3d 20 72 20 2a 20 30 2e 30 32 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 k.=.r.*.0.02;......for.(int.i.=.
61d00 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 0;.i.<.60;.i++).{........double.
61d20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 ang.=.i./.60.0.*.2.*.M_PI.-.M_PI
61d40 5f 32 3b 00 00 00 31 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 _2;...1....int.len.=.(i.%.5.==.0
61d60 29 20 3f 20 72 20 2a 20 30 2e 31 35 20 3a 20 72 20 2a 20 30 2e 30 35 3b 00 00 00 3c 20 20 20 20 ).?.r.*.0.15.:.r.*.0.05;...<....
61d80 64 6f 75 62 6c 65 20 74 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 74 68 69 63 6b 5f double.t.=.(i.%.5.==.0).?.thick_
61da0 74 69 63 6b 20 3a 20 74 68 69 63 6b 5f 74 69 63 6b 20 2a 20 30 2e 35 3b 00 00 00 50 20 20 20 20 tick.:.thick_tick.*.0.5;...P....
61dc0 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f fill_tri(px,.a->w,.a->h,.cx.+.co
61de0 73 28 61 6e 67 20 2d 20 30 2e 30 32 29 20 2a 20 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 s(ang.-.0.02).*.r,.cy.+.sin(ang.
61e00 2d 20 30 2e 30 32 29 20 2a 20 72 2c 00 00 00 40 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 -.0.02).*.r,...@.............cx.
61e20 2b 20 63 6f 73 28 61 6e 67 20 2b 20 30 2e 30 32 29 20 2a 20 72 2c 20 63 79 20 2b 20 73 69 6e 28 +.cos(ang.+.0.02).*.r,.cy.+.sin(
61e40 61 6e 67 20 2b 20 30 2e 30 32 29 20 2a 20 72 2c 00 00 00 4f 20 20 20 20 20 20 20 20 20 20 20 20 ang.+.0.02).*.r,...O............
61e60 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 20 63 79 20 2b .cx.+.cos(ang).*.(r.-.len),.cy.+
61e80 20 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 20 30 78 46 46 30 30 30 30 30 .sin(ang).*.(r.-.len),.0xFF00000
61ea0 30 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 0);......}.......4..double.sa.=.
61ec0 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d tmv.tm_sec./.60.0.*.2.*.M_PI.-.M
61ee0 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f _PI_2;...J..double.ma.=.(tmv.tm_
61f00 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 min.+.tmv.tm_sec./.60.0)./.60.0.
61f20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 *.2.*.M_PI.-.M_PI_2;......double
61f40 20 68 61 20 3d 00 00 00 4c 20 20 20 20 20 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 .ha.=...L......((tmv.tm_hour.%.1
61f60 32 29 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 2).+.(tmv.tm_min./.60.0))./.12.0
61f80 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 39 20 20 66 .*.2.*.M_PI.-.M_PI_2;.......9..f
61fa0 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 ill_tri(px,.a->w,.a->h,.cx.+.cos
61fc0 28 68 61 20 2d 20 30 2e 32 29 20 2a 20 72 20 2a 20 30 2e 30 38 2c 00 00 00 48 20 20 20 20 20 20 (ha.-.0.2).*.r.*.0.08,...H......
61fe0 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2d 20 30 2e 32 29 20 2a 20 72 20 2a 20 30 2e .....cy.+.sin(ha.-.0.2).*.r.*.0.
62000 30 38 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2b 20 30 2e 32 29 20 2a 20 72 20 2a 20 30 2e 30 08,.cx.+.cos(ha.+.0.2).*.r.*.0.0
62020 38 2c 00 00 00 41 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2b 20 30 8,...A...........cy.+.sin(ha.+.0
62040 2e 32 29 20 2a 20 72 20 2a 20 30 2e 30 38 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 2a 20 72 .2).*.r.*.0.08,.cx.+.cos(ha).*.r
62060 20 2a 20 30 2e 35 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 .*.0.5,.../...........cy.+.sin(h
62080 61 29 20 2a 20 72 20 2a 20 30 2e 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 3a 20 20 a).*.r.*.0.5,.0xFF000000);...:..
620a0 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f fill_tri(px,.a->w,.a->h,.cx.+.co
620c0 73 28 6d 61 20 2d 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 30 2e 30 36 2c 00 00 00 4a 20 20 20 20 s(ma.-.0.12).*.r.*.0.06,...J....
620e0 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2d 20 30 2e 31 32 29 20 2a 20 72 20 2a .......cy.+.sin(ma.-.0.12).*.r.*
62100 20 30 2e 30 36 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2b 20 30 2e 31 32 29 20 2a 20 72 20 2a .0.06,.cx.+.cos(ma.+.0.12).*.r.*
62120 20 30 2e 30 36 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 .0.06,...B...........cy.+.sin(ma
62140 20 2b 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 30 2e 30 36 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 .+.0.12).*.r.*.0.06,.cx.+.cos(ma
62160 29 20 2a 20 72 20 2a 20 30 2e 38 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 ).*.r.*.0.8,.../...........cy.+.
62180 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 38 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 sin(ma).*.r.*.0.8,.0xFF000000);.
621a0 00 00 00 00 00 00 33 20 20 66 6f 72 20 28 64 6f 75 62 6c 65 20 66 20 3d 20 2d 30 2e 30 30 35 3b ......3..for.(double.f.=.-0.005;
621c0 20 66 20 3c 3d 20 30 2e 30 30 35 3b 20 66 20 2b 3d 20 30 2e 30 30 32 29 20 7b 00 00 00 3c 20 20 .f.<=.0.005;.f.+=.0.002).{...<..
621e0 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 ..line(px,.a->w,.a->h,.cx,.cy,.c
62200 78 20 2b 20 63 6f 73 28 73 61 20 2b 20 66 29 20 2a 20 72 20 2a 20 30 2e 39 2c 00 00 00 31 20 20 x.+.cos(sa.+.f).*.r.*.0.9,...1..
62220 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 73 61 20 2b 20 66 29 20 2a 20 72 20 2a 20 30 2e .......cy.+.sin(sa.+.f).*.r.*.0.
62240 39 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 17 20 20 9,.0xFFFF0000);......}..........
62260 69 6e 74 20 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e 30 35 3b 00 00 00 10 20 20 69 66 20 28 68 int.hub_r.=.r.*.0.05;......if.(h
62280 75 62 5f 72 20 3c 20 33 29 00 00 00 0e 20 20 20 20 68 75 62 5f 72 20 3d 20 33 3b 00 00 00 24 20 ub_r.<.3)........hub_r.=.3;...$.
622a0 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 72 20 3c 20 68 75 62 5f 72 3b 20 69 72 .for.(int.ir.=.0;.ir.<.hub_r;.ir
622c0 2b 2b 29 00 00 00 33 20 20 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 ++)...3....circle(px,.a->w,.a->h
622e0 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 30 78 46 46 46 46 46 46 46 46 29 3b 00 00 00 38 20 20 ,.cx,.cy,.ir,.0xFFFFFFFF);...8..
62300 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 68 circle(px,.a->w,.a->h,.cx,.cy,.h
62320 75 62 5f 72 20 2b 20 31 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 00 00 00 00 29 20 20 ub_r.+.1,.0xFF000000);.......)..
62340 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c wl_surface_attach(a->ws,.a->buf,
62360 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 .0,.0);...4..wl_surface_damage_b
62380 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 uffer(a->ws,.0,.0,.a->w,.a->h);.
623a0 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 .....wl_surface_commit(a->ws);..
623c0 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 ....a->redraw.=.false;....}.....
623e0 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c ..Gstatic.void.xt_close(void.*d,
62400 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 72 75 6e 6e .struct.xdg_toplevel.*xt).{.runn
62420 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 ing.=.0;.}.......Jstatic.void.xt
62440 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 _cfg(void.*d,.struct.xdg_topleve
62460 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 28 l.*xt,.int32_t.w,.int32_t.h,...(
62480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 ...................struct.wl_arr
624a0 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b ay.*s).{......struct.app.*a.=.d;
624c0 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 ...3..if.(w.>.0.&&.h.>.0.&&.(w.!
624e0 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 0d 20 20 20 20 61 =.a->w.||.h.!=.a->h)).{........a
62500 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 13 20 20 20 ->w.=.w;........a->h.=.h;.......
62520 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 15 20 20 20 20 61 2d 3e 72 65 64 72 61 .destroy_buf(a);........a->redra
62540 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 46 73 74 61 w.=.true;......}....}.......Fsta
62560 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 tic.void.xs_cfg(void.*d,.struct.
62580 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c xdg_surface.*xs,.uint32_t.serial
625a0 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 28 20 ).{......struct.app.*a.=.d;...(.
625c0 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 .xdg_surface_ack_configure(xs,.s
625e0 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 erial);......a->configured.=.tru
62600 65 3b 00 00 00 13 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 e;......a->redraw.=.true;....}..
62620 00 00 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 .....Cstatic.void.reg_global(voi
62640 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e d.*d,.struct.wl_registry.*r,.uin
62660 74 33 32 5f 74 20 69 64 2c 00 00 00 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t32_t.id,...3...................
62680 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c 20 75 69 6e 74 33 32 5f 74 20 76 29 20 7b ....const.char.*i,.uint32_t.v).{
626a0 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 22 20 20 69 66 ......struct.app.*a.=.d;..."..if
626c0 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 .(!strcmp(i,."wl_compositor"))..
626e0 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 .C....a->comp.=.wl_registry_bind
62700 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 (r,.id,.&wl_compositor_interface
62720 2c 20 34 29 3b 00 00 00 20 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 ,.4);......else.if.(!strcmp(i,."
62740 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 wl_shm"))...;....a->shm.=.wl_reg
62760 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 istry_bind(r,.id,.&wl_shm_interf
62780 61 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 ace,.1);...'..else.if.(!strcmp(i
627a0 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d ,."xdg_wm_base")).{...?....a->wm
627c0 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f .=.wl_registry_bind(r,.id,.&xdg_
627e0 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 73 74 wm_base_interface,.1);...C....st
62800 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 atic.const.struct.xdg_wm_base_li
62820 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 stener.l.=.{.ping.=.wm_ping};...
62840 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d +....xdg_wm_base_add_listener(a-
62860 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 >wm,.&l,.a);......}....}........
62880 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 73 74 72 75 63 74 20 61 70 70 int.main(void).{......struct.app
628a0 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d 20 34 30 30 3b 00 00 00 0c 20 20 61 .a.=.{0};......a.w.=.400;......a
628c0 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e .h.=.400;......signal(SIGINT,.on
628e0 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e _sig);...!..a.d.=.wl_display_con
62900 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 0b 20 20 69 66 20 28 21 61 2e 64 29 00 00 00 0d 20 20 nect(NULL);......if.(!a.d)......
62920 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 ..return.1;...'..a.reg.=.wl_disp
62940 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 47 20 20 73 74 61 74 lay_get_registry(a.d);...G..stat
62960 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 ic.const.struct.wl_registry_list
62980 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 7d ener.rl.=.{.global.=.reg_global}
629a0 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 ;...+..wl_registry_add_listener(
629c0 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 a.reg,.&rl,.&a);......wl_display
629e0 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 21 20 20 69 66 20 28 21 61 2e 63 6f 6d _roundtrip(a.d);...!..if.(!a.com
62a00 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 00 00 00 0d 20 20 20 20 72 65 74 p.||.!a.shm.||.!a.wm)........ret
62a20 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 urn.1;......a.ws.=.wl_compositor
62a40 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e _create_surface(a.comp);...1..a.
62a60 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 xs.=.xdg_wm_base_get_xdg_surface
62a80 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 (a.wm,.a.ws);...G..static.const.
62aa0 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 6c 20 struct.xdg_surface_listener.xsl.
62ac0 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 2b 20 20 78 64 =.{.configure.=.xs_cfg};...+..xd
62ae0 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 g_surface_add_listener(a.xs,.&xs
62b00 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f l,.&a);...(..a.xt.=.xdg_surface_
62b20 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 get_toplevel(a.xs);...G..static.
62b40 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e const.struct.xdg_toplevel_listen
62b60 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 00 00 er.xtl.=.{.configure.=.xt_cfg,..
62b80 00 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .F..............................
62ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 78 74 ......................close.=.xt
62bc0 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c _close};...,..xdg_toplevel_add_l
62be0 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 istener(a.xt,.&xtl,.&a);...*..xd
62c00 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c g_toplevel_set_title(a.xt,."wlcl
62c20 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e ock");......wl_surface_commit(a.
62c40 77 73 29 3b 00 00 00 17 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 00 ws);......while.(!a.configured).
62c60 00 00 1d 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b .......wl_display_dispatch(a.d);
62c80 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d ......render(&a);...9..int.tfd.=
62ca0 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c .timerfd_create(CLOCK_MONOTONIC,
62cc0 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 .TFD_CLOEXEC);...F..timerfd_sett
62ce0 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 ime(tfd,.0,.&(struct.itimerspec)
62d00 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 20 20 63 68 {{1,.0},.{1,.0}},.NULL);......ch
62d20 61 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e ar.buffer[100];......while.(runn
62d40 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f ing).{...-....while.(wl_display_
62d60 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 00 00 00 27 20 20 20 20 20 prepare_read(a.d).!=.0)...'.....
62d80 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 .wl_display_dispatch_pending(a.d
62da0 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b );........wl_display_flush(a.d);
62dc0 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b ...M....struct.pollfd.fds[2].=.{
62de0 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d {wl_display_get_fd(a.d),.POLLIN}
62e00 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1f 20 20 20 20 69 66 20 28 70 6f 6c ,.{tfd,.POLLIN}};........if.(pol
62e20 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 00 00 00 22 20 20 20 20 20 20 77 6c l(fds,.2,.-1).<.0).{..."......wl
62e40 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 0f 20 20 _display_cancel_read(a.d);......
62e60 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 20 20 20 20 20 69 66 ....continue;........}........if
62e80 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 22 20 20 .(fds[0].revents.&.POLLIN)..."..
62ea0 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b ....wl_display_read_events(a.d);
62ec0 00 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 ........else..."......wl_display
62ee0 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 _cancel_read(a.d);...%....wl_dis
62f00 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 play_dispatch_pending(a.d);...".
62f20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 ...if.(fds[1].revents.&.POLLIN).
62f40 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 5f 65 78 70 3b 00 00 00 27 20 20 {..........uint64_t.t_exp;...'..
62f60 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 ....read(tfd,.&t_exp,.sizeof(t_e
62f80 78 70 29 29 3b 00 00 00 1e 20 20 20 20 20 20 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 xp));..........time_t.cli.=.time
62fa0 28 4e 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 5f 73 74 (NULL);...,......struct.tm.*t_st
62fc0 72 75 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 3b 00 00 00 49 20 20 20 20 20 ruct.=.localtime(&cli);...I.....
62fe0 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 .strftime(buffer,.sizeof(buffer)
63000 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c 20 74 5f 73 74 72 75 ,."%d-%m-%Y.%I:%M:%S.%p",.t_stru
63020 63 74 29 3b 00 00 00 25 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 5c 72 54 69 6d 65 20 69 73 20 ct);...%......printf("\rTime.is.
63040 25 73 22 2c 20 62 75 66 66 65 72 29 3b 00 00 00 15 20 20 20 20 20 20 66 66 6c 75 73 68 28 73 74 %s",.buffer);..........fflush(st
63060 64 6f 75 74 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b dout);..........a.redraw.=.true;
63080 00 00 00 05 20 20 20 20 7d 00 00 00 11 20 20 20 20 69 66 20 28 61 2e 72 65 64 72 61 77 29 00 00 ........}........if.(a.redraw)..
630a0 00 11 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 0f 20 20 ........render(&a);......}......
630c0 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b 00 00 00 0d 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 printf("\n");......close(tfd);..
630e0 00 12 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 ....destroy_buf(&a);......wl_dis
63100 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 play_disconnect(a.d);......retur
63120 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 3b 01 00 00 00 00 00 n.0;....}5...............;......
63140 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e3 23 00 00 00 00 00 00 01 00 00 00 00 00 00 ..................#.............
63160 00 35 81 5f d0 00 00 00 9a 00 00 00 9c 00 00 00 00 00 00 00 00 00 00 00 9b 00 00 00 01 00 00 00 .5._............................
63180 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
631a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
631c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
631e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
632a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
632c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
632e0 00 00 00 00 00 00 00 69 9d a8 ce 04 01 00 00 00 00 00 f5 18 00 00 01 2b 00 00 00 00 00 00 00 00 .......i...............+........
63300 00 00 00 01 00 00 00 01 7d f5 18 00 00 01 2c 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 ........}.....,.................
63320 29 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 11 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 )..................wl_display_di
63340 73 63 f5 18 00 00 01 2a 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 1e 00 00 00 00 00 00 sc.....*........................
63360 00 00 00 00 00 01 00 00 00 0d 20 20 20 20 20 20 73 74 72 66 74 69 6d f5 18 00 00 01 1f 00 00 00 ................strftim.........
63380 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 08 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 11 20 ................................
633a0 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 f5 18 00 00 01 09 00 00 00 00 00 00 00 00 00 00 .int.tfd.=.timer................
633c0 00 00 f5 18 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0f 20 20 20 20 20 20 20 20 ................................
633e0 20 20 20 20 20 20 20 f5 18 00 00 01 02 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 e4 00 ................................
63400 00 00 00 00 00 00 00 00 00 00 01 00 00 00 11 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d .................else.if.(!strcm
63420 f5 18 00 00 00 e5 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 df 00 00 00 00 00 00 00 00 ................................
63440 00 00 00 01 00 00 00 05 73 74 61 74 69 f5 18 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00 00 f5 ........stati...................
63460 18 00 00 00 bb 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 19 20 20 69 66 20 28 73 5f 74 68 69 .......................if.(s_thi
63480 63 6b 20 3c 20 31 2e 30 29 20 73 5f 74 68 f5 18 00 00 00 bc 00 00 00 00 00 00 00 00 00 00 00 00 ck.<.1.0).s_th..................
634a0 f5 18 00 00 00 b6 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 03 20 20 66 f5 18 00 00 00 b7 00 ........................f.......
634c0 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 b1 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................................
634e0 2b 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 +..double.ha.=.((tmv.tm_hour.%.1
63500 32 29 20 2b 20 28 74 6d 76 2e 74 6d f5 18 00 00 00 b2 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 2).+.(tmv.tm....................
63520 00 00 00 92 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 17 20 20 20 20 69 66 20 28 78 5f 65 6e ........................if.(x_en
63540 64 20 3e 3d 20 77 29 20 78 5f 65 f5 18 00 00 00 93 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 d.>=.w).x_e.....................
63560 00 00 84 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1d 20 20 69 66 20 28 6d 61 78 5f 79 20 3e .....................if.(max_y.>
63580 3d 20 68 29 20 6d 61 78 5f 79 20 3d 20 68 20 2d f5 18 00 00 00 85 00 00 00 00 00 00 00 00 00 00 =.h).max_y.=.h.-................
635a0 00 00 f5 18 00 00 00 75 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 05 20 20 20 20 20 f5 18 00 .......u........................
635c0 00 00 76 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 5a 00 00 00 00 00 00 00 00 00 00 00 ..v.................Z...........
635e0 01 00 00 00 06 20 20 69 6e 74 20 f5 18 00 00 00 5b 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 .......int......[...............
63600 00 00 33 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0d 73 74 61 74 69 63 20 69 6e 74 20 63 72 ..3................static.int.cr
63620 f5 18 00 00 00 34 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 .....4..........................
63640 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 ..........................5.....
63660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 33 00 00 00 0d 00 00 00 00 00 00 00 00 00 ..................3.............
63680 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 33 00 00 00 0d 00 00 00 ........................3.......
636a0 00 00 00 00 00 00 00 00 27 00 00 00 06 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........'.......................
636c0 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 5a 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 1b 00 ..............Z.................
636e0 00 00 05 00 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 ................................
63700 00 00 00 00 75 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 1d 00 00 00 00 0b 00 00 ....u...........................
63720 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 84 00 00 00 1d 00 ................................
63740 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 17 00 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63760 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 92 00 00 00 17 00 00 00 00 00 00 00 00 00 00 00 ................................
63780 1f 00 00 00 2b 00 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 ....+...........................
637a0 f5 18 00 00 00 00 b1 00 00 00 2b 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 03 00 00 00 00 13 ..........+.....................
637c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 b6 00 00 00 ................................
637e0 03 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 19 00 00 00 00 14 00 00 00 00 00 00 00 00 00 00 ................................
63800 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 bb 00 00 00 19 00 00 00 00 00 00 00 00 00 ................................
63820 00 00 24 00 00 00 05 00 00 00 00 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 ..$.............................
63840 00 00 f5 18 00 00 00 00 df 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 11 00 00 00 ................................
63860 00 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 e4 00 ................................
63880 00 00 11 00 00 00 00 00 00 00 00 00 00 00 1d 00 00 00 0f 00 00 00 00 1a 00 00 00 00 00 00 00 00 ................................
638a0 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 01 01 00 00 0f 00 00 00 00 00 00 00 ................................
638c0 00 00 00 00 07 00 00 00 11 00 00 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ................................
638e0 00 00 00 00 f5 18 00 00 00 00 08 01 00 00 11 00 00 00 00 00 00 00 00 00 00 00 16 00 00 00 0d 00 ................................
63900 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 ................................
63920 1e 01 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 11 00 00 00 00 22 00 00 00 00 00 00 ........................."......
63940 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 29 01 00 00 11 00 00 00 00 00 ......................).........
63960 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a 00 ...............#................
63980 00 00 00 00 00 00 35 81 5f d0 00 00 00 9b 00 00 00 9d 00 00 00 00 00 00 00 00 00 00 00 9c 00 00 ......5._.......................
639a0 01 2c 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .,..............................
639c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
639e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63b00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a8 cf 04 01 00 00 00 2f 00 f5 18 00 00 00 6e 00 00 00 ............i......../......n...
63b20 d6 00 00 01 2c 00 00 00 55 00 00 00 53 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 ....,...U...Sstatic.void.circle(
63b40 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 uint32_t.*px,.int.w,.int.h,.int.
63b60 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b cx,.int.cy,.int.r,.uint32_t.c).{
63b80 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 ..."..int.x.=.0,.y.=.r,.d.=.3.-.
63ba0 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 48 2.*.r;......while.(y.>=.x).{...H
63bc0 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b ....int.p[8][2].=.{{cx.+.x,.cy.+
63be0 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 .y},.{cx.-.x,.cy.+.y},.{cx.+.x,.
63c00 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b cy.-.y},...H...................{
63c20 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 cx.-.x,.cy.-.y},.{cx.+.y,.cy.+.x
63c40 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 20 },.{cx.-.y,.cy.+.x},...7........
63c60 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 ...........{cx.+.y,.cy.-.x},.{cx
63c80 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 .-.y,.cy.-.x}};........for.(int.
63ca0 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 66 20 28 i.=.0;.i.<.8;.i++)...E......if.(
63cc0 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 p[i][0].>=.0.&&.p[i][0].<.w.&&.p
63ce0 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 20 [i][1].>=.0.&&.p[i][1].<.h)...&.
63d00 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d .......px[p[i][1].*.w.+.p[i][0]]
63d20 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 .=.c;........if.(d.>.0).{.......
63d40 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 ...d.+=.4.*.(x.-.y).+.10;.......
63d60 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 64 ...y--;........}.else..........d
63d80 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 .+=.4.*.x.+.6;........x++;......
63da0 7d 00 00 00 01 7d 00 00 00 00 00 00 00 6e 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 74 }....}.......nstatic.void.fill_t
63dc0 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 ri(uint32_t.*px,.int.w,.int.h,.i
63de0 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 69 nt.x0,.int.y0,.int.x1,.int.y1,.i
63e00 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 42 nt.x2,.int.y2,.uint32_t.c).{...B
63e20 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 32 ..int.min_y.=.y0.<.y1.?.(y0.<.y2
63e40 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 32 .?.y0.:.y2).:.(y1.<.y2.?.y1.:.y2
63e60 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 79 );...B..int.max_y.=.y0.>.y1.?.(y
63e80 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 79 0.>.y2.?.y0.:.y2).:.(y1.>.y2.?.y
63ea0 31 20 3a 20 79 32 29 3b 00 00 00 1b 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 20 6d 69 6e 1.:.y2);......if.(min_y.<.0).min
63ec0 5f 79 20 3d 20 30 3b 00 00 00 20 20 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 20 6d 61 78 _y.=.0;......if.(max_y.>=.h).max
63ee0 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 _y.=.h.-.1;...(..for.(int.y.=.mi
63f00 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 n_y;.y.<=.max_y;.y++).{........i
63f20 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 nt.x_start.=.w,.x_end.=.0;...3..
63f40 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 ..int.xs[3].=.{x0,.x1,.x2},.ys[3
63f60 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e ].=.{y0,.y1,.y2};...!....for.(in
63f80 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 20 20 t.i.=.0;.i.<.3;.i++).{..........
63fa0 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 69 66 int.j.=.(i.+.1).%.3;...C......if
63fc0 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 .((ys[i].<=.y.&&.ys[j].>.y).||.(
63fe0 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 25 20 ys[j].<=.y.&&.ys[i].>.y)).{...%.
64000 20 20 20 20 20 20 20 69 66 20 28 79 73 5b 6a 5d 20 3d 3d 20 79 73 5b 69 5d 29 20 63 6f 6e 74 69 .......if.(ys[j].==.ys[i]).conti
64020 6e 75 65 3b 00 00 00 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 nue;...H........int.x.=.xs[i].+.
64040 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 (y.-.ys[i]).*.(xs[j].-.xs[i])./.
64060 28 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b 00 00 00 25 20 20 20 20 20 20 20 20 69 66 20 28 (ys[j].-.ys[i]);...%........if.(
64080 78 20 3c 20 78 5f 73 74 61 72 74 29 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 00 00 21 20 20 20 x.<.x_start).x_start.=.x;...!...
640a0 20 20 20 20 20 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 .....if.(x.>.x_end).x_end.=.x;..
640c0 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 20 20 20 69 66 20 28 78 5f ........}........}...!....if.(x_
640e0 73 74 61 72 74 20 3c 20 30 29 20 78 5f 73 74 61 72 74 20 3d 20 30 3b 00 00 00 22 20 20 20 20 69 start.<.0).x_start.=.0;..."....i
64100 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 f.(x_end.>=.w).x_end.=.w.-.1;...
64120 3d 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 =....for.(int.x.=.x_start;.x.<=.
64140 78 5f 65 6e 64 3b 20 78 2b 2b 29 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 x_end;.x++).px[y.*.w.+.x].=.c;..
64160 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 ....}....}.......#static.void.re
64180 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 20 28 21 nder(struct.app.*a).{.../..if.(!
641a0 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d a->configured.||.a->w.<=.0.||.a-
641c0 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 >h.<=.0)........return;......if.
641e0 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 (!a->buf)........alloc_buf(a);..
64200 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 ....uint32_t.*px.=.a->pixels;...
64220 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 $..memset(px,.0xFF,.a->w.*.a->h.
64240 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c *.4);......time_t.tt.=.time(NULL
64260 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 );......struct.tm.tmv;......loca
64280 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 ltime_r(&tt,.&tmv);...#..int.cx.
642a0 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 =.a->w./.2,.cy.=.a->h./.2;.../..
642c0 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d int.r.=.(a->w.<.a->h.?.a->w.:.a-
642e0 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 13 20 20 69 66 20 28 72 20 3c 20 35 29 20 72 20 >h)./.2.-.10;......if.(r.<.5).r.
64300 3d 20 35 3b 00 00 00 00 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 =.5;..........for.(int.i.=.0;.i.
64320 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d <.60;.i++).{........double.ang.=
64340 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 .i./.60.0.*.2.*.M_PI.-.M_PI_2;..
64360 00 31 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 .1....int.len.=.(i.%.5.==.0).?.r
64380 20 2a 20 30 2e 31 32 20 3a 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 64 6f 75 62 6c .*.0.12.:.r.*.0.04;...0....doubl
643a0 65 20 74 5f 61 6e 67 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 35 20 3a e.t_ang.=.(i.%.5.==.0).?.0.015.:
643c0 20 30 2e 30 30 38 3b 00 00 00 1d 20 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 .0.008;........fill_tri(px,.a->w
643e0 2c 20 61 2d 3e 68 2c 20 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f ,.a->h,....:.............cx.+.co
64400 73 28 61 6e 67 2d 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 2d 74 5f 61 s(ang-t_ang)*r,.cy.+.sin(ang-t_a
64420 6e 67 29 2a 72 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 ng)*r,...:.............cx.+.cos(
64440 61 6e 67 2b 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 2b 74 5f 61 6e 67 ang+t_ang)*r,.cy.+.sin(ang+t_ang
64460 29 2a 72 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e )*r,...G.............cx.+.cos(an
64480 67 29 2a 28 72 2d 6c 65 6e 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 2a 28 72 2d 6c 65 6e g)*(r-len),.cy.+.sin(ang)*(r-len
644a0 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 34 20 20 ),.0xFF000000);......}.......4..
644c0 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 double.sa.=.tmv.tm_sec./.60.0.*.
644e0 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 6c 65 20 6d 2.*.M_PI.-.M_PI_2;...J..double.m
64500 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 a.=.(tmv.tm_min.+.tmv.tm_sec./.6
64520 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 0.0)./.60.0.*.2.*.M_PI.-.M_PI_2;
64540 00 00 00 54 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 ...T..double.ha.=.((tmv.tm_hour.
64560 25 20 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 %.12).+.(tmv.tm_min./.60.0))./.1
64580 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 4f 2.0.*.2.*.M_PI.-.M_PI_2;.......O
645a0 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 ..fill_tri(px,.a->w,.a->h,.cx.+.
645c0 63 6f 73 28 68 61 2d 30 2e 31 35 29 2a 72 2a 30 2e 30 36 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 cos(ha-0.15)*r*0.06,.cy.+.sin(ha
645e0 2d 30 2e 31 35 29 2a 72 2a 30 2e 30 36 2c 20 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 63 78 -0.15)*r*0.06,....?...........cx
64600 20 2b 20 63 6f 73 28 68 61 2b 30 2e 31 35 29 2a 72 2a 30 2e 30 36 2c 20 63 79 20 2b 20 73 69 6e .+.cos(ha+0.15)*r*0.06,.cy.+.sin
64620 28 68 61 2b 30 2e 31 35 29 2a 72 2a 30 2e 30 36 2c 20 00 00 00 41 20 20 20 20 20 20 20 20 20 20 (ha+0.15)*r*0.06,....A..........
64640 20 63 78 20 2b 20 63 6f 73 28 68 61 29 2a 72 2a 30 2e 35 35 2c 20 63 79 20 2b 20 73 69 6e 28 68 .cx.+.cos(ha)*r*0.55,.cy.+.sin(h
64660 61 29 2a 72 2a 30 2e 35 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 4d 20 20 66 69 6c a)*r*0.55,.0xFF000000);...M..fil
64680 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d l_tri(px,.a->w,.a->h,.cx.+.cos(m
646a0 61 2d 30 2e 31 29 2a 72 2a 30 2e 30 34 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 2d 30 2e 31 29 2a a-0.1)*r*0.04,.cy.+.sin(ma-0.1)*
646c0 72 2a 30 2e 30 34 2c 20 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 r*0.04,....=...........cx.+.cos(
646e0 6d 61 2b 30 2e 31 29 2a 72 2a 30 2e 30 34 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 2b 30 2e 31 29 ma+0.1)*r*0.04,.cy.+.sin(ma+0.1)
64700 2a 72 2a 30 2e 30 34 2c 20 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 *r*0.04,....?...........cx.+.cos
64720 28 6d 61 29 2a 72 2a 30 2e 38 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 2a 72 2a 30 2e 38 2c 20 (ma)*r*0.8,.cy.+.sin(ma)*r*0.8,.
64740 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 00 00 00 00 1c 20 20 64 6f 75 62 6c 65 20 73 5f 74 0xFF000000);..........double.s_t
64760 68 69 63 6b 20 3d 20 72 20 2a 20 30 2e 30 31 3b 00 00 00 23 20 20 69 66 20 28 73 5f 74 68 69 63 hick.=.r.*.0.01;...#..if.(s_thic
64780 6b 20 3c 20 31 2e 30 29 20 73 5f 74 68 69 63 6b 20 3d 20 31 2e 30 3b 00 00 00 31 20 20 66 6f 72 k.<.1.0).s_thick.=.1.0;...1..for
647a0 20 28 64 6f 75 62 6c 65 20 66 20 3d 20 2d 30 2e 30 31 3b 20 66 20 3c 3d 20 30 2e 30 31 3b 20 66 .(double.f.=.-0.01;.f.<=.0.01;.f
647c0 20 2b 3d 20 30 2e 30 30 35 29 20 7b 00 00 00 5b 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e .+=.0.005).{...[....line(px,.a->
647e0 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 2b 66 29 2a w,.a->h,.cx,.cy,.cx.+.cos(sa+f)*
64800 72 2a 30 2e 38 35 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 2b 66 29 2a 72 2a 30 2e 38 35 2c 20 30 r*0.85,.cy.+.sin(sa+f)*r*0.85,.0
64820 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 17 20 20 69 6e 74 20 xFFFF0000);......}..........int.
64840 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 1b 20 20 69 66 20 28 68 75 62 5f 72 hub_r.=.r.*.0.04;......if.(hub_r
64860 20 3c 20 34 29 20 68 75 62 5f 72 20 3d 20 34 3b 00 00 00 58 20 20 66 6f 72 20 28 69 6e 74 20 69 .<.4).hub_r.=.4;...X..for.(int.i
64880 72 20 3d 20 30 3b 20 69 72 20 3c 20 68 75 62 5f 72 20 2d 20 32 3b 20 69 72 2b 2b 29 20 63 69 72 r.=.0;.ir.<.hub_r.-.2;.ir++).cir
648a0 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 cle(px,.a->w,.a->h,.cx,.cy,.ir,.
648c0 30 78 46 46 46 46 46 46 46 46 29 3b 35 81 f5 18 00 00 00 00 6e 00 00 00 45 00 00 00 54 00 00 00 0xFFFFFFFF);5.......n...E...T...
648e0 28 00 00 00 66 00 00 00 03 00 00 00 cc 09 00 00 00 00 00 00 2e 0c 00 00 00 00 00 00 22 0d 00 00 (...f......................."...
64900 00 00 00 00 35 81 5f d0 00 00 00 9c 00 00 00 9e 00 00 00 00 00 00 00 00 00 00 00 9d 00 00 00 01 ....5._.........................
64920 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
64940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
64960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
64980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
649a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
649c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
649e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
64a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
64a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
64a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
64a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
64a80 00 00 00 00 00 00 00 00 00 00 69 9d a9 10 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 ..........i.....................
64aa0 00 00 00 00 00 01 3e 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 ......>....#define._POSIX_C_SOUR
64ac0 43 45 20 32 30 30 38 30 39 4c 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c CE.200809L...&#include."xdg-shel
64ae0 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 l-client-protocol.h"....#include
64b00 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 .<fcntl.h>....#include.<math.h>.
64b20 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 ...#include.<poll.h>....#include
64b40 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c .<signal.h>....#include.<stdbool
64b60 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 .h>....#include.<stdint.h>....#i
64b80 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 nclude.<stdio.h>....#include.<st
64ba0 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 dlib.h>....#include.<string.h>..
64bc0 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c ..#include.<sys/mman.h>....#incl
64be0 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 ude.<sys/timerfd.h>....#include.
64c00 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 <time.h>....#include.<unistd.h>.
64c20 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 ...#include.<wayland-client.h>..
64c40 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f ......#ifndef.M_PI...##define.M_
64c60 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e PI.3.14159265358979323846....#en
64c80 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 dif....#ifndef.M_PI_2...%#define
64ca0 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 .M_PI_2.1.57079632679489661923..
64cc0 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 ..#endif.......)static.volatile.
64ce0 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 sig_atomic_t.running.=.1;....sta
64d00 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 tic.void.on_sig(int.s).{......(v
64d20 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 oid)s;......running.=.0;....}...
64d40 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c .....struct.app.{......struct.wl
64d60 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 _display.*d;......struct.wl_regi
64d80 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 stry.*reg;......struct.wl_compos
64da0 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a itor.*comp;......struct.wl_shm.*
64dc0 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d shm;......struct.xdg_wm_base.*wm
64de0 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 ;......struct.wl_surface.*ws;...
64e00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 ...struct.xdg_surface.*xs;......
64e20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f struct.xdg_toplevel.*xt;......vo
64e40 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 id.*pixels;......struct.wl_buffe
64e60 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 r.*buf;......int.w,.h;......int.
64e80 62 77 2c 20 62 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 bw,.bh;......bool.configured;...
64ea0 0e 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 ...bool.redraw;....};.......Jsta
64ec0 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 tic.void.wm_ping(void.*data,.str
64ee0 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 uct.xdg_wm_base.*wm,.uint32_t.se
64f00 72 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d rial).{......xdg_wm_base_pong(wm
64f20 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 69 6e ,.serial);....}.......$static.in
64f40 74 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 t.create_shm(size_t.size).{...#.
64f60 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 .char.t[].=."/tmp/wlclock-XXXXXX
64f80 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 0d ";......int.fd.=.mkstemp(t);....
64fa0 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 ..if.(fd.<.0)........exit(1);...
64fc0 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 1e 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 ...unlink(t);......if.(ftruncate
64fe0 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 (fd,.size).<.0)........exit(1);.
65000 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 .....return.fd;....}.......(stat
65020 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a ic.void.destroy_buf(struct.app.*
65040 61 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 0b 20 20 20 20 72 65 a).{......if.(!a->buf)........re
65060 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 turn;...*..size_t.size.=.(size_t
65080 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 )a->bw.*.a->bh.*.4;......wl_buff
650a0 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 er_destroy(a->buf);......munmap(
650c0 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d 3e 62 75 66 20 3d 20 a->pixels,.size);......a->buf.=.
650e0 4e 55 4c 4c 3b 00 00 00 13 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 NULL;......a->pixels.=.NULL;....
65100 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 }.......&static.void.alloc_buf(s
65120 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 truct.app.*a).{......destroy_buf
65140 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 (a);...(..size_t.size.=.(size_t)
65160 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 a->w.*.a->h.*.4;......int.fd.=.c
65180 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 reate_shm(size);...J..a->pixels.
651a0 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 =.mmap(NULL,.size,.PROT_READ.|.P
651c0 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 ROT_WRITE,.MAP_SHARED,.fd,.0);..
651e0 00 1e 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 ....if.(a->pixels.==.MAP_FAILED)
65200 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f ........exit(1);...B..struct.wl_
65220 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 shm_pool.*pool.=.wl_shm_create_p
65240 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 ool(a->shm,.fd,.size);...C..a->b
65260 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 uf.=.wl_shm_pool_create_buffer(p
65280 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 ool,.0,.a->w,.a->h,.a->w.*.4,...
652a0 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =...............................
652c0 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 ......WL_SHM_FORMAT_ARGB8888);..
652e0 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 ....wl_shm_pool_destroy(pool);..
65300 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0f 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 ....close(fd);......a->bw.=.a->w
65320 3b 00 00 00 0f 20 20 61 2d 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 ;......a->bh.=.a->h;....}.......
65340 4c 73 74 61 74 69 63 20 76 6f 69 64 20 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 Lstatic.void.line(uint32_t.*px,.
65360 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e int.w,.int.h,.int.x0,.int.y0,.in
65380 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 1e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.x1,.int.y1,...................
653a0 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 ..uint32_t.c).{.../..int.dx.=.ab
653c0 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d s(x1.-.x0),.sx.=.x0.<.x1.?.1.:.-
653e0 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 1;...0..int.dy.=.-abs(y1.-.y0),.
65400 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 14 20 20 69 6e 74 20 sy.=.y0.<.y1.?.1.:.-1;......int.
65420 65 72 72 20 3d 20 64 78 20 2b 20 64 79 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 err.=.dx.+.dy;......while.(1).{.
65440 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 ../....if.(x0.>=.0.&&.x0.<.w.&&.
65460 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 1a 20 20 20 20 20 20 70 78 5b 79 y0.>=.0.&&.y0.<.h)..........px[y
65480 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 0.*.w.+.x0].=.c;........if.(x0.=
654a0 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b =.x1.&&.y0.==.y1)..........break
654c0 3b 00 00 00 15 20 20 20 20 69 6e 74 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 ;........int.e2.=.2.*.err;......
654e0 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b ..if.(e2.>=.dy).{..........err.+
65500 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 =.dy;..........x0.+=.sx;........
65520 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 }........if.(e2.<=.dx).{........
65540 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 ..err.+=.dx;..........y0.+=.sy;.
65560 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 45 73 74 61 74 .......}......}....}.......Estat
65580 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 ic.void.circle(uint32_t.*px,.int
655a0 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 .w,.int.h,.int.cx,.int.cy,.int.r
655c0 2c 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 ,.......................uint32_t
655e0 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d .c).{..."..int.x.=.0,.y.=.r,.d.=
65600 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 .3.-.2.*.r;......while.(y.>=.x).
65620 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c {...H....int.p[8][2].=.{{cx.+.x,
65640 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 .cy.+.y},.{cx.-.x,.cy.+.y},.{cx.
65660 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 +.x,.cy.-.y},...H...............
65680 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 ....{cx.-.x,.cy.-.y},.{cx.+.y,.c
656a0 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 y.+.x},.{cx.-.y,.cy.+.x},...7...
656c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d ................{cx.+.y,.cy.-.x}
656e0 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 ,.{cx.-.y,.cy.-.x}};........for.
65700 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 (int.i.=.0;.i.<.8;.i++)...E.....
65720 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 .if.(p[i][0].>=.0.&&.p[i][0].<.w
65740 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 .&&.p[i][1].>=.0.&&.p[i][1].<.h)
65760 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 ...&........px[p[i][1].*.w.+.p[i
65780 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 ][0]].=.c;........if.(d.>.0).{..
657a0 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 ........d.+=.4.*.(x.-.y).+.10;..
657c0 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 ........y--;........}.else......
657e0 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 ....d.+=.4.*.x.+.6;........x++;.
65800 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 66 .....}....}.......Pstatic.void.f
65820 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 ill_tri(uint32_t.*px,.int.w,.int
65840 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 .h,.int.x0,.int.y0,.int.x1,.int.
65860 79 31 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 y1,...2.....................int.
65880 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 x2,.int.y2,.uint32_t.c).{...B..i
658a0 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 nt.min_y.=.y0.<.y1.?.(y0.<.y2.?.
658c0 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 y0.:.y2).:.(y1.<.y2.?.y1.:.y2);.
658e0 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e ..B..int.max_y.=.y0.>.y1.?.(y0.>
65900 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a .y2.?.y0.:.y2).:.(y1.>.y2.?.y1.:
65920 20 79 32 29 3b 00 00 00 10 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 00 00 00 0e 20 20 20 .y2);......if.(min_y.<.0).......
65940 20 6d 69 6e 5f 79 20 3d 20 30 3b 00 00 00 11 20 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 .min_y.=.0;......if.(max_y.>=.h)
65960 00 00 00 12 20 20 20 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 ........max_y.=.h.-.1;...(..for.
65980 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 (int.y.=.min_y;.y.<=.max_y;.y++)
659a0 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 .{........int.x_start.=.w,.x_end
659c0 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 .=.0;...3....int.xs[3].=.{x0,.x1
659e0 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 21 ,.x2},.ys[3].=.{y0,.y1,.y2};...!
65a00 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 ....for.(int.i.=.0;.i.<.3;.i++).
65a20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 {..........int.j.=.(i.+.1).%.3;.
65a40 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a ..C......if.((ys[i].<=.y.&&.ys[j
65a60 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e ].>.y).||.(ys[j].<=.y.&&.ys[i].>
65a80 20 79 29 29 20 7b 00 00 00 1b 20 20 20 20 20 20 20 20 69 66 20 28 79 73 5b 6a 5d 20 3d 3d 20 79 .y)).{............if.(ys[j].==.y
65aa0 73 5b 69 5d 29 00 00 00 13 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 48 s[i])..............continue;...H
65ac0 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 5b ........int.x.=.xs[i].+.(y.-.ys[
65ae0 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 2d i]).*.(xs[j].-.xs[i])./.(ys[j].-
65b00 20 79 73 5b 69 5d 29 3b 00 00 00 18 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 74 .ys[i]);............if.(x.<.x_st
65b20 61 72 74 29 00 00 00 16 20 20 20 20 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 00 art)..............x_start.=.x;..
65b40 00 16 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 00 00 00 14 20 20 20 20 ..........if.(x.>.x_end)........
65b60 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 ......x_end.=.x;..........}.....
65b80 20 20 20 7d 00 00 00 14 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 74 20 3c 20 30 29 00 00 00 12 ...}........if.(x_start.<.0)....
65ba0 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 30 3b 00 00 00 13 20 20 20 20 69 66 20 28 78 5f ......x_start.=.0;........if.(x_
65bc0 65 6e 64 20 3e 3d 20 77 29 00 00 00 14 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 end.>=.w)..........x_end.=.w.-.1
65be0 3b 00 00 00 2a 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 ;...*....for.(int.x.=.x_start;.x
65c00 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b 29 00 00 00 18 20 20 20 20 20 20 70 78 5b 79 20 2a 20 .<=.x_end;.x++)..........px[y.*.
65c20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 w.+.x].=.c;......}....}.......#s
65c40 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 tatic.void.render(struct.app.*a)
65c60 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d .{.../..if.(!a->configured.||.a-
65c80 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 >w.<=.0.||.a->h.<=.0)........ret
65ca0 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 20 61 6c urn;......if.(!a->buf)........al
65cc0 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 loc_buf(a);......uint32_t.*px.=.
65ce0 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c a->pixels;...$..memset(px,.0xFF,
65d00 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 .a->w.*.a->h.*.4);......time_t.t
65d20 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 t.=.time(NULL);......struct.tm.t
65d40 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b mv;......localtime_r(&tt,.&tmv);
65d60 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d ...#..int.cx.=.a->w./.2,.cy.=.a-
65d80 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e >h./.2;.../..int.r.=.(a->w.<.a->
65da0 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 h.?.a->w.:.a->h)./.2.-.10;......
65dc0 69 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 20 if.(r.<.5)........r.=.5;........
65de0 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b ..for.(int.i.=.0;.i.<.60;.i++).{
65e00 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 ........double.ang.=.i./.60.0.*.
65e20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 31 20 20 20 20 69 6e 74 20 6c 65 2.*.M_PI.-.M_PI_2;...1....int.le
65e40 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 20 2a 20 30 2e 31 32 20 3a 20 72 20 n.=.(i.%.5.==.0).?.r.*.0.12.:.r.
65e60 2a 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 64 6f 75 62 6c 65 20 74 5f 61 6e 67 20 3d 20 28 69 *.0.04;...0....double.t_ang.=.(i
65e80 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 35 20 3a 20 30 2e 30 30 38 3b 00 00 00 37 20 .%.5.==.0).?.0.015.:.0.008;...7.
65ea0 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b ...fill_tri(px,.a->w,.a->h,.cx.+
65ec0 20 63 6f 73 28 61 6e 67 20 2d 20 74 5f 61 6e 67 29 20 2a 20 72 2c 00 00 00 42 20 20 20 20 20 20 .cos(ang.-.t_ang).*.r,...B......
65ee0 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2d 20 74 5f 61 6e 67 29 20 2a 20 72 .......cy.+.sin(ang.-.t_ang).*.r
65f00 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 20 2b 20 74 5f 61 6e 67 29 20 2a 20 72 2c 00 00 00 42 ,.cx.+.cos(ang.+.t_ang).*.r,...B
65f20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2b 20 74 5f 61 6e .............cy.+.sin(ang.+.t_an
65f40 67 29 20 2a 20 72 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e g).*.r,.cx.+.cos(ang).*.(r.-.len
65f60 29 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 ),...4.............cy.+.sin(ang)
65f80 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 .*.(r.-.len),.0xFF000000);......
65fa0 7d 00 00 00 00 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 }.......4..double.sa.=.tmv.tm_se
65fc0 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 c./.60.0.*.2.*.M_PI.-.M_PI_2;...
65fe0 4a 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 J..double.ma.=.(tmv.tm_min.+.tmv
66000 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 .tm_sec./.60.0)./.60.0.*.2.*.M_P
66020 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 4c I.-.M_PI_2;......double.ha.=...L
66040 20 20 20 20 20 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 ......((tmv.tm_hour.%.12).+.(tmv
66060 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f .tm_min./.60.0))./.12.0.*.2.*.M_
66080 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 3a 20 20 66 69 6c 6c 5f 74 72 69 28 70 PI.-.M_PI_2;.......:..fill_tri(p
660a0 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2d 20 30 2e 31 x,.a->w,.a->h,.cx.+.cos(ha.-.0.1
660c0 35 29 20 2a 20 72 20 2a 20 30 2e 30 36 2c 00 00 00 4a 20 20 20 20 20 20 20 20 20 20 20 63 79 20 5).*.r.*.0.06,...J...........cy.
660e0 2b 20 73 69 6e 28 68 61 20 2d 20 30 2e 31 35 29 20 2a 20 72 20 2a 20 30 2e 30 36 2c 20 63 78 20 +.sin(ha.-.0.15).*.r.*.0.06,.cx.
66100 2b 20 63 6f 73 28 68 61 20 2b 20 30 2e 31 35 29 20 2a 20 72 20 2a 20 30 2e 30 36 2c 00 00 00 43 +.cos(ha.+.0.15).*.r.*.0.06,...C
66120 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2b 20 30 2e 31 35 29 20 2a ...........cy.+.sin(ha.+.0.15).*
66140 20 72 20 2a 20 30 2e 30 36 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e .r.*.0.06,.cx.+.cos(ha).*.r.*.0.
66160 35 35 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 29 20 2a 55,...0...........cy.+.sin(ha).*
66180 20 72 20 2a 20 30 2e 35 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 39 20 20 66 69 6c .r.*.0.55,.0xFF000000);...9..fil
661a0 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d l_tri(px,.a->w,.a->h,.cx.+.cos(m
661c0 61 20 2d 20 30 2e 31 29 20 2a 20 72 20 2a 20 30 2e 30 34 2c 00 00 00 48 20 20 20 20 20 20 20 20 a.-.0.1).*.r.*.0.04,...H........
661e0 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2d 20 30 2e 31 29 20 2a 20 72 20 2a 20 30 2e 30 34 ...cy.+.sin(ma.-.0.1).*.r.*.0.04
66200 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2b 20 30 2e 31 29 20 2a 20 72 20 2a 20 30 2e 30 34 2c ,.cx.+.cos(ma.+.0.1).*.r.*.0.04,
66220 00 00 00 41 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2b 20 30 2e 31 ...A...........cy.+.sin(ma.+.0.1
66240 29 20 2a 20 72 20 2a 20 30 2e 30 34 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a ).*.r.*.0.04,.cx.+.cos(ma).*.r.*
66260 20 30 2e 38 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 .0.8,.../...........cy.+.sin(ma)
66280 20 2a 20 72 20 2a 20 30 2e 38 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 00 00 00 00 1c .*.r.*.0.8,.0xFF000000);........
662a0 20 20 64 6f 75 62 6c 65 20 73 5f 74 68 69 63 6b 20 3d 20 72 20 2a 20 30 2e 30 31 3b 00 00 00 14 ..double.s_thick.=.r.*.0.01;....
662c0 20 20 69 66 20 28 73 5f 74 68 69 63 6b 20 3c 20 31 2e 30 29 00 00 00 12 20 20 20 20 73 5f 74 68 ..if.(s_thick.<.1.0)........s_th
662e0 69 63 6b 20 3d 20 31 2e 30 3b 00 00 00 31 20 20 66 6f 72 20 28 64 6f 75 62 6c 65 20 66 20 3d 20 ick.=.1.0;...1..for.(double.f.=.
66300 2d 30 2e 30 31 3b 20 66 20 3c 3d 20 30 2e 30 31 3b 20 66 20 2b 3d 20 30 2e 30 30 35 29 20 7b 00 -0.01;.f.<=.0.01;.f.+=.0.005).{.
66320 00 00 3d 20 20 20 20 6c 69 6e 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 ..=....line(px,.a->w,.a->h,.cx,.
66340 63 79 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 20 2b 20 66 29 20 2a 20 72 20 2a 20 30 2e 38 35 2c cy,.cx.+.cos(sa.+.f).*.r.*.0.85,
66360 00 00 00 32 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 73 61 20 2b 20 66 29 20 2a 20 ...2.........cy.+.sin(sa.+.f).*.
66380 72 20 2a 20 30 2e 38 35 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 r.*.0.85,.0xFFFF0000);......}...
663a0 00 00 00 00 17 20 20 69 6e 74 20 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 10 .......int.hub_r.=.r.*.0.04;....
663c0 20 20 69 66 20 28 68 75 62 5f 72 20 3c 20 34 29 00 00 00 0e 20 20 20 20 68 75 62 5f 72 20 3d 20 ..if.(hub_r.<.4)........hub_r.=.
663e0 34 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 72 20 3c 20 68 75 4;...(..for.(int.ir.=.0;.ir.<.hu
66400 62 5f 72 20 2d 20 32 3b 20 69 72 2b 2b 29 00 00 00 33 20 20 20 20 63 69 72 63 6c 65 28 70 78 2c b_r.-.2;.ir++)...3....circle(px,
66420 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 30 78 46 46 46 46 46 .a->w,.a->h,.cx,.cy,.ir,.0xFFFFF
66440 46 46 46 29 3b 00 00 00 34 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 FFF);...4..circle(px,.a->w,.a->h
66460 2c 20 63 78 2c 20 63 79 2c 20 68 75 62 5f 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 ,.cx,.cy,.hub_r,.0xFF000000);...
66480 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 ....)..wl_surface_attach(a->ws,.
664a0 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 a->buf,.0,.0);...4..wl_surface_d
664c0 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 amage_buffer(a->ws,.0,.0,.a->w,.
664e0 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d a->h);......wl_surface_commit(a-
66500 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 >ws);......a->redraw.=.false;...
66520 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 .}.......Gstatic.void.xt_close(v
66540 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 oid.*d,.struct.xdg_toplevel.*xt)
66560 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 .{.running.=.0;.}.......Jstatic.
66580 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f void.xt_cfg(void.*d,.struct.xdg_
665a0 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 toplevel.*xt,.int32_t.w,.int32_t
665c0 20 68 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 .h,...(...................struct
665e0 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 .wl_array.*s).{......struct.app.
66600 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 *a.=.d;...3..if.(w.>.0.&&.h.>.0.
66620 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 &&.(w.!=.a->w.||.h.!=.a->h)).{..
66640 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d 20 68 3b ......a->w.=.w;........a->h.=.h;
66660 00 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 15 20 20 20 20 61 ........destroy_buf(a);........a
66680 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 ->redraw.=.true;......}....}....
666a0 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 ...Fstatic.void.xs_cfg(void.*d,.
666c0 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 struct.xdg_surface.*xs,.uint32_t
666e0 20 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 .serial).{......struct.app.*a.=.
66700 64 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 d;...(..xdg_surface_ack_configur
66720 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 e(xs,.serial);......a->configure
66740 64 20 3d 20 74 72 75 65 3b 00 00 00 13 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b d.=.true;......a->redraw.=.true;
66760 00 00 00 01 7d 00 00 00 00 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f ....}.......Cstatic.void.reg_glo
66780 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 bal(void.*d,.struct.wl_registry.
667a0 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 33 20 20 20 20 20 20 20 20 20 20 20 20 *r,.uint32_t.id,...3............
667c0 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c 20 75 69 6e 74 33 32 ...........const.char.*i,.uint32
667e0 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 _t.v).{......struct.app.*a.=.d;.
66800 00 00 22 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 .."..if.(!strcmp(i,."wl_composit
66820 6f 72 22 29 29 00 00 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 or"))...C....a->comp.=.wl_regist
66840 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e ry_bind(r,.id,.&wl_compositor_in
66860 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 20 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 terface,.4);......else.if.(!strc
66880 6d 70 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 20 20 61 2d 3e 73 68 6d 20 3d mp(i,."wl_shm"))...;....a->shm.=
668a0 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d .wl_registry_bind(r,.id,.&wl_shm
668c0 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 _interface,.1);...'..else.if.(!s
668e0 74 72 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 trcmp(i,."xdg_wm_base")).{...?..
66900 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 ..a->wm.=.wl_registry_bind(r,.id
66920 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 ,.&xdg_wm_base_interface,.1);...
66940 43 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f C....static.const.struct.xdg_wm_
66960 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 base_listener.l.=.{.ping.=.wm_pi
66980 6e 67 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 ng};...+....xdg_wm_base_add_list
669a0 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 ener(a->wm,.&l,.a);......}....}.
669c0 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 73 74 72 .......int.main(void).{......str
669e0 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d 20 34 30 30 3b uct.app.a.=.{0};......a.w.=.400;
66a00 00 00 00 0c 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 ......a.h.=.400;......signal(SIG
66a20 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 INT,.on_sig);...!..a.d.=.wl_disp
66a40 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 0b 20 20 69 66 20 28 21 61 2e 64 lay_connect(NULL);......if.(!a.d
66a60 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 )........return.1;...'..a.reg.=.
66a80 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 wl_display_get_registry(a.d);...
66aa0 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 G..static.const.struct.wl_regist
66ac0 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f ry_listener.rl.=.{.global.=.reg_
66ae0 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 global};...+..wl_registry_add_li
66b00 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f stener(a.reg,.&rl,.&a);......wl_
66b20 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 21 20 20 69 66 20 display_roundtrip(a.d);...!..if.
66b40 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 00 00 00 0d (!a.comp.||.!a.shm.||.!a.wm)....
66b60 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d ....return.1;......a.ws.=.wl_com
66b80 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 positor_create_surface(a.comp);.
66ba0 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f ..1..a.xs.=.xdg_wm_base_get_xdg_
66bc0 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 surface(a.wm,.a.ws);...G..static
66be0 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e .const.struct.xdg_surface_listen
66c00 65 72 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 er.xsl.=.{.configure.=.xs_cfg};.
66c20 00 00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e ..+..xdg_surface_add_listener(a.
66c40 78 73 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 xs,.&xsl,.&a);...(..a.xt.=.xdg_s
66c60 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 47 20 20 urface_get_toplevel(a.xs);...G..
66c80 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c static.const.struct.xdg_toplevel
66ca0 5f 6c 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 _listener.xtl.=.{.configure.=.xt
66cc0 5f 63 66 67 2c 00 00 00 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _cfg,...F.......................
66ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 63 6c 6f .............................clo
66d00 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 se.=.xt_close};...,..xdg_topleve
66d20 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 26 61 29 3b 00 l_add_listener(a.xt,.&xtl,.&a);.
66d40 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 ..*..xdg_toplevel_set_title(a.xt
66d60 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f ,."wlclock");......wl_surface_co
66d80 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 17 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 mmit(a.ws);......while.(!a.confi
66da0 67 75 72 65 64 29 00 00 00 1d 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 gured)........wl_display_dispatc
66dc0 68 28 61 2e 64 29 3b 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e h(a.d);......render(&a);...9..in
66de0 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e t.tfd.=.timerfd_create(CLOCK_MON
66e00 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 OTONIC,.TFD_CLOEXEC);...F..timer
66e20 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d fd_settime(tfd,.0,.&(struct.itim
66e40 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 erspec){{1,.0},.{1,.0}},.NULL);.
66e60 00 00 13 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 13 20 20 77 68 69 6c .....char.buffer[100];......whil
66e80 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 e.(running).{...-....while.(wl_d
66ea0 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 00 00 isplay_prepare_read(a.d).!=.0)..
66ec0 00 27 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 .'......wl_display_dispatch_pend
66ee0 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 ing(a.d);........wl_display_flus
66f00 68 28 61 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 h(a.d);...M....struct.pollfd.fds
66f20 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 [2].=.{{wl_display_get_fd(a.d),.
66f40 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1f 20 20 20 20 POLLIN},.{tfd,.POLLIN}};........
66f60 69 66 20 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 00 00 00 22 20 if.(poll(fds,.2,.-1).<.0).{...".
66f80 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 .....wl_display_cancel_read(a.d)
66fa0 3b 00 00 00 0f 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 ;..........continue;........}...
66fc0 20 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e .....if.(fds[0].revents.&.POLLIN
66fe0 29 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 )..."......wl_display_read_event
67000 73 28 61 2e 64 29 3b 00 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 20 20 20 20 77 6c 5f s(a.d);........else..."......wl_
67020 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 display_cancel_read(a.d);...%...
67040 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 .wl_display_dispatch_pending(a.d
67060 29 3b 00 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 );..."....if.(fds[1].revents.&.P
67080 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 5f 65 78 70 OLLIN).{..........uint64_t.t_exp
670a0 3b 00 00 00 27 20 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 70 2c 20 73 69 7a ;...'......read(tfd,.&t_exp,.siz
670c0 65 6f 66 28 74 5f 65 78 70 29 29 3b 00 00 00 1e 20 20 20 20 20 20 74 69 6d 65 5f 74 20 63 6c 69 eof(t_exp));..........time_t.cli
670e0 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 20 20 73 74 72 75 63 74 20 74 .=.time(NULL);...,......struct.t
67100 6d 20 2a 74 5f 73 74 72 75 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 3b 00 00 m.*t_struct.=.localtime(&cli);..
67120 00 49 20 20 20 20 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 .I......strftime(buffer,.sizeof(
67140 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c buffer),."%d-%m-%Y.%I:%M:%S.%p",
67160 20 74 5f 73 74 72 75 63 74 29 3b 00 00 00 25 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 5c 72 54 .t_struct);...%......printf("\rT
67180 69 6d 65 20 69 73 20 25 73 22 2c 20 62 75 66 66 65 72 29 3b 00 00 00 15 20 20 20 20 20 20 66 66 ime.is.%s",.buffer);..........ff
671a0 6c 75 73 68 28 73 74 64 6f 75 74 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 20 lush(stdout);..........a.redraw.
671c0 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 11 20 20 20 20 69 66 20 28 61 2e 72 65 =.true;........}........if.(a.re
671e0 64 72 61 77 29 00 00 00 11 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 draw)..........render(&a);......
67200 7d 00 00 00 0f 20 20 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b 00 00 00 0d 20 20 63 6c 6f 73 65 28 }......printf("\n");......close(
67220 74 66 64 29 3b 00 00 00 12 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b 00 00 00 1d 20 tfd);......destroy_buf(&a);.....
67240 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b .wl_display_disconnect(a.d);....
67260 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 ..return.0;....}5...............
67280 3e 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 24 00 00 00 00 00 00 >........................$......
672a0 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 9d 00 00 00 9f 00 00 00 00 00 00 00 00 00 00 00 9e ........5._.....................
672c0 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
672e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
67300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
67320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
67340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
67360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
67380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
673a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
673c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
673e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
67400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
67420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a9 11 04 01 00 00 00 00 00 f5 18 00 00 01 29 00 ..............i...............).
67440 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 01 2a 00 00 00 00 00 00 00 00 00 00 ...............}.....*..........
67460 00 00 f5 18 00 00 01 27 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0e 20 20 77 6c 5f 64 69 73 .......'..................wl_dis
67480 70 6c 61 79 5f 64 f5 18 00 00 01 28 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 0c 00 00 play_d.....(....................
674a0 00 00 00 00 00 00 00 00 00 01 00 00 00 0e 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 f5 18 00 00 ..................wl_display....
674c0 01 0d 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 9d 00 00 00 00 00 00 00 00 00 00 00 01 ................................
674e0 00 00 00 11 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 f5 18 00 00 00 9e 00 00 00 00 00 ......memset(px,.0xFF...........
67500 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 ................................
67520 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 ...............5................
67540 00 00 00 00 00 00 00 9d 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ................................
67560 0f 00 00 00 00 00 00 f5 18 00 00 00 00 9d 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 6f 00 00 .............................o..
67580 00 0e 00 00 00 ff 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 f5 18 00 ................................
675a0 00 00 00 0c 01 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 1b 00 00 00 0e 00 00 00 ff 1f 00 00 00 ................................
675c0 00 00 00 00 00 00 00 00 00 00 00 01 03 00 00 00 00 00 00 f5 18 00 00 00 00 27 01 00 00 0e 00 00 .........................'......
675e0 00 00 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 23 00 00 00 00 00 00 00 00 00 00 00 00 00 ..................#.............
67600 00 1d 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 9e 00 00 00 a0 00 00 00 00 00 00 00 00 00 00 00 .........5._....................
67620 9f 00 00 01 2a 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ....*...........................
67640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
67660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
67680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
676a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
676c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
676e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
67700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
67720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
67740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
67760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
67780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a9 12 04 01 00 00 00 32 00 f5 18 00 00 00 6e ...............i........2......n
677a0 00 00 00 d3 00 00 01 2a 00 00 00 53 00 00 00 53 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 .......*...S...Sstatic.void.circ
677c0 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 le(uint32_t.*px,.int.w,.int.h,.i
677e0 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 nt.cx,.int.cy,.int.r,.uint32_t.c
67800 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 ).{..."..int.x.=.0,.y.=.r,.d.=.3
67820 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 .-.2.*.r;......while.(y.>=.x).{.
67840 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 ..H....int.p[8][2].=.{{cx.+.x,.c
67860 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 y.+.y},.{cx.-.x,.cy.+.y},.{cx.+.
67880 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 x,.cy.-.y},...H.................
678a0 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 ..{cx.-.x,.cy.-.y},.{cx.+.y,.cy.
678c0 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 +.x},.{cx.-.y,.cy.+.x},...7.....
678e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 ..............{cx.+.y,.cy.-.x},.
67900 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 {cx.-.y,.cy.-.x}};........for.(i
67920 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 nt.i.=.0;.i.<.8;.i++)...E......i
67940 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 f.(p[i][0].>=.0.&&.p[i][0].<.w.&
67960 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 &.p[i][1].>=.0.&&.p[i][1].<.h)..
67980 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b .&........px[p[i][1].*.w.+.p[i][
679a0 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 0]].=.c;........if.(d.>.0).{....
679c0 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a ......d.+=.4.*.(x.-.y).+.10;....
679e0 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 ......y--;........}.else........
67a00 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 ..d.+=.4.*.x.+.6;........x++;...
67a20 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 6e 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c ...}....}.......nstatic.void.fil
67a40 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 l_tri(uint32_t.*px,.int.w,.int.h
67a60 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 ,.int.x0,.int.y0,.int.x1,.int.y1
67a80 2c 20 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 ,.int.x2,.int.y2,.uint32_t.c).{.
67aa0 00 00 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 3c ..B..int.min_y.=.y0.<.y1.?.(y0.<
67ac0 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 3a .y2.?.y0.:.y2).:.(y1.<.y2.?.y1.:
67ae0 20 79 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 3f .y2);...B..int.max_y.=.y0.>.y1.?
67b00 20 28 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 20 .(y0.>.y2.?.y0.:.y2).:.(y1.>.y2.
67b20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 1b 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 20 ?.y1.:.y2);......if.(min_y.<.0).
67b40 6d 69 6e 5f 79 20 3d 20 30 3b 00 00 00 20 20 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 20 min_y.=.0;......if.(max_y.>=.h).
67b60 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d max_y.=.h.-.1;...(..for.(int.y.=
67b80 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 .min_y;.y.<=.max_y;.y++).{......
67ba0 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 00 ..int.x_start.=.w,.x_end.=.0;...
67bc0 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 79 3....int.xs[3].=.{x0,.x1,.x2},.y
67be0 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 21 20 20 20 20 66 6f 72 20 s[3].=.{y0,.y1,.y2};...!....for.
67c00 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 (int.i.=.0;.i.<.3;.i++).{.......
67c20 20 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 ...int.j.=.(i.+.1).%.3;...C.....
67c40 20 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c .if.((ys[i].<=.y.&&.ys[j].>.y).|
67c60 7c 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 |.(ys[j].<=.y.&&.ys[i].>.y)).{..
67c80 00 25 20 20 20 20 20 20 20 20 69 66 20 28 79 73 5b 6a 5d 20 3d 3d 20 79 73 5b 69 5d 29 20 63 6f .%........if.(ys[j].==.ys[i]).co
67ca0 6e 74 69 6e 75 65 3b 00 00 00 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d ntinue;...H........int.x.=.xs[i]
67cc0 20 2b 20 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 .+.(y.-.ys[i]).*.(xs[j].-.xs[i])
67ce0 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b 00 00 00 25 20 20 20 20 20 20 20 20 69 ./.(ys[j].-.ys[i]);...%........i
67d00 66 20 28 78 20 3c 20 78 5f 73 74 61 72 74 29 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 00 00 21 f.(x.<.x_start).x_start.=.x;...!
67d20 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 20 78 5f 65 6e 64 20 3d 20 78 ........if.(x.>.x_end).x_end.=.x
67d40 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 20 20 20 69 66 20 ;..........}........}...!....if.
67d60 28 78 5f 73 74 61 72 74 20 3c 20 30 29 20 78 5f 73 74 61 72 74 20 3d 20 30 3b 00 00 00 22 20 20 (x_start.<.0).x_start.=.0;..."..
67d80 20 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b ..if.(x_end.>=.w).x_end.=.w.-.1;
67da0 00 00 00 3d 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 ...=....for.(int.x.=.x_start;.x.
67dc0 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b 29 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 <=.x_end;.x++).px[y.*.w.+.x].=.c
67de0 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 ;......}....}.......#static.void
67e00 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 .render(struct.app.*a).{.../..if
67e20 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c .(!a->configured.||.a->w.<=.0.||
67e40 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 .a->h.<=.0)........return;......
67e60 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 if.(!a->buf)........alloc_buf(a)
67e80 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b ;......uint32_t.*px.=.a->pixels;
67ea0 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 61 2d ...$..memset(px,.0xFF,.a->w.*.a-
67ec0 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e >h.*.4);......time_t.tt.=.time(N
67ee0 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c ULL);......struct.tm.tmv;......l
67f00 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 ocaltime_r(&tt,.&tmv);...#..int.
67f20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 cx.=.a->w./.2,.cy.=.a->h./.2;...
67f40 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a /..int.r.=.(a->w.<.a->h.?.a->w.:
67f60 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 13 20 20 69 66 20 28 72 20 3c 20 35 29 .a->h)./.2.-.10;......if.(r.<.5)
67f80 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b .r.=.5;..........for.(int.i.=.0;
67fa0 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e .i.<.60;.i++).{........double.an
67fc0 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 g.=.i./.60.0.*.2.*.M_PI.-.M_PI_2
67fe0 3b 00 00 00 31 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 ;...1....int.len.=.(i.%.5.==.0).
68000 3f 20 72 20 2a 20 30 2e 31 32 20 3a 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 64 6f ?.r.*.0.12.:.r.*.0.04;...0....do
68020 75 62 6c 65 20 74 5f 61 6e 67 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 uble.t_ang.=.(i.%.5.==.0).?.0.01
68040 32 20 3a 20 30 2e 30 30 35 3b 00 00 00 1d 20 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2.:.0.005;........fill_tri(px,.a
68060 2d 3e 77 2c 20 61 2d 3e 68 2c 20 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b ->w,.a->h,....:.............cx.+
68080 20 63 6f 73 28 61 6e 67 2d 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 2d .cos(ang-t_ang)*r,.cy.+.sin(ang-
680a0 74 5f 61 6e 67 29 2a 72 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 t_ang)*r,...:.............cx.+.c
680c0 6f 73 28 61 6e 67 2b 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 2b 74 5f os(ang+t_ang)*r,.cy.+.sin(ang+t_
680e0 61 6e 67 29 2a 72 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 ang)*r,...G.............cx.+.cos
68100 28 61 6e 67 29 2a 28 72 2d 6c 65 6e 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 2a 28 72 2d (ang)*(r-len),.cy.+.sin(ang)*(r-
68120 6c 65 6e 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 len),.0xFF000000);......}.......
68140 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 4..double.sa.=.tmv.tm_sec./.60.0
68160 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 6c .*.2.*.M_PI.-.M_PI_2;...J..doubl
68180 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 e.ma.=.(tmv.tm_min.+.tmv.tm_sec.
681a0 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 /.60.0)./.60.0.*.2.*.M_PI.-.M_PI
681c0 5f 32 3b 00 00 00 54 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 76 2e 74 6d 5f 68 6f _2;...T..double.ha.=.((tmv.tm_ho
681e0 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 ur.%.12).+.(tmv.tm_min./.60.0)).
68200 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 /.12.0.*.2.*.M_PI.-.M_PI_2;.....
68220 00 00 4f 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 ..O..fill_tri(px,.a->w,.a->h,.cx
68240 20 2b 20 63 6f 73 28 68 61 2d 30 2e 31 32 29 2a 72 2a 30 2e 30 35 2c 20 63 79 20 2b 20 73 69 6e .+.cos(ha-0.12)*r*0.05,.cy.+.sin
68260 28 68 61 2d 30 2e 31 32 29 2a 72 2a 30 2e 30 35 2c 20 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 (ha-0.12)*r*0.05,....?..........
68280 20 63 78 20 2b 20 63 6f 73 28 68 61 2b 30 2e 31 32 29 2a 72 2a 30 2e 30 35 2c 20 63 79 20 2b 20 .cx.+.cos(ha+0.12)*r*0.05,.cy.+.
682a0 73 69 6e 28 68 61 2b 30 2e 31 32 29 2a 72 2a 30 2e 30 35 2c 20 00 00 00 41 20 20 20 20 20 20 20 sin(ha+0.12)*r*0.05,....A.......
682c0 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 29 2a 72 2a 30 2e 35 35 2c 20 63 79 20 2b 20 73 69 ....cx.+.cos(ha)*r*0.55,.cy.+.si
682e0 6e 28 68 61 29 2a 72 2a 30 2e 35 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 51 20 20 n(ha)*r*0.55,.0xFF000000);...Q..
68300 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f fill_tri(px,.a->w,.a->h,.cx.+.co
68320 73 28 6d 61 2d 30 2e 30 38 29 2a 72 2a 30 2e 30 33 35 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 2d s(ma-0.08)*r*0.035,.cy.+.sin(ma-
68340 30 2e 30 38 29 2a 72 2a 30 2e 30 33 35 2c 20 00 00 00 41 20 20 20 20 20 20 20 20 20 20 20 63 78 0.08)*r*0.035,....A...........cx
68360 20 2b 20 63 6f 73 28 6d 61 2b 30 2e 30 38 29 2a 72 2a 30 2e 30 33 35 2c 20 63 79 20 2b 20 73 69 .+.cos(ma+0.08)*r*0.035,.cy.+.si
68380 6e 28 6d 61 2b 30 2e 30 38 29 2a 72 2a 30 2e 30 33 35 2c 20 00 00 00 3f 20 20 20 20 20 20 20 20 n(ma+0.08)*r*0.035,....?........
683a0 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 2a 72 2a 30 2e 38 2c 20 63 79 20 2b 20 73 69 6e 28 ...cx.+.cos(ma)*r*0.8,.cy.+.sin(
683c0 6d 61 29 2a 72 2a 30 2e 38 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 00 00 00 00 4e 20 ma)*r*0.8,.0xFF000000);.......N.
683e0 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 .fill_tri(px,.a->w,.a->h,.cx.+.c
68400 6f 73 28 73 61 2d 30 2e 30 33 29 2a 72 2a 30 2e 30 32 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 2d os(sa-0.03)*r*0.02,.cy.+.sin(sa-
68420 30 2e 30 33 29 2a 72 2a 30 2e 30 32 2c 00 00 00 3e 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 0.03)*r*0.02,...>...........cx.+
68440 20 63 6f 73 28 73 61 2b 30 2e 30 33 29 2a 72 2a 30 2e 30 32 2c 20 63 79 20 2b 20 73 69 6e 28 73 .cos(sa+0.03)*r*0.02,.cy.+.sin(s
68460 61 2b 30 2e 30 33 29 2a 72 2a 30 2e 30 32 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 63 78 a+0.03)*r*0.02,...?...........cx
68480 20 2b 20 63 6f 73 28 73 61 29 2a 72 2a 30 2e 39 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 29 2a 72 .+.cos(sa)*r*0.9,.cy.+.sin(sa)*r
684a0 2a 30 2e 39 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 00 00 00 00 17 20 20 69 6e 74 20 *0.9,.0xFFFF0000);..........int.
684c0 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 1b 20 20 69 66 20 28 68 75 62 5f 72 hub_r.=.r.*.0.04;......if.(hub_r
684e0 20 3c 20 34 29 20 68 75 62 5f 72 20 3d 20 34 3b 00 00 00 58 20 20 66 6f 72 20 28 69 6e 74 20 69 .<.4).hub_r.=.4;...X..for.(int.i
68500 72 20 3d 20 30 3b 20 69 72 20 3c 20 68 75 62 5f 72 20 2d 20 32 3b 20 69 72 2b 2b 29 20 63 69 72 r.=.0;.ir.<.hub_r.-.2;.ir++).cir
68520 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 cle(px,.a->w,.a->h,.cx,.cy,.ir,.
68540 30 78 46 46 46 46 46 46 46 46 29 3b 35 81 f5 18 00 00 00 00 6e 00 00 00 45 00 00 00 52 00 00 00 0xFFFFFFFF);5.......n...E...R...
68560 28 00 00 00 63 00 00 00 03 00 00 00 cc 09 00 00 00 00 00 00 31 0c 00 00 00 00 00 00 37 0d 00 00 (...c...............1.......7...
68580 00 00 00 00 35 81 5f d0 00 00 00 9f 00 00 00 a1 00 00 00 00 00 00 00 00 00 00 00 a0 00 00 00 01 ....5._.........................
685a0 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
685c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
685e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
686a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
686c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
686e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68700 00 00 00 00 00 00 00 00 00 00 69 9d a9 45 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 ..........i..E..................
68720 00 00 00 00 00 01 3b 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 ......;....#define._POSIX_C_SOUR
68740 43 45 20 32 30 30 38 30 39 4c 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c CE.200809L...&#include."xdg-shel
68760 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 l-client-protocol.h"....#include
68780 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 .<fcntl.h>....#include.<math.h>.
687a0 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 ...#include.<poll.h>....#include
687c0 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c .<signal.h>....#include.<stdbool
687e0 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 .h>....#include.<stdint.h>....#i
68800 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 nclude.<stdio.h>....#include.<st
68820 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 dlib.h>....#include.<string.h>..
68840 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c ..#include.<sys/mman.h>....#incl
68860 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 ude.<sys/timerfd.h>....#include.
68880 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 <time.h>....#include.<unistd.h>.
688a0 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 ...#include.<wayland-client.h>..
688c0 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f ......#ifndef.M_PI...##define.M_
688e0 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e PI.3.14159265358979323846....#en
68900 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 dif....#ifndef.M_PI_2...%#define
68920 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 .M_PI_2.1.57079632679489661923..
68940 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 ..#endif.......)static.volatile.
68960 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 sig_atomic_t.running.=.1;....sta
68980 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 tic.void.on_sig(int.s).{......(v
689a0 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 oid)s;......running.=.0;....}...
689c0 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c .....struct.app.{......struct.wl
689e0 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 _display.*d;......struct.wl_regi
68a00 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 stry.*reg;......struct.wl_compos
68a20 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a itor.*comp;......struct.wl_shm.*
68a40 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d shm;......struct.xdg_wm_base.*wm
68a60 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 ;......struct.wl_surface.*ws;...
68a80 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 ...struct.xdg_surface.*xs;......
68aa0 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f struct.xdg_toplevel.*xt;......vo
68ac0 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 id.*pixels;......struct.wl_buffe
68ae0 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 r.*buf;......int.w,.h;......int.
68b00 62 77 2c 20 62 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 bw,.bh;......bool.configured;...
68b20 0e 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 ...bool.redraw;....};.......Jsta
68b40 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 tic.void.wm_ping(void.*data,.str
68b60 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 uct.xdg_wm_base.*wm,.uint32_t.se
68b80 72 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d rial).{......xdg_wm_base_pong(wm
68ba0 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 69 6e ,.serial);....}.......$static.in
68bc0 74 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 t.create_shm(size_t.size).{...#.
68be0 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 .char.t[].=."/tmp/wlclock-XXXXXX
68c00 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 0d ";......int.fd.=.mkstemp(t);....
68c20 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 ..if.(fd.<.0)........exit(1);...
68c40 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 1e 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 ...unlink(t);......if.(ftruncate
68c60 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 (fd,.size).<.0)........exit(1);.
68c80 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 .....return.fd;....}.......(stat
68ca0 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a ic.void.destroy_buf(struct.app.*
68cc0 61 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 0b 20 20 20 20 72 65 a).{......if.(!a->buf)........re
68ce0 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 turn;...*..size_t.size.=.(size_t
68d00 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 )a->bw.*.a->bh.*.4;......wl_buff
68d20 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 er_destroy(a->buf);......munmap(
68d40 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d 3e 62 75 66 20 3d 20 a->pixels,.size);......a->buf.=.
68d60 4e 55 4c 4c 3b 00 00 00 13 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 NULL;......a->pixels.=.NULL;....
68d80 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 }.......&static.void.alloc_buf(s
68da0 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 truct.app.*a).{......destroy_buf
68dc0 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 (a);...(..size_t.size.=.(size_t)
68de0 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 a->w.*.a->h.*.4;......int.fd.=.c
68e00 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 reate_shm(size);...J..a->pixels.
68e20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 =.mmap(NULL,.size,.PROT_READ.|.P
68e40 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 ROT_WRITE,.MAP_SHARED,.fd,.0);..
68e60 00 1e 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 ....if.(a->pixels.==.MAP_FAILED)
68e80 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f ........exit(1);...B..struct.wl_
68ea0 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 shm_pool.*pool.=.wl_shm_create_p
68ec0 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 ool(a->shm,.fd,.size);...C..a->b
68ee0 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 uf.=.wl_shm_pool_create_buffer(p
68f00 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 ool,.0,.a->w,.a->h,.a->w.*.4,...
68f20 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =...............................
68f40 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 ......WL_SHM_FORMAT_ARGB8888);..
68f60 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 ....wl_shm_pool_destroy(pool);..
68f80 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0f 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 ....close(fd);......a->bw.=.a->w
68fa0 3b 00 00 00 0f 20 20 61 2d 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 ;......a->bh.=.a->h;....}.......
68fc0 4c 73 74 61 74 69 63 20 76 6f 69 64 20 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 Lstatic.void.line(uint32_t.*px,.
68fe0 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e int.w,.int.h,.int.x0,.int.y0,.in
69000 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 1e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.x1,.int.y1,...................
69020 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 ..uint32_t.c).{.../..int.dx.=.ab
69040 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d s(x1.-.x0),.sx.=.x0.<.x1.?.1.:.-
69060 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 1;...0..int.dy.=.-abs(y1.-.y0),.
69080 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 14 20 20 69 6e 74 20 sy.=.y0.<.y1.?.1.:.-1;......int.
690a0 65 72 72 20 3d 20 64 78 20 2b 20 64 79 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 err.=.dx.+.dy;......while.(1).{.
690c0 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 ../....if.(x0.>=.0.&&.x0.<.w.&&.
690e0 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 1a 20 20 20 20 20 20 70 78 5b 79 y0.>=.0.&&.y0.<.h)..........px[y
69100 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 3b 00 00 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 0.*.w.+.x0].=.c;........if.(x0.=
69120 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b =.x1.&&.y0.==.y1)..........break
69140 3b 00 00 00 15 20 20 20 20 69 6e 74 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 ;........int.e2.=.2.*.err;......
69160 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b ..if.(e2.>=.dy).{..........err.+
69180 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 =.dy;..........x0.+=.sx;........
691a0 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 }........if.(e2.<=.dx).{........
691c0 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 ..err.+=.dx;..........y0.+=.sy;.
691e0 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 45 73 74 61 74 .......}......}....}.......Estat
69200 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 ic.void.circle(uint32_t.*px,.int
69220 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 .w,.int.h,.int.cx,.int.cy,.int.r
69240 2c 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 ,.......................uint32_t
69260 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d .c).{..."..int.x.=.0,.y.=.r,.d.=
69280 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 .3.-.2.*.r;......while.(y.>=.x).
692a0 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c {...H....int.p[8][2].=.{{cx.+.x,
692c0 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 .cy.+.y},.{cx.-.x,.cy.+.y},.{cx.
692e0 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 +.x,.cy.-.y},...H...............
69300 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 ....{cx.-.x,.cy.-.y},.{cx.+.y,.c
69320 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 y.+.x},.{cx.-.y,.cy.+.x},...7...
69340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d ................{cx.+.y,.cy.-.x}
69360 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 ,.{cx.-.y,.cy.-.x}};........for.
69380 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 (int.i.=.0;.i.<.8;.i++)...E.....
693a0 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 .if.(p[i][0].>=.0.&&.p[i][0].<.w
693c0 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 .&&.p[i][1].>=.0.&&.p[i][1].<.h)
693e0 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 ...&........px[p[i][1].*.w.+.p[i
69400 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 ][0]].=.c;........if.(d.>.0).{..
69420 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 ........d.+=.4.*.(x.-.y).+.10;..
69440 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 ........y--;........}.else......
69460 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 ....d.+=.4.*.x.+.6;........x++;.
69480 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 66 .....}....}.......Pstatic.void.f
694a0 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 ill_tri(uint32_t.*px,.int.w,.int
694c0 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 .h,.int.x0,.int.y0,.int.x1,.int.
694e0 79 31 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 y1,...2.....................int.
69500 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 x2,.int.y2,.uint32_t.c).{...B..i
69520 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 nt.min_y.=.y0.<.y1.?.(y0.<.y2.?.
69540 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 y0.:.y2).:.(y1.<.y2.?.y1.:.y2);.
69560 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e ..B..int.max_y.=.y0.>.y1.?.(y0.>
69580 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a .y2.?.y0.:.y2).:.(y1.>.y2.?.y1.:
695a0 20 79 32 29 3b 00 00 00 10 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 00 00 00 0e 20 20 20 .y2);......if.(min_y.<.0).......
695c0 20 6d 69 6e 5f 79 20 3d 20 30 3b 00 00 00 11 20 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 .min_y.=.0;......if.(max_y.>=.h)
695e0 00 00 00 12 20 20 20 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 ........max_y.=.h.-.1;...(..for.
69600 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 (int.y.=.min_y;.y.<=.max_y;.y++)
69620 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 .{........int.x_start.=.w,.x_end
69640 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 .=.0;...3....int.xs[3].=.{x0,.x1
69660 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 21 ,.x2},.ys[3].=.{y0,.y1,.y2};...!
69680 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 ....for.(int.i.=.0;.i.<.3;.i++).
696a0 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 {..........int.j.=.(i.+.1).%.3;.
696c0 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a ..C......if.((ys[i].<=.y.&&.ys[j
696e0 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e ].>.y).||.(ys[j].<=.y.&&.ys[i].>
69700 20 79 29 29 20 7b 00 00 00 1b 20 20 20 20 20 20 20 20 69 66 20 28 79 73 5b 6a 5d 20 3d 3d 20 79 .y)).{............if.(ys[j].==.y
69720 73 5b 69 5d 29 00 00 00 13 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 48 s[i])..............continue;...H
69740 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 5b ........int.x.=.xs[i].+.(y.-.ys[
69760 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 2d i]).*.(xs[j].-.xs[i])./.(ys[j].-
69780 20 79 73 5b 69 5d 29 3b 00 00 00 18 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 74 .ys[i]);............if.(x.<.x_st
697a0 61 72 74 29 00 00 00 16 20 20 20 20 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 00 art)..............x_start.=.x;..
697c0 00 16 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 00 00 00 14 20 20 20 20 ..........if.(x.>.x_end)........
697e0 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 ......x_end.=.x;..........}.....
69800 20 20 20 7d 00 00 00 14 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 74 20 3c 20 30 29 00 00 00 12 ...}........if.(x_start.<.0)....
69820 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 30 3b 00 00 00 13 20 20 20 20 69 66 20 28 78 5f ......x_start.=.0;........if.(x_
69840 65 6e 64 20 3e 3d 20 77 29 00 00 00 14 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 end.>=.w)..........x_end.=.w.-.1
69860 3b 00 00 00 2a 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 ;...*....for.(int.x.=.x_start;.x
69880 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b 29 00 00 00 18 20 20 20 20 20 20 70 78 5b 79 20 2a 20 .<=.x_end;.x++)..........px[y.*.
698a0 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 w.+.x].=.c;......}....}.......#s
698c0 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 tatic.void.render(struct.app.*a)
698e0 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d .{.../..if.(!a->configured.||.a-
69900 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 >w.<=.0.||.a->h.<=.0)........ret
69920 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 20 61 6c urn;......if.(!a->buf)........al
69940 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 loc_buf(a);......uint32_t.*px.=.
69960 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c a->pixels;...$..memset(px,.0xFF,
69980 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 .a->w.*.a->h.*.4);......time_t.t
699a0 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 t.=.time(NULL);......struct.tm.t
699c0 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b mv;......localtime_r(&tt,.&tmv);
699e0 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d ...#..int.cx.=.a->w./.2,.cy.=.a-
69a00 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e >h./.2;.../..int.r.=.(a->w.<.a->
69a20 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 h.?.a->w.:.a->h)./.2.-.10;......
69a40 69 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 20 if.(r.<.5)........r.=.5;........
69a60 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b ..for.(int.i.=.0;.i.<.60;.i++).{
69a80 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 ........double.ang.=.i./.60.0.*.
69aa0 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 31 20 20 20 20 69 6e 74 20 6c 65 2.*.M_PI.-.M_PI_2;...1....int.le
69ac0 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 20 2a 20 30 2e 31 32 20 3a 20 72 20 n.=.(i.%.5.==.0).?.r.*.0.12.:.r.
69ae0 2a 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 64 6f 75 62 6c 65 20 74 5f 61 6e 67 20 3d 20 28 69 *.0.04;...0....double.t_ang.=.(i
69b00 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 32 20 3a 20 30 2e 30 30 35 3b 00 00 00 37 20 .%.5.==.0).?.0.012.:.0.005;...7.
69b20 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b ...fill_tri(px,.a->w,.a->h,.cx.+
69b40 20 63 6f 73 28 61 6e 67 20 2d 20 74 5f 61 6e 67 29 20 2a 20 72 2c 00 00 00 42 20 20 20 20 20 20 .cos(ang.-.t_ang).*.r,...B......
69b60 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2d 20 74 5f 61 6e 67 29 20 2a 20 72 .......cy.+.sin(ang.-.t_ang).*.r
69b80 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 20 2b 20 74 5f 61 6e 67 29 20 2a 20 72 2c 00 00 00 42 ,.cx.+.cos(ang.+.t_ang).*.r,...B
69ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2b 20 74 5f 61 6e .............cy.+.sin(ang.+.t_an
69bc0 67 29 20 2a 20 72 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e g).*.r,.cx.+.cos(ang).*.(r.-.len
69be0 29 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 ),...4.............cy.+.sin(ang)
69c00 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 .*.(r.-.len),.0xFF000000);......
69c20 7d 00 00 00 00 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 }.......4..double.sa.=.tmv.tm_se
69c40 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 c./.60.0.*.2.*.M_PI.-.M_PI_2;...
69c60 4a 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 J..double.ma.=.(tmv.tm_min.+.tmv
69c80 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 .tm_sec./.60.0)./.60.0.*.2.*.M_P
69ca0 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 4c I.-.M_PI_2;......double.ha.=...L
69cc0 20 20 20 20 20 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 ......((tmv.tm_hour.%.12).+.(tmv
69ce0 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f .tm_min./.60.0))./.12.0.*.2.*.M_
69d00 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 3a 20 20 66 69 6c 6c 5f 74 72 69 28 70 PI.-.M_PI_2;.......:..fill_tri(p
69d20 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2d 20 30 2e 31 x,.a->w,.a->h,.cx.+.cos(ha.-.0.1
69d40 32 29 20 2a 20 72 20 2a 20 30 2e 30 35 2c 00 00 00 4a 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2).*.r.*.0.05,...J...........cy.
69d60 2b 20 73 69 6e 28 68 61 20 2d 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 30 2e 30 35 2c 20 63 78 20 +.sin(ha.-.0.12).*.r.*.0.05,.cx.
69d80 2b 20 63 6f 73 28 68 61 20 2b 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 30 2e 30 35 2c 00 00 00 43 +.cos(ha.+.0.12).*.r.*.0.05,...C
69da0 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2b 20 30 2e 31 32 29 20 2a ...........cy.+.sin(ha.+.0.12).*
69dc0 20 72 20 2a 20 30 2e 30 35 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e .r.*.0.05,.cx.+.cos(ha).*.r.*.0.
69de0 35 35 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 29 20 2a 55,...0...........cy.+.sin(ha).*
69e00 20 72 20 2a 20 30 2e 35 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 3b 20 20 66 69 6c .r.*.0.55,.0xFF000000);...;..fil
69e20 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d l_tri(px,.a->w,.a->h,.cx.+.cos(m
69e40 61 20 2d 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 30 2e 30 33 35 2c 00 00 00 4c 20 20 20 20 20 20 a.-.0.08).*.r.*.0.035,...L......
69e60 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2d 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 30 .....cy.+.sin(ma.-.0.08).*.r.*.0
69e80 2e 30 33 35 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2b 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 .035,.cx.+.cos(ma.+.0.08).*.r.*.
69ea0 30 2e 30 33 35 2c 00 00 00 43 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 0.035,...C...........cy.+.sin(ma
69ec0 20 2b 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 30 2e 30 33 35 2c 20 63 78 20 2b 20 63 6f 73 28 6d .+.0.08).*.r.*.0.035,.cx.+.cos(m
69ee0 61 29 20 2a 20 72 20 2a 20 30 2e 38 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b a).*.r.*.0.8,.../...........cy.+
69f00 20 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 38 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b .sin(ma).*.r.*.0.8,.0xFF000000);
69f20 00 00 00 00 00 00 00 3a 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e .......:..fill_tri(px,.a->w,.a->
69f40 68 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 20 2d 20 30 2e 30 33 29 20 2a 20 72 20 2a 20 30 2e 30 h,.cx.+.cos(sa.-.0.03).*.r.*.0.0
69f60 32 2c 00 00 00 4a 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 73 61 20 2d 20 30 2,...J...........cy.+.sin(sa.-.0
69f80 2e 30 33 29 20 2a 20 72 20 2a 20 30 2e 30 32 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 20 2b 20 30 .03).*.r.*.0.02,.cx.+.cos(sa.+.0
69fa0 2e 30 33 29 20 2a 20 72 20 2a 20 30 2e 30 32 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 63 .03).*.r.*.0.02,...B...........c
69fc0 79 20 2b 20 73 69 6e 28 73 61 20 2b 20 30 2e 30 33 29 20 2a 20 72 20 2a 20 30 2e 30 32 2c 20 63 y.+.sin(sa.+.0.03).*.r.*.0.02,.c
69fe0 78 20 2b 20 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 2c 00 00 00 2f 20 20 20 20 20 20 x.+.cos(sa).*.r.*.0.9,.../......
6a000 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 39 2c 20 30 78 46 .....cy.+.sin(sa).*.r.*.0.9,.0xF
6a020 46 46 46 30 30 30 30 29 3b 00 00 00 00 00 00 00 17 20 20 69 6e 74 20 68 75 62 5f 72 20 3d 20 72 FFF0000);..........int.hub_r.=.r
6a040 20 2a 20 30 2e 30 34 3b 00 00 00 10 20 20 69 66 20 28 68 75 62 5f 72 20 3c 20 34 29 00 00 00 0e .*.0.04;......if.(hub_r.<.4)....
6a060 20 20 20 20 68 75 62 5f 72 20 3d 20 34 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 ....hub_r.=.4;...(..for.(int.ir.
6a080 3d 20 30 3b 20 69 72 20 3c 20 68 75 62 5f 72 20 2d 20 32 3b 20 69 72 2b 2b 29 00 00 00 33 20 20 =.0;.ir.<.hub_r.-.2;.ir++)...3..
6a0a0 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c ..circle(px,.a->w,.a->h,.cx,.cy,
6a0c0 20 69 72 2c 20 30 78 46 46 46 46 46 46 46 46 29 3b 00 00 00 34 20 20 63 69 72 63 6c 65 28 70 78 .ir,.0xFFFFFFFF);...4..circle(px
6a0e0 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 68 75 62 5f 72 2c 20 30 78 46 ,.a->w,.a->h,.cx,.cy,.hub_r,.0xF
6a100 46 30 30 30 30 30 30 29 3b 00 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 F000000);.......)..wl_surface_at
6a120 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 tach(a->ws,.a->buf,.0,.0);...4..
6a140 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 wl_surface_damage_buffer(a->ws,.
6a160 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 0,.0,.a->w,.a->h);......wl_surfa
6a180 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 ce_commit(a->ws);......a->redraw
6a1a0 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 .=.false;....}.......Gstatic.voi
6a1c0 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 d.xt_close(void.*d,.struct.xdg_t
6a1e0 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 oplevel.*xt).{.running.=.0;.}...
6a200 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c ....Jstatic.void.xt_cfg(void.*d,
6a220 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f .struct.xdg_toplevel.*xt,.int32_
6a240 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 t.w,.int32_t.h,...(.............
6a260 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 ......struct.wl_array.*s).{.....
6a280 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e .struct.app.*a.=.d;...3..if.(w.>
6a2a0 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 .0.&&.h.>.0.&&.(w.!=.a->w.||.h.!
6a2c0 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 =.a->h)).{........a->w.=.w;.....
6a2e0 20 20 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 ...a->h.=.h;........destroy_buf(
6a300 61 29 3b 00 00 00 15 20 20 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 a);........a->redraw.=.true;....
6a320 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 ..}....}.......Fstatic.void.xs_c
6a340 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a fg(void.*d,.struct.xdg_surface.*
6a360 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 xs,.uint32_t.serial).{......stru
6a380 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f ct.app.*a.=.d;...(..xdg_surface_
6a3a0 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 ack_configure(xs,.serial);......
6a3c0 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 13 20 20 61 2d 3e 72 65 a->configured.=.true;......a->re
6a3e0 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 43 73 74 61 74 69 63 20 draw.=.true;....}.......Cstatic.
6a400 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 void.reg_global(void.*d,.struct.
6a420 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 33 wl_registry.*r,.uint32_t.id,...3
6a440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 .......................const.cha
6a460 72 20 2a 69 2c 20 75 69 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 r.*i,.uint32_t.v).{......struct.
6a480 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 22 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 app.*a.=.d;..."..if.(!strcmp(i,.
6a4a0 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 "wl_compositor"))...C....a->comp
6a4c0 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 .=.wl_registry_bind(r,.id,.&wl_c
6a4e0 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 20 20 20 65 6c ompositor_interface,.4);......el
6a500 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b se.if.(!strcmp(i,."wl_shm"))...;
6a520 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c ....a->shm.=.wl_registry_bind(r,
6a540 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 27 20 .id,.&wl_shm_interface,.1);...'.
6a560 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 .else.if.(!strcmp(i,."xdg_wm_bas
6a580 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 e")).{...?....a->wm.=.wl_registr
6a5a0 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 y_bind(r,.id,.&xdg_wm_base_inter
6a5c0 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 face,.1);...C....static.const.st
6a5e0 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e ruct.xdg_wm_base_listener.l.=.{.
6a600 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 ping.=.wm_ping};...+....xdg_wm_b
6a620 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 ase_add_listener(a->wm,.&l,.a);.
6a640 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 .....}....}........int.main(void
6a660 29 20 7b 00 00 00 15 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c ).{......struct.app.a.=.{0};....
6a680 20 20 61 2e 77 20 3d 20 34 30 30 3b 00 00 00 0c 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 ..a.w.=.400;......a.h.=.400;....
6a6a0 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 ..signal(SIGINT,.on_sig);...!..a
6a6c0 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 .d.=.wl_display_connect(NULL);..
6a6e0 00 0b 20 20 69 66 20 28 21 61 2e 64 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 ....if.(!a.d)........return.1;..
6a700 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 .'..a.reg.=.wl_display_get_regis
6a720 74 72 79 28 61 2e 64 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 try(a.d);...G..static.const.stru
6a740 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 ct.wl_registry_listener.rl.=.{.g
6a760 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 lobal.=.reg_global};...+..wl_reg
6a780 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 istry_add_listener(a.reg,.&rl,.&
6a7a0 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e a);......wl_display_roundtrip(a.
6a7c0 64 29 3b 00 00 00 21 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c d);...!..if.(!a.comp.||.!a.shm.|
6a7e0 7c 20 21 61 2e 77 6d 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 |.!a.wm)........return.1;......a
6a800 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 .ws.=.wl_compositor_create_surfa
6a820 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 ce(a.comp);...1..a.xs.=.xdg_wm_b
6a840 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b ase_get_xdg_surface(a.wm,.a.ws);
6a860 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 ...G..static.const.struct.xdg_su
6a880 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 rface_listener.xsl.=.{.configure
6a8a0 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 .=.xs_cfg};...+..xdg_surface_add
6a8c0 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 _listener(a.xs,.&xsl,.&a);...(..
6a8e0 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 a.xt.=.xdg_surface_get_toplevel(
6a900 61 2e 78 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 a.xs);...G..static.const.struct.
6a920 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f xdg_toplevel_listener.xtl.=.{.co
6a940 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 00 00 00 46 20 20 20 20 20 20 20 20 20 20 20 nfigure.=.xt_cfg,...F...........
6a960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6a980 20 20 20 20 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 .........close.=.xt_close};...,.
6a9a0 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c .xdg_toplevel_add_listener(a.xt,
6a9c0 20 26 78 74 6c 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 .&xtl,.&a);...*..xdg_toplevel_se
6a9e0 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 t_title(a.xt,."wlclock");......w
6aa00 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 17 20 20 77 68 69 l_surface_commit(a.ws);......whi
6aa20 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 1d 20 20 20 20 77 6c 5f 64 69 73 le.(!a.configured)........wl_dis
6aa40 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 0d 20 20 72 65 6e 64 65 72 28 play_dispatch(a.d);......render(
6aa60 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 &a);...9..int.tfd.=.timerfd_crea
6aa80 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 te(CLOCK_MONOTONIC,.TFD_CLOEXEC)
6aaa0 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 ;...F..timerfd_settime(tfd,.0,.&
6aac0 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 (struct.itimerspec){{1,.0},.{1,.
6aae0 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 31 30 30 0}},.NULL);......char.buffer[100
6ab00 5d 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 ];......while.(running).{...-...
6ab20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 .while.(wl_display_prepare_read(
6ab40 61 2e 64 29 20 21 3d 20 30 29 00 00 00 27 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 a.d).!=.0)...'......wl_display_d
6ab60 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f ispatch_pending(a.d);........wl_
6ab80 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 display_flush(a.d);...M....struc
6aba0 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 t.pollfd.fds[2].=.{{wl_display_g
6abc0 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 et_fd(a.d),.POLLIN},.{tfd,.POLLI
6abe0 4e 7d 7d 3b 00 00 00 1f 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 N}};........if.(poll(fds,.2,.-1)
6ac00 20 3c 20 30 29 20 7b 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 .<.0).{..."......wl_display_canc
6ac20 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 0f 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b el_read(a.d);..........continue;
6ac40 00 00 00 05 20 20 20 20 7d 00 00 00 20 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 ........}........if.(fds[0].reve
6ac60 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 nts.&.POLLIN)..."......wl_displa
6ac80 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 00 00 00 08 20 20 20 20 65 6c 73 65 00 y_read_events(a.d);........else.
6aca0 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 .."......wl_display_cancel_read(
6acc0 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 a.d);...%....wl_display_dispatch
6ace0 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d _pending(a.d);..."....if.(fds[1]
6ad00 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 .revents.&.POLLIN).{..........ui
6ad20 6e 74 36 34 5f 74 20 74 5f 65 78 70 3b 00 00 00 27 20 20 20 20 20 20 72 65 61 64 28 74 66 64 2c nt64_t.t_exp;...'......read(tfd,
6ad40 20 26 74 5f 65 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 78 70 29 29 3b 00 00 00 1e 20 20 20 20 .&t_exp,.sizeof(t_exp));........
6ad60 20 20 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 2c 20 20 ..time_t.cli.=.time(NULL);...,..
6ad80 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 5f 73 74 72 75 63 74 20 3d 20 6c 6f 63 61 6c 74 ....struct.tm.*t_struct.=.localt
6ada0 69 6d 65 28 26 63 6c 69 29 3b 00 00 00 49 20 20 20 20 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 ime(&cli);...I......strftime(buf
6adc0 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 fer,.sizeof(buffer),."%d-%m-%Y.%
6ade0 49 3a 25 4d 3a 25 53 20 25 70 22 2c 20 74 5f 73 74 72 75 63 74 29 3b 00 00 00 25 20 20 20 20 20 I:%M:%S.%p",.t_struct);...%.....
6ae00 20 70 72 69 6e 74 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 73 22 2c 20 62 75 66 66 65 72 29 3b .printf("\rTime.is.%s",.buffer);
6ae20 00 00 00 15 20 20 20 20 20 20 66 66 6c 75 73 68 28 73 74 64 6f 75 74 29 3b 00 00 00 16 20 20 20 ..........fflush(stdout);.......
6ae40 20 20 20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 11 ...a.redraw.=.true;........}....
6ae60 20 20 20 20 69 66 20 28 61 2e 72 65 64 72 61 77 29 00 00 00 11 20 20 20 20 20 20 72 65 6e 64 65 ....if.(a.redraw)..........rende
6ae80 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 0f 20 20 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b r(&a);......}......printf("\n");
6aea0 00 00 00 0d 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 12 20 20 64 65 73 74 72 6f 79 5f 62 ......close(tfd);......destroy_b
6aec0 75 66 28 26 61 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 uf(&a);......wl_display_disconne
6aee0 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 ct(a.d);......return.0;....}5...
6af00 00 00 00 00 00 00 00 00 00 00 00 00 3b 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ............;...................
6af20 00 00 00 00 24 24 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 a0 00 00 00 a2 ....$$..............5._.........
6af40 00 00 00 00 00 00 00 00 00 00 00 a1 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 ................................
6af60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6af80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6afa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6afc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6afe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a9 45 04 01 ..........................i..E..
6b0c0 00 00 00 00 00 f5 18 00 00 01 10 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 ...........................}....
6b0e0 01 11 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 07 00 00 00 00 00 00 00 00 00 00 00 01 ................................
6b100 00 00 00 04 20 20 20 20 f5 18 00 00 01 08 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 f7 ................................
6b120 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 13 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 ....................while.(wl_di
6b140 73 70 6c f5 18 00 00 00 f8 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 eb 00 00 00 00 00 spl.............................
6b160 00 00 00 00 00 00 01 00 00 00 17 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f .............a.xt.=.xdg_surface_
6b180 67 65 f5 18 00 00 00 ec 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 de 00 00 00 00 00 00 ge..............................
6b1a0 00 00 00 00 00 01 00 00 00 11 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 f5 18 00 00 00 ............a.d.=.wl_displa.....
6b1c0 df 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 ce 00 00 00 00 00 00 00 00 00 00 00 01 00 ................................
6b1e0 00 00 0f 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 f5 18 00 00 00 cf 00 00 00 00 00 00 00 00 .....if.(!strcmp(i..............
6b200 00 00 00 00 f5 18 00 00 00 a5 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 3d 20 20 20 20 20 20 .........................=......
6b220 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 2a 72 2a 30 2e 38 2c 20 63 79 20 2b 20 73 69 .....cx.+.cos(ma)*r*0.8,.cy.+.si
6b240 6e 28 6d 61 29 2a 72 2a 30 2e 38 2c 20 30 78 46 46 30 30 30 30 30 30 f5 18 00 00 00 a6 00 00 00 n(ma)*r*0.8,.0xFF000000.........
6b260 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 87 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0b 20 ................................
6b280 20 6d 65 6d 73 65 74 28 70 78 f5 18 00 00 00 88 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 .memset(px......................
6b2a0 00 5e 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1e 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 .^....................for.(int.i
6b2c0 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b f5 18 00 00 00 5f 00 00 00 00 00 00 00 00 00 00 .=.0;.i.<.8;.i++....._..........
6b2e0 00 00 f5 18 00 00 00 33 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0d 73 74 61 74 69 63 20 69 .......3................static.i
6b300 6e 74 20 63 72 f5 18 00 00 00 34 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 nt.cr.....4.....................
6b320 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 ...............................5
6b340 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 33 00 00 00 0d 00 00 00 00 .......................3........
6b360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 33 00 00 .............................3..
6b380 00 0d 00 00 00 00 00 00 00 00 00 00 00 2b 00 00 00 1e 00 00 00 00 04 00 00 00 00 00 00 00 00 00 .............+..................
6b3a0 00 00 00 00 00 00 05 00 00 00 00 00 00 f5 18 00 00 00 00 5e 00 00 00 1e 00 00 00 00 00 00 00 00 ...................^............
6b3c0 00 00 00 29 00 00 00 0b 00 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 ...)............................
6b3e0 00 00 00 f5 18 00 00 00 00 87 00 00 00 0b 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 3d 00 00 .............................=..
6b400 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 f5 18 00 00 00 00 a5 ................................
6b420 00 00 00 3d 00 00 00 00 00 00 00 00 00 00 00 29 00 00 00 0f 00 00 00 00 13 00 00 00 00 00 00 00 ...=...........)................
6b440 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 f5 18 00 00 00 00 ce 00 00 00 0f 00 00 00 00 00 00 ................................
6b460 00 00 00 00 00 10 00 00 00 11 00 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 ................................
6b480 00 00 00 00 00 f5 18 00 00 00 00 de 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 17 ................................
6b4a0 00 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 ................................
6b4c0 00 eb 00 00 00 17 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 13 00 00 00 00 1c 00 00 00 00 00 ................................
6b4e0 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 f7 00 00 00 13 00 00 00 00 ................................
6b500 00 00 00 00 00 00 00 10 00 00 00 04 00 00 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b520 02 00 00 00 00 00 00 f5 18 00 00 00 00 07 01 00 00 04 00 00 00 00 00 00 00 00 00 00 00 09 00 00 ................................
6b540 00 01 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8d 00 00 00 00 00 00 00 35 81 5f .............................5._
6b560 d0 00 00 00 a1 00 00 00 a3 00 00 00 00 00 00 00 00 00 00 00 a2 00 00 01 11 00 00 00 00 00 00 00 ................................
6b580 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b6e0 00 00 00 69 9d a9 46 04 01 00 00 00 34 00 f5 18 00 00 00 58 00 00 00 c1 00 00 01 11 00 00 00 57 ...i..F.....4......X...........W
6b700 00 00 00 53 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 ...Sstatic.void.circle(uint32_t.
6b720 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 *px,.int.w,.int.h,.int.cx,.int.c
6b740 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 y,.int.r,.uint32_t.c).{..."..int
6b760 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 .x.=.0,.y.=.r,.d.=.3.-.2.*.r;...
6b780 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 ...while.(y.>=.x).{...H....int.p
6b7a0 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 [8][2].=.{{cx.+.x,.cy.+.y},.{cx.
6b7c0 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 -.x,.cy.+.y},.{cx.+.x,.cy.-.y},.
6b7e0 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 ..H...................{cx.-.x,.c
6b800 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 y.-.y},.{cx.+.y,.cy.+.x},.{cx.-.
6b820 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y,.cy.+.x},...7.................
6b840 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 ..{cx.+.y,.cy.-.x},.{cx.-.y,.cy.
6b860 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 -.x}};........for.(int.i.=.0;.i.
6b880 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e <.8;.i++)...E......if.(p[i][0].>
6b8a0 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d =.0.&&.p[i][0].<.w.&&.p[i][1].>=
6b8c0 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 .0.&&.p[i][1].<.h)...&........px
6b8e0 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 [p[i][1].*.w.+.p[i][0]].=.c;....
6b900 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 ....if.(d.>.0).{..........d.+=.4
6b920 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 .*.(x.-.y).+.10;..........y--;..
6b940 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 ......}.else..........d.+=.4.*.x
6b960 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 .+.6;........x++;......}....}...
6b980 00 00 00 00 6e 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 ....nstatic.void.fill_tri(uint32
6b9a0 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e _t.*px,.int.w,.int.h,.int.x0,.in
6b9c0 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 69 6e 74 20 78 32 2c 20 69 6e t.y0,.int.x1,.int.y1,.int.x2,.in
6b9e0 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 6e 74 20 6d 69 6e t.y2,.uint32_t.c).{...B..int.min
6ba00 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 79 30 20 3a 20 79 _y.=.y0.<.y1.?.(y0.<.y2.?.y0.:.y
6ba20 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 42 20 20 69 2).:.(y1.<.y2.?.y1.:.y2);...B..i
6ba40 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e 20 79 32 20 3f 20 nt.max_y.=.y0.>.y1.?.(y0.>.y2.?.
6ba60 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 y0.:.y2).:.(y1.>.y2.?.y1.:.y2);.
6ba80 00 00 1b 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 20 6d 69 6e 5f 79 20 3d 20 30 3b 00 00 .....if.(min_y.<.0).min_y.=.0;..
6baa0 00 20 20 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 ....if.(max_y.>=.h).max_y.=.h.-.
6bac0 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 1;...(..for.(int.y.=.min_y;.y.<=
6bae0 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 .max_y;.y++).{........int.x_star
6bb00 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b t.=.w,.x_end.=.0;...3....int.xs[
6bb20 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 3].=.{x0,.x1,.x2},.ys[3].=.{y0,.
6bb40 79 31 2c 20 79 32 7d 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 y1,.y2};...!....for.(int.i.=.0;.
6bb60 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d 20 28 i.<.3;.i++).{..........int.j.=.(
6bb80 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 5d 20 i.+.1).%.3;...C......if.((ys[i].
6bba0 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c 3d 20 <=.y.&&.ys[j].>.y).||.(ys[j].<=.
6bbc0 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 25 20 20 20 20 20 20 20 20 69 66 y.&&.ys[i].>.y)).{...%........if
6bbe0 20 28 79 73 5b 6a 5d 20 3d 3d 20 79 73 5b 69 5d 29 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 48 20 .(ys[j].==.ys[i]).continue;...H.
6bc00 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 5b 69 .......int.x.=.xs[i].+.(y.-.ys[i
6bc20 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 ]).*.(xs[j].-.xs[i])./.(ys[j].-.
6bc40 79 73 5b 69 5d 29 3b 00 00 00 25 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 74 61 ys[i]);...%........if.(x.<.x_sta
6bc60 72 74 29 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 00 00 21 20 20 20 20 20 20 20 20 69 66 20 28 rt).x_start.=.x;...!........if.(
6bc80 78 20 3e 20 78 5f 65 6e 64 29 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 07 20 20 20 20 20 20 7d x.>.x_end).x_end.=.x;..........}
6bca0 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 74 20 3c 20 30 ........}...!....if.(x_start.<.0
6bcc0 29 20 78 5f 73 74 61 72 74 20 3d 20 30 3b 00 00 00 22 20 20 20 20 69 66 20 28 78 5f 65 6e 64 20 ).x_start.=.0;..."....if.(x_end.
6bce0 3e 3d 20 77 29 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 3d 20 20 20 20 66 6f 72 20 >=.w).x_end.=.w.-.1;...=....for.
6bd00 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b (int.x.=.x_start;.x.<=.x_end;.x+
6bd20 2b 29 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 03 20 20 7d 00 00 00 01 +).px[y.*.w.+.x].=.c;......}....
6bd40 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 }.......#static.void.render(stru
6bd60 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 ct.app.*a).{.../..if.(!a->config
6bd80 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 ured.||.a->w.<=.0.||.a->h.<=.0).
6bda0 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 .......return;......if.(!a->buf)
6bdc0 00 00 00 11 20 20 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 ........alloc_buf(a);......uint3
6bde0 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 2_t.*px.=.a->pixels;...$..memset
6be00 28 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 (px,.0xFF,.a->w.*.a->h.*.4);....
6be20 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 ..time_t.tt.=.time(NULL);......s
6be40 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 truct.tm.tmv;......localtime_r(&
6be60 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 tt,.&tmv);...#..int.cx.=.a->w./.
6be80 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 2,.cy.=.a->h./.2;.../..int.r.=.(
6bea0 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d a->w.<.a->h.?.a->w.:.a->h)./.2.-
6bec0 20 31 30 3b 00 00 00 13 20 20 69 66 20 28 72 20 3c 20 35 29 20 72 20 3d 20 35 3b 00 00 00 00 00 .10;......if.(r.<.5).r.=.5;.....
6bee0 00 00 0a 20 20 2f 2f 20 54 69 63 6b 73 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 .....//.Ticks......for.(int.i.=.
6bf00 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 0;.i.<.60;.i++).{........double.
6bf20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 ang.=.i./.60.0.*.2.*.M_PI.-.M_PI
6bf40 5f 32 3b 00 00 00 31 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 _2;...1....int.len.=.(i.%.5.==.0
6bf60 29 20 3f 20 72 20 2a 20 30 2e 31 32 20 3a 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 ).?.r.*.0.12.:.r.*.0.04;...0....
6bf80 64 6f 75 62 6c 65 20 74 5f 61 6e 67 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e double.t_ang.=.(i.%.5.==.0).?.0.
6bfa0 30 31 32 20 3a 20 30 2e 30 30 35 3b 00 00 00 1d 20 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 012.:.0.005;........fill_tri(px,
6bfc0 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 .a->w,.a->h,....:.............cx
6bfe0 20 2b 20 63 6f 73 28 61 6e 67 2d 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e .+.cos(ang-t_ang)*r,.cy.+.sin(an
6c000 67 2d 74 5f 61 6e 67 29 2a 72 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b g-t_ang)*r,...:.............cx.+
6c020 20 63 6f 73 28 61 6e 67 2b 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 2b .cos(ang+t_ang)*r,.cy.+.sin(ang+
6c040 74 5f 61 6e 67 29 2a 72 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 t_ang)*r,...G.............cx.+.c
6c060 6f 73 28 61 6e 67 29 2a 28 72 2d 6c 65 6e 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 2a 28 os(ang)*(r-len),.cy.+.sin(ang)*(
6c080 72 2d 6c 65 6e 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 r-len),.0xFF000000);......}.....
6c0a0 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 ..4..double.sa.=.tmv.tm_sec./.60
6c0c0 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 .0.*.2.*.M_PI.-.M_PI_2;...J..dou
6c0e0 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 ble.ma.=.(tmv.tm_min.+.tmv.tm_se
6c100 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f c./.60.0)./.60.0.*.2.*.M_PI.-.M_
6c120 50 49 5f 32 3b 00 00 00 54 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 76 2e 74 6d 5f PI_2;...T..double.ha.=.((tmv.tm_
6c140 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 hour.%.12).+.(tmv.tm_min./.60.0)
6c160 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 )./.12.0.*.2.*.M_PI.-.M_PI_2;...
6c180 00 00 00 00 0e 20 20 2f 2f 20 48 6f 75 72 20 48 61 6e 64 00 00 00 4f 20 20 66 69 6c 6c 5f 74 72 .......//.Hour.Hand...O..fill_tr
6c1a0 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 2d 30 2e i(px,.a->w,.a->h,.cx.+.cos(ha-0.
6c1c0 31 32 29 2a 72 2a 30 2e 30 35 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 2d 30 2e 31 32 29 2a 72 2a 12)*r*0.05,.cy.+.sin(ha-0.12)*r*
6c1e0 30 2e 30 35 2c 20 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 0.05,....?...........cx.+.cos(ha
6c200 2b 30 2e 31 32 29 2a 72 2a 30 2e 30 35 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 2b 30 2e 31 32 29 +0.12)*r*0.05,.cy.+.sin(ha+0.12)
6c220 2a 72 2a 30 2e 30 35 2c 20 00 00 00 41 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 *r*0.05,....A...........cx.+.cos
6c240 28 68 61 29 2a 72 2a 30 2e 35 35 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 29 2a 72 2a 30 2e 35 35 (ha)*r*0.55,.cy.+.sin(ha)*r*0.55
6c260 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 10 20 20 2f 2f 20 4d 69 6e 75 74 65 20 48 61 ,.0xFF000000);......//.Minute.Ha
6c280 6e 64 00 00 00 51 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c nd...Q..fill_tri(px,.a->w,.a->h,
6c2a0 20 63 78 20 2b 20 63 6f 73 28 6d 61 2d 30 2e 30 38 29 2a 72 2a 30 2e 30 33 35 2c 20 63 79 20 2b .cx.+.cos(ma-0.08)*r*0.035,.cy.+
6c2c0 20 73 69 6e 28 6d 61 2d 30 2e 30 38 29 2a 72 2a 30 2e 30 33 35 2c 20 00 00 00 41 20 20 20 20 20 .sin(ma-0.08)*r*0.035,....A.....
6c2e0 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 2b 30 2e 30 38 29 2a 72 2a 30 2e 30 33 35 2c ......cx.+.cos(ma+0.08)*r*0.035,
6c300 20 63 79 20 2b 20 73 69 6e 28 6d 61 2b 30 2e 30 38 29 2a 72 2a 30 2e 30 33 35 2c 20 00 00 00 3f .cy.+.sin(ma+0.08)*r*0.035,....?
6c320 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 2a 72 2a 30 2e 38 2c 20 63 ...........cx.+.cos(ma)*r*0.8,.c
6c340 79 20 2b 20 73 69 6e 28 6d 61 29 2a 72 2a 30 2e 38 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 y.+.sin(ma)*r*0.8,.0xFF000000);.
6c360 00 00 24 20 20 2f 2f 20 53 65 63 6f 6e 64 20 48 61 6e 64 20 28 53 68 6f 72 74 65 72 2c 20 62 61 ..$..//.Second.Hand.(Shorter,.ba
6c380 6c 61 6e 63 65 64 29 00 00 00 4e 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 lanced)...N..fill_tri(px,.a->w,.
6c3a0 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 2d 30 2e 30 33 29 2a 72 2a 30 2e 30 32 2c 20 a->h,.cx.+.cos(sa-0.03)*r*0.02,.
6c3c0 63 79 20 2b 20 73 69 6e 28 73 61 2d 30 2e 30 33 29 2a 72 2a 30 2e 30 32 2c 00 00 00 3e 20 20 20 cy.+.sin(sa-0.03)*r*0.02,...>...
6c3e0 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 2b 30 2e 30 33 29 2a 72 2a 30 2e 30 32 ........cx.+.cos(sa+0.03)*r*0.02
6c400 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 2b 30 2e 30 33 29 2a 72 2a 30 2e 30 32 2c 00 00 00 3f 20 ,.cy.+.sin(sa+0.03)*r*0.02,...?.
6c420 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 29 2a 72 2a 30 2e 38 2c 20 63 79 ..........cx.+.cos(sa)*r*0.8,.cy
6c440 20 2b 20 73 69 6e 28 73 61 29 2a 72 2a 30 2e 38 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 .+.sin(sa)*r*0.8,.0xFFFF0000);..
6c460 00 00 00 00 00 0f 20 20 2f 2f 20 43 65 6e 74 65 72 20 48 75 62 00 00 00 17 20 20 69 6e 74 20 68 ........//.Center.Hub......int.h
6c480 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 1b 20 20 69 66 20 28 68 75 62 5f 72 20 ub_r.=.r.*.0.04;......if.(hub_r.
6c4a0 3c 20 34 29 20 68 75 62 5f 72 20 3d 20 34 3b 00 00 00 58 20 20 66 6f 72 20 28 69 6e 74 20 69 72 <.4).hub_r.=.4;...X..for.(int.ir
6c4c0 20 3d 20 30 3b 20 69 72 20 3c 20 68 75 62 5f 72 20 2d 20 32 3b 20 69 72 2b 2b 29 20 63 69 72 63 .=.0;.ir.<.hub_r.-.2;.ir++).circ
6c4e0 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 30 le(px,.a->w,.a->h,.cx,.cy,.ir,.0
6c500 78 46 46 46 46 46 46 46 46 29 3b 35 81 f5 18 00 00 00 00 58 00 00 00 45 00 00 00 56 00 00 00 28 xFFFFFFFF);5.......X...E...V...(
6c520 00 00 00 67 00 00 00 03 00 00 00 d3 07 00 00 00 00 00 00 90 0c 00 00 00 00 00 00 96 0d 00 00 00 ...g............................
6c540 00 00 00 35 81 5f d0 00 00 00 a2 00 00 00 a4 00 00 00 00 00 00 00 00 00 00 00 a3 00 00 00 01 00 ...5._..........................
6c560 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6c580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6c5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6c5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6c5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6c600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6c620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6c640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6c660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6c680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6c6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6c6c0 00 00 00 00 00 00 00 00 00 69 9d a9 98 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 .........i......................
6c6e0 00 00 00 00 01 22 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 ....."....#define._POSIX_C_SOURC
6c700 45 20 32 30 30 38 30 39 4c 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c E.200809L...&#include."xdg-shell
6c720 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 -client-protocol.h"....#include.
6c740 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 <fcntl.h>....#include.<math.h>..
6c760 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 ..#include.<poll.h>....#include.
6c780 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e <signal.h>....#include.<stdbool.
6c7a0 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 6e h>....#include.<stdint.h>....#in
6c7c0 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 clude.<stdio.h>....#include.<std
6c7e0 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 lib.h>....#include.<string.h>...
6c800 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 .#include.<sys/mman.h>....#inclu
6c820 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c de.<sys/timerfd.h>....#include.<
6c840 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 time.h>....#include.<unistd.h>..
6c860 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 ..#include.<wayland-client.h>...
6c880 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 .....#ifndef.M_PI...##define.M_P
6c8a0 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 I.3.14159265358979323846....#end
6c8c0 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 if....#ifndef.M_PI_2...%#define.
6c8e0 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 M_PI_2.1.57079632679489661923...
6c900 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 .#endif.......)static.volatile.s
6c920 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 ig_atomic_t.running.=.1;....stat
6c940 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f ic.void.on_sig(int.s).{......(vo
6c960 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 id)s;......running.=.0;....}....
6c980 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f ....struct.app.{......struct.wl_
6c9a0 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 display.*d;......struct.wl_regis
6c9c0 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 try.*reg;......struct.wl_composi
6c9e0 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 tor.*comp;......struct.wl_shm.*s
6ca00 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b hm;......struct.xdg_wm_base.*wm;
6ca20 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 ......struct.wl_surface.*ws;....
6ca40 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 ..struct.xdg_surface.*xs;......s
6ca60 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 truct.xdg_toplevel.*xt;......voi
6ca80 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 d.*pixels;......struct.wl_buffer
6caa0 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 62 .*buf;......int.w,.h;......int.b
6cac0 77 2c 20 62 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e w,.bh;......bool.configured;....
6cae0 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 ..bool.redraw;....};.......Jstat
6cb00 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 ic.void.wm_ping(void.*data,.stru
6cb20 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 ct.xdg_wm_base.*wm,.uint32_t.ser
6cb40 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c ial).{......xdg_wm_base_pong(wm,
6cb60 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 69 6e 74 .serial);....}.......$static.int
6cb80 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 20 .create_shm(size_t.size).{...#..
6cba0 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 char.t[].=."/tmp/wlclock-XXXXXX"
6cbc0 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 0d 20 ;......int.fd.=.mkstemp(t);.....
6cbe0 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c .if.(fd.<.0)........exit(1);....
6cc00 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 1e 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 ..unlink(t);......if.(ftruncate(
6cc20 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 fd,.size).<.0)........exit(1);..
6cc40 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 ....return.fd;....}.......(stati
6cc60 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 c.void.destroy_buf(struct.app.*a
6cc80 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 0b 20 20 20 20 72 65 74 ).{......if.(!a->buf)........ret
6cca0 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 urn;...*..size_t.size.=.(size_t)
6ccc0 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 a->bw.*.a->bh.*.4;......wl_buffe
6cce0 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 61 r_destroy(a->buf);......munmap(a
6cd00 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d 3e 62 75 66 20 3d 20 4e ->pixels,.size);......a->buf.=.N
6cd20 55 4c 4c 3b 00 00 00 13 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d ULL;......a->pixels.=.NULL;....}
6cd40 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 .......&static.void.alloc_buf(st
6cd60 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 ruct.app.*a).{......destroy_buf(
6cd80 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 a);...(..size_t.size.=.(size_t)a
6cda0 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 72 ->w.*.a->h.*.4;......int.fd.=.cr
6cdc0 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d eate_shm(size);...J..a->pixels.=
6cde0 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 .mmap(NULL,.size,.PROT_READ.|.PR
6ce00 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 OT_WRITE,.MAP_SHARED,.fd,.0);...
6ce20 1e 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 00 ...if.(a->pixels.==.MAP_FAILED).
6ce40 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 .......exit(1);...B..struct.wl_s
6ce60 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f hm_pool.*pool.=.wl_shm_create_po
6ce80 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 75 ol(a->shm,.fd,.size);...C..a->bu
6cea0 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f f.=.wl_shm_pool_create_buffer(po
6cec0 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d ol,.0,.a->w,.a->h,.a->w.*.4,...=
6cee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6cf00 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 .....WL_SHM_FORMAT_ARGB8888);...
6cf20 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 ...wl_shm_pool_destroy(pool);...
6cf40 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0f 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b ...close(fd);......a->bw.=.a->w;
6cf60 00 00 00 0f 20 20 61 2d 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 45 ......a->bh.=.a->h;....}.......E
6cf80 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c static.void.circle(uint32_t.*px,
6cfa0 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 .int.w,.int.h,.int.cx,.int.cy,.i
6cfc0 6e 74 20 72 2c 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 nt.r,.......................uint
6cfe0 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 32_t.c).{..."..int.x.=.0,.y.=.r,
6d000 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d .d.=.3.-.2.*.r;......while.(y.>=
6d020 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 .x).{...H....int.p[8][2].=.{{cx.
6d040 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 +.x,.cy.+.y},.{cx.-.x,.cy.+.y},.
6d060 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 {cx.+.x,.cy.-.y},...H...........
6d080 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 ........{cx.-.x,.cy.-.y},.{cx.+.
6d0a0 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 y,.cy.+.x},.{cx.-.y,.cy.+.x},...
6d0c0 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 7...................{cx.+.y,.cy.
6d0e0 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 -.x},.{cx.-.y,.cy.-.x}};........
6d100 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 for.(int.i.=.0;.i.<.8;.i++)...E.
6d120 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d .....if.(p[i][0].>=.0.&&.p[i][0]
6d140 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 .<.w.&&.p[i][1].>=.0.&&.p[i][1].
6d160 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b <.h)...&........px[p[i][1].*.w.+
6d180 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 .p[i][0]].=.c;........if.(d.>.0)
6d1a0 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 .{..........d.+=.4.*.(x.-.y).+.1
6d1c0 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 0;..........y--;........}.else..
6d1e0 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 ........d.+=.4.*.x.+.6;........x
6d200 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 50 73 74 61 74 69 63 20 76 6f ++;......}....}.......Pstatic.vo
6d220 69 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c id.fill_tri(uint32_t.*px,.int.w,
6d240 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 .int.h,.int.x0,.int.y0,.int.x1,.
6d260 69 6e 74 20 79 31 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 int.y1,...2.....................
6d280 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 int.x2,.int.y2,.uint32_t.c).{...
6d2a0 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 B..int.min_y.=.y0.<.y1.?.(y0.<.y
6d2c0 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 2.?.y0.:.y2).:.(y1.<.y2.?.y1.:.y
6d2e0 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 2);...B..int.max_y.=.y0.>.y1.?.(
6d300 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 y0.>.y2.?.y0.:.y2).:.(y1.>.y2.?.
6d320 79 31 20 3a 20 79 32 29 3b 00 00 00 10 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 00 00 00 y1.:.y2);......if.(min_y.<.0)...
6d340 0e 20 20 20 20 6d 69 6e 5f 79 20 3d 20 30 3b 00 00 00 11 20 20 69 66 20 28 6d 61 78 5f 79 20 3e .....min_y.=.0;......if.(max_y.>
6d360 3d 20 68 29 00 00 00 12 20 20 20 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 =.h)........max_y.=.h.-.1;...(..
6d380 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 for.(int.y.=.min_y;.y.<=.max_y;.
6d3a0 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 y++).{........int.x_start.=.w,.x
6d3c0 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 _end.=.0;...3....int.xs[3].=.{x0
6d3e0 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b ,.x1,.x2},.ys[3].=.{y0,.y1,.y2};
6d400 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 ...!....for.(int.i.=.0;.i.<.3;.i
6d420 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 ++).{..........int.j.=.(i.+.1).%
6d440 20 33 3b 00 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 .3;...C......if.((ys[i].<=.y.&&.
6d460 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b ys[j].>.y).||.(ys[j].<=.y.&&.ys[
6d480 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 1b 20 20 20 20 20 20 20 20 69 66 20 28 79 73 5b 6a 5d 20 i].>.y)).{............if.(ys[j].
6d4a0 3d 3d 20 79 73 5b 69 5d 29 00 00 00 13 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b ==.ys[i])..............continue;
6d4c0 00 00 00 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d ...H........int.x.=.xs[i].+.(y.-
6d4e0 20 79 73 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b .ys[i]).*.(xs[j].-.xs[i])./.(ys[
6d500 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b 00 00 00 18 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 j].-.ys[i]);............if.(x.<.
6d520 78 5f 73 74 61 72 74 29 00 00 00 16 20 20 20 20 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 x_start)..............x_start.=.
6d540 78 3b 00 00 00 16 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 00 00 00 14 x;............if.(x.>.x_end)....
6d560 20 20 20 20 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 07 20 20 20 20 20 20 7d 00 ..........x_end.=.x;..........}.
6d580 00 00 05 20 20 20 20 7d 00 00 00 14 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 74 20 3c 20 30 29 .......}........if.(x_start.<.0)
6d5a0 00 00 00 12 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 30 3b 00 00 00 13 20 20 20 20 69 66 ..........x_start.=.0;........if
6d5c0 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 00 00 00 14 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 77 .(x_end.>=.w)..........x_end.=.w
6d5e0 20 2d 20 31 3b 00 00 00 2a 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 .-.1;...*....for.(int.x.=.x_star
6d600 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b 29 00 00 00 18 20 20 20 20 20 20 70 78 5b t;.x.<=.x_end;.x++)..........px[
6d620 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 y.*.w.+.x].=.c;......}....}.....
6d640 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 ..#static.void.render(struct.app
6d660 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c .*a).{.../..if.(!a->configured.|
6d680 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 |.a->w.<=.0.||.a->h.<=.0).......
6d6a0 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 .return;......if.(!a->buf)......
6d6c0 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 ..alloc_buf(a);......uint32_t.*p
6d6e0 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 x.=.a->pixels;...$..memset(px,.0
6d700 78 46 46 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 xFF,.a->w.*.a->h.*.4);......time
6d720 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 _t.tt.=.time(NULL);......struct.
6d740 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 tm.tmv;......localtime_r(&tt,.&t
6d760 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 mv);...#..int.cx.=.a->w./.2,.cy.
6d780 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c =.a->h./.2;.../..int.r.=.(a->w.<
6d7a0 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 .a->h.?.a->w.:.a->h)./.2.-.10;..
6d7c0 00 0c 20 20 69 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 00 ....if.(r.<.5)........r.=.5;....
6d7e0 00 00 00 0a 20 20 2f 2f 20 54 69 63 6b 73 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d ......//.Ticks......for.(int.i.=
6d800 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 .0;.i.<.60;.i++).{........double
6d820 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 .ang.=.i./.60.0.*.2.*.M_PI.-.M_P
6d840 49 5f 32 3b 00 00 00 31 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 I_2;...1....int.len.=.(i.%.5.==.
6d860 30 29 20 3f 20 72 20 2a 20 30 2e 31 32 20 3a 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 30 20 20 20 0).?.r.*.0.12.:.r.*.0.04;...0...
6d880 20 64 6f 75 62 6c 65 20 74 5f 61 6e 67 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 .double.t_ang.=.(i.%.5.==.0).?.0
6d8a0 2e 30 31 32 20 3a 20 30 2e 30 30 35 3b 00 00 00 37 20 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 .012.:.0.005;...7....fill_tri(px
6d8c0 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 20 2d 20 74 5f 61 ,.a->w,.a->h,.cx.+.cos(ang.-.t_a
6d8e0 6e 67 29 20 2a 20 72 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 ng).*.r,...B.............cy.+.si
6d900 6e 28 61 6e 67 20 2d 20 74 5f 61 6e 67 29 20 2a 20 72 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 n(ang.-.t_ang).*.r,.cx.+.cos(ang
6d920 20 2b 20 74 5f 61 6e 67 29 20 2a 20 72 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 63 .+.t_ang).*.r,...B.............c
6d940 79 20 2b 20 73 69 6e 28 61 6e 67 20 2b 20 74 5f 61 6e 67 29 20 2a 20 72 2c 20 63 78 20 2b 20 63 y.+.sin(ang.+.t_ang).*.r,.cx.+.c
6d960 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 00 00 00 34 20 20 20 20 20 20 20 20 os(ang).*.(r.-.len),...4........
6d980 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 20 .....cy.+.sin(ang).*.(r.-.len),.
6d9a0 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 34 20 20 64 6f 75 0xFF000000);......}.......4..dou
6d9c0 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a ble.sa.=.tmv.tm_sec./.60.0.*.2.*
6d9e0 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d .M_PI.-.M_PI_2;...J..double.ma.=
6da00 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 .(tmv.tm_min.+.tmv.tm_sec./.60.0
6da20 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 )./.60.0.*.2.*.M_PI.-.M_PI_2;...
6da40 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 4c 20 20 20 20 20 20 28 28 74 6d 76 2e 74 6d ...double.ha.=...L......((tmv.tm
6da60 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 _hour.%.12).+.(tmv.tm_min./.60.0
6da80 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 ))./.12.0.*.2.*.M_PI.-.M_PI_2;..
6daa0 00 00 00 00 00 0e 20 20 2f 2f 20 48 6f 75 72 20 48 61 6e 64 00 00 00 3a 20 20 66 69 6c 6c 5f 74 ........//.Hour.Hand...:..fill_t
6dac0 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2d ri(px,.a->w,.a->h,.cx.+.cos(ha.-
6dae0 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 30 2e 30 35 2c 00 00 00 4a 20 20 20 20 20 20 20 20 20 20 .0.12).*.r.*.0.05,...J..........
6db00 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2d 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 30 2e 30 35 2c .cy.+.sin(ha.-.0.12).*.r.*.0.05,
6db20 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2b 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 30 2e 30 35 2c .cx.+.cos(ha.+.0.12).*.r.*.0.05,
6db40 00 00 00 43 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2b 20 30 2e 31 ...C...........cy.+.sin(ha.+.0.1
6db60 32 29 20 2a 20 72 20 2a 20 30 2e 30 35 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 2a 20 72 20 2).*.r.*.0.05,.cx.+.cos(ha).*.r.
6db80 2a 20 30 2e 35 35 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 *.0.55,...0...........cy.+.sin(h
6dba0 61 29 20 2a 20 72 20 2a 20 30 2e 35 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 10 20 a).*.r.*.0.55,.0xFF000000);.....
6dbc0 20 2f 2f 20 4d 69 6e 75 74 65 20 48 61 6e 64 00 00 00 3b 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 .//.Minute.Hand...;..fill_tri(px
6dbe0 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2d 20 30 2e 30 38 ,.a->w,.a->h,.cx.+.cos(ma.-.0.08
6dc00 29 20 2a 20 72 20 2a 20 30 2e 30 33 35 2c 00 00 00 4c 20 20 20 20 20 20 20 20 20 20 20 63 79 20 ).*.r.*.0.035,...L...........cy.
6dc20 2b 20 73 69 6e 28 6d 61 20 2d 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 30 2e 30 33 35 2c 20 63 78 +.sin(ma.-.0.08).*.r.*.0.035,.cx
6dc40 20 2b 20 63 6f 73 28 6d 61 20 2b 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 30 2e 30 33 35 2c 00 00 .+.cos(ma.+.0.08).*.r.*.0.035,..
6dc60 00 43 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2b 20 30 2e 30 38 29 .C...........cy.+.sin(ma.+.0.08)
6dc80 20 2a 20 72 20 2a 20 30 2e 30 33 35 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a .*.r.*.0.035,.cx.+.cos(ma).*.r.*
6dca0 20 30 2e 38 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 .0.8,.../...........cy.+.sin(ma)
6dcc0 20 2a 20 72 20 2a 20 30 2e 38 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 24 20 20 2f 2f .*.r.*.0.8,.0xFF000000);...$..//
6dce0 20 53 65 63 6f 6e 64 20 48 61 6e 64 20 28 53 68 6f 72 74 65 72 2c 20 62 61 6c 61 6e 63 65 64 29 .Second.Hand.(Shorter,.balanced)
6dd00 00 00 00 3a 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 ...:..fill_tri(px,.a->w,.a->h,.c
6dd20 78 20 2b 20 63 6f 73 28 73 61 20 2d 20 30 2e 30 33 29 20 2a 20 72 20 2a 20 30 2e 30 32 2c 00 00 x.+.cos(sa.-.0.03).*.r.*.0.02,..
6dd40 00 4a 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 73 61 20 2d 20 30 2e 30 33 29 .J...........cy.+.sin(sa.-.0.03)
6dd60 20 2a 20 72 20 2a 20 30 2e 30 32 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 20 2b 20 30 2e 30 33 29 .*.r.*.0.02,.cx.+.cos(sa.+.0.03)
6dd80 20 2a 20 72 20 2a 20 30 2e 30 32 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 .*.r.*.0.02,...B...........cy.+.
6dda0 73 69 6e 28 73 61 20 2b 20 30 2e 30 33 29 20 2a 20 72 20 2a 20 30 2e 30 32 2c 20 63 78 20 2b 20 sin(sa.+.0.03).*.r.*.0.02,.cx.+.
6ddc0 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 38 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 cos(sa).*.r.*.0.8,.../..........
6dde0 20 63 79 20 2b 20 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 38 2c 20 30 78 46 46 46 46 30 .cy.+.sin(sa).*.r.*.0.8,.0xFFFF0
6de00 30 30 30 29 3b 00 00 00 00 00 00 00 0f 20 20 2f 2f 20 43 65 6e 74 65 72 20 48 75 62 00 00 00 17 000);..........//.Center.Hub....
6de20 20 20 69 6e 74 20 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 10 20 20 69 66 20 ..int.hub_r.=.r.*.0.04;......if.
6de40 28 68 75 62 5f 72 20 3c 20 34 29 00 00 00 0e 20 20 20 20 68 75 62 5f 72 20 3d 20 34 3b 00 00 00 (hub_r.<.4)........hub_r.=.4;...
6de60 28 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 72 20 3c 20 68 75 62 5f 72 20 2d (..for.(int.ir.=.0;.ir.<.hub_r.-
6de80 20 32 3b 20 69 72 2b 2b 29 00 00 00 33 20 20 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 .2;.ir++)...3....circle(px,.a->w
6dea0 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 30 78 46 46 46 46 46 46 46 46 29 3b ,.a->h,.cx,.cy,.ir,.0xFFFFFFFF);
6dec0 00 00 00 34 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c ...4..circle(px,.a->w,.a->h,.cx,
6dee0 20 63 79 2c 20 68 75 62 5f 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 00 00 00 00 29 .cy,.hub_r,.0xFF000000);.......)
6df00 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 ..wl_surface_attach(a->ws,.a->bu
6df20 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 f,.0,.0);...4..wl_surface_damage
6df40 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 _buffer(a->ws,.0,.0,.a->w,.a->h)
6df60 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b ;......wl_surface_commit(a->ws);
6df80 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 ......a->redraw.=.false;....}...
6dfa0 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a ....Gstatic.void.xt_close(void.*
6dfc0 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 72 75 d,.struct.xdg_toplevel.*xt).{.ru
6dfe0 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 nning.=.0;.}.......Jstatic.void.
6e000 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 xt_cfg(void.*d,.struct.xdg_tople
6e020 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 vel.*xt,.int32_t.w,.int32_t.h,..
6e040 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 .(...................struct.wl_a
6e060 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 rray.*s).{......struct.app.*a.=.
6e080 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 d;...3..if.(w.>.0.&&.h.>.0.&&.(w
6e0a0 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 0d 20 20 20 .!=.a->w.||.h.!=.a->h)).{.......
6e0c0 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 13 20 .a->w.=.w;........a->h.=.h;.....
6e0e0 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 15 20 20 20 20 61 2d 3e 72 65 64 ...destroy_buf(a);........a->red
6e100 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 46 73 raw.=.true;......}....}.......Fs
6e120 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 tatic.void.xs_cfg(void.*d,.struc
6e140 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 t.xdg_surface.*xs,.uint32_t.seri
6e160 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 al).{......struct.app.*a.=.d;...
6e180 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c (..xdg_surface_ack_configure(xs,
6e1a0 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 .serial);......a->configured.=.t
6e1c0 72 75 65 3b 00 00 00 13 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d rue;......a->redraw.=.true;....}
6e1e0 00 00 00 00 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 .......Cstatic.void.reg_global(v
6e200 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 oid.*d,.struct.wl_registry.*r,.u
6e220 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 int32_t.id,...3.................
6e240 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c 20 75 69 6e 74 33 32 5f 74 20 76 29 ......const.char.*i,.uint32_t.v)
6e260 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 22 20 20 .{......struct.app.*a.=.d;..."..
6e280 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 if.(!strcmp(i,."wl_compositor"))
6e2a0 00 00 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 ...C....a->comp.=.wl_registry_bi
6e2c0 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 nd(r,.id,.&wl_compositor_interfa
6e2e0 63 65 2c 20 34 29 3b 00 00 00 20 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c ce,.4);......else.if.(!strcmp(i,
6e300 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 ."wl_shm"))...;....a->shm.=.wl_r
6e320 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 egistry_bind(r,.id,.&wl_shm_inte
6e340 72 66 61 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 rface,.1);...'..else.if.(!strcmp
6e360 28 69 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e (i,."xdg_wm_base")).{...?....a->
6e380 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 wm.=.wl_registry_bind(r,.id,.&xd
6e3a0 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 g_wm_base_interface,.1);...C....
6e3c0 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f static.const.struct.xdg_wm_base_
6e3e0 6c 69 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 listener.l.=.{.ping.=.wm_ping};.
6e400 00 00 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 ..+....xdg_wm_base_add_listener(
6e420 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 a->wm,.&l,.a);......}....}......
6e440 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 73 74 72 75 63 74 20 61 ..int.main(void).{......struct.a
6e460 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d 20 34 30 30 3b 00 00 00 0c 20 pp.a.=.{0};......a.w.=.400;.....
6e480 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 .a.h.=.400;......signal(SIGINT,.
6e4a0 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 on_sig);...!..a.d.=.wl_display_c
6e4c0 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 0b 20 20 69 66 20 28 21 61 2e 64 29 00 00 00 0d onnect(NULL);......if.(!a.d)....
6e4e0 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 ....return.1;...'..a.reg.=.wl_di
6e500 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 47 20 20 73 74 splay_get_registry(a.d);...G..st
6e520 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 atic.const.struct.wl_registry_li
6e540 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 stener.rl.=.{.global.=.reg_globa
6e560 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 l};...+..wl_registry_add_listene
6e580 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c r(a.reg,.&rl,.&a);......wl_displ
6e5a0 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 21 20 20 69 66 20 28 21 61 2e 63 ay_roundtrip(a.d);...!..if.(!a.c
6e5c0 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 00 00 00 0d 20 20 20 20 72 omp.||.!a.shm.||.!a.wm)........r
6e5e0 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 eturn.1;......a.ws.=.wl_composit
6e600 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 or_create_surface(a.comp);...1..
6e620 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 a.xs.=.xdg_wm_base_get_xdg_surfa
6e640 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 ce(a.wm,.a.ws);...G..static.cons
6e660 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 t.struct.xdg_surface_listener.xs
6e680 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 2b 20 20 l.=.{.configure.=.xs_cfg};...+..
6e6a0 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 xdg_surface_add_listener(a.xs,.&
6e6c0 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 xsl,.&a);...(..a.xt.=.xdg_surfac
6e6e0 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 e_get_toplevel(a.xs);...G..stati
6e700 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 c.const.struct.xdg_toplevel_list
6e720 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c ener.xtl.=.{.configure.=.xt_cfg,
6e740 00 00 00 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...F............................
6e760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 ........................close.=.
6e780 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 xt_close};...,..xdg_toplevel_add
6e7a0 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 26 61 29 3b 00 00 00 2a 20 20 _listener(a.xt,.&xtl,.&a);...*..
6e7c0 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c xdg_toplevel_set_title(a.xt,."wl
6e7e0 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 clock");......wl_surface_commit(
6e800 61 2e 77 73 29 3b 00 00 00 17 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 a.ws);......while.(!a.configured
6e820 29 00 00 00 1d 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 )........wl_display_dispatch(a.d
6e840 29 3b 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 );......render(&a);...9..int.tfd
6e860 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 .=.timerfd_create(CLOCK_MONOTONI
6e880 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 C,.TFD_CLOEXEC);...F..timerfd_se
6e8a0 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 ttime(tfd,.0,.&(struct.itimerspe
6e8c0 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 20 20 c){{1,.0},.{1,.0}},.NULL);......
6e8e0 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c 65 20 28 while.(running).{...-....while.(
6e900 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 wl_display_prepare_read(a.d).!=.
6e920 30 29 00 00 00 27 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 0)...'......wl_display_dispatch_
6e940 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f pending(a.d);........wl_display_
6e960 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 flush(a.d);...M....struct.pollfd
6e980 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e .fds[2].=.{{wl_display_get_fd(a.
6e9a0 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1f d),.POLLIN},.{tfd,.POLLIN}};....
6e9c0 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 00 ....if.(poll(fds,.2,.-1).<.0).{.
6e9e0 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 .."......wl_display_cancel_read(
6ea00 61 2e 64 29 3b 00 00 00 0f 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 20 20 20 20 a.d);..........continue;........
6ea20 7d 00 00 00 20 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f }........if.(fds[0].revents.&.PO
6ea40 4c 4c 49 4e 29 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 LLIN)..."......wl_display_read_e
6ea60 76 65 6e 74 73 28 61 2e 64 29 3b 00 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 20 20 20 vents(a.d);........else...".....
6ea80 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 .wl_display_cancel_read(a.d);...
6eaa0 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 %....wl_display_dispatch_pending
6eac0 28 61 2e 64 29 3b 00 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 (a.d);..."....if.(fds[1].revents
6eae0 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 .&.POLLIN).{..........uint64_t.t
6eb00 5f 65 78 70 3b 00 00 00 27 20 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 70 2c _exp;...'......read(tfd,.&t_exp,
6eb20 20 73 69 7a 65 6f 66 28 74 5f 65 78 70 29 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 64 72 .sizeof(t_exp));..........a.redr
6eb40 61 77 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 11 20 20 20 20 69 66 20 28 61 aw.=.true;........}........if.(a
6eb60 2e 72 65 64 72 61 77 29 00 00 00 11 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 .redraw)..........render(&a);...
6eb80 03 20 20 7d 00 00 00 0d 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 12 20 20 64 65 73 74 72 ...}......close(tfd);......destr
6eba0 6f 79 5f 62 75 66 28 26 61 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 oy_buf(&a);......wl_display_disc
6ebc0 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d onnect(a.d);......return.0;....}
6ebe0 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 22 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 5..............."...............
6ec00 00 00 00 00 00 00 00 00 94 21 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 a3 .........!..............5._.....
6ec20 00 00 00 a5 00 00 00 00 00 00 00 00 00 00 00 a4 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff ................................
6ec40 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ec60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ec80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6eca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ecc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ece0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ed00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ed20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ed40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ed60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ed80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d ..............................i.
6eda0 a9 98 04 01 00 00 00 00 00 f5 18 00 00 00 f2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d ...............................}
6edc0 f5 18 00 00 00 f3 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 e4 00 00 00 00 00 00 00 00 ................................
6ede0 00 00 00 01 00 00 00 35 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 .......5....while.(wl_display_pr
6ee00 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 20 77 6c 5f 64 69 73 70 f5 18 00 epare_read(a.d).!=.0).wl_disp...
6ee20 00 00 e5 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 d5 00 00 00 00 00 00 00 00 00 00 00 ................................
6ee40 01 00 00 00 03 20 20 69 f5 18 00 00 00 d6 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 b3 .......i........................
6ee60 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 73 f5 18 00 00 00 b4 00 00 00 00 00 00 00 00 00 ................s...............
6ee80 00 00 00 f5 18 00 00 00 8f 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0f 20 20 20 20 20 20 20 ................................
6eea0 20 20 20 20 20 20 63 78 f5 18 00 00 00 90 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 ......cx........................
6eec0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 ................................
6eee0 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8f 00 00 00 0f 00 ..5.............................
6ef00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 f5 18 00 00 00 00 ................................
6ef20 8f 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 24 00 00 00 01 00 00 00 00 10 00 00 00 00 00 00 ................$...............
6ef40 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 f5 18 00 00 00 00 b3 00 00 00 01 00 00 00 00 00 ................................
6ef60 00 00 00 00 00 00 22 00 00 00 03 00 00 00 00 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 ......".........................
6ef80 00 00 00 00 00 00 f5 18 00 00 00 00 d5 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 ................................
6efa0 35 00 00 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 5...............................
6efc0 00 00 e4 00 00 00 35 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 01 00 00 00 00 1e 00 00 00 00 ......5.........................
6efe0 00 00 00 00 00 00 00 00 00 00 35 02 00 00 00 00 00 00 35 81 5f d0 00 00 00 a4 00 00 00 a6 00 00 ..........5.......5._...........
6f000 00 00 00 00 00 00 00 00 00 a5 00 00 00 f3 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 ................................
6f020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a9 99 04 01 00 00 ........................i.......
6f180 00 36 00 f5 18 00 00 00 36 00 00 01 23 00 00 00 f3 00 00 00 bb 00 00 00 16 20 20 69 66 20 28 66 .6......6...#..............if.(f
6f1a0 64 20 3c 20 30 29 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 d.<.0).exit(1);......unlink(t);.
6f1c0 00 00 27 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 ..'..if.(ftruncate(fd,.size).<.0
6f1e0 29 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 ).exit(1);......return.fd;....}.
6f200 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 ......(static.void.destroy_buf(s
6f220 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 16 20 20 69 66 20 28 21 61 2d 3e 62 75 66 truct.app.*a).{......if.(!a->buf
6f240 29 20 72 65 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 ).return;...*..size_t.size.=.(si
6f260 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 6c 5f ze_t)a->bw.*.a->bh.*.4;......wl_
6f280 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e buffer_destroy(a->buf);......mun
6f2a0 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d 3e 62 75 map(a->pixels,.size);......a->bu
6f2c0 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b f.=.NULL;......a->pixels.=.NULL;
6f2e0 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 ....}.......&static.void.alloc_b
6f300 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 uf(struct.app.*a).{......destroy
6f320 5f 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a _buf(a);...(..size_t.size.=.(siz
6f340 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 e_t)a->w.*.a->h.*.4;......int.fd
6f360 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 .=.create_shm(size);...J..a->pix
6f380 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 els.=.mmap(NULL,.size,.PROT_READ
6f3a0 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 .|.PROT_WRITE,.MAP_SHARED,.fd,.0
6f3c0 29 3b 00 00 00 27 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 );...'..if.(a->pixels.==.MAP_FAI
6f3e0 4c 45 44 29 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d LED).exit(1);...B..struct.wl_shm
6f400 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c _pool.*pool.=.wl_shm_create_pool
6f420 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 5c 20 20 61 2d 3e 62 75 66 20 (a->shm,.fd,.size);...\..a->buf.
6f440 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c =.wl_shm_pool_create_buffer(pool
6f460 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 20 57 4c 5f 53 48 ,.0,.a->w,.a->h,.a->w.*.4,.WL_SH
6f480 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f M_FORMAT_ARGB8888);......wl_shm_
6f4a0 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 pool_destroy(pool);......close(f
6f4c0 64 29 3b 00 00 00 0f 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b 00 00 00 0f 20 20 61 2d 3e 62 d);......a->bw.=.a->w;......a->b
6f4e0 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 53 73 74 61 74 69 63 20 76 6f 69 h.=.a->h;....}.......Sstatic.voi
6f500 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e d.circle(uint32_t.*px,.int.w,.in
6f520 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 t.h,.int.cx,.int.cy,.int.r,.uint
6f540 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 32_t.c).{..."..int.x.=.0,.y.=.r,
6f560 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d .d.=.3.-.2.*.r;......while.(y.>=
6f580 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 .x).{...H....int.p[8][2].=.{{cx.
6f5a0 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 +.x,.cy.+.y},.{cx.-.x,.cy.+.y},.
6f5c0 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 {cx.+.x,.cy.-.y},...H...........
6f5e0 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 ........{cx.-.x,.cy.-.y},.{cx.+.
6f600 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 y,.cy.+.x},.{cx.-.y,.cy.+.x},...
6f620 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 7...................{cx.+.y,.cy.
6f640 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 -.x},.{cx.-.y,.cy.-.x}};........
6f660 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 for.(int.i.=.0;.i.<.8;.i++)...E.
6f680 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d .....if.(p[i][0].>=.0.&&.p[i][0]
6f6a0 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 .<.w.&&.p[i][1].>=.0.&&.p[i][1].
6f6c0 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b <.h)...&........px[p[i][1].*.w.+
6f6e0 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 43 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 .p[i][0]].=.c;...C....if.(d.>.0)
6f700 20 7b 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 20 79 2d 2d 3b 20 7d .{.d.+=.4.*.(x.-.y).+.10;.y--;.}
6f720 20 65 6c 73 65 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b .else.d.+=.4.*.x.+.6;........x++
6f740 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 6e 73 74 61 74 69 63 20 76 6f 69 64 ;......}....}.......nstatic.void
6f760 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 .fill_tri(uint32_t.*px,.int.w,.i
6f780 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e nt.h,.int.x0,.int.y0,.int.x1,.in
6f7a0 74 20 79 31 2c 20 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 t.y1,.int.x2,.int.y2,.uint32_t.c
6f7c0 29 20 7b 00 00 00 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 ).{...B..int.min_y.=.y0.<.y1.?.(
6f7e0 79 30 20 3c 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 y0.<.y2.?.y0.:.y2).:.(y1.<.y2.?.
6f800 79 31 20 3a 20 79 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 y1.:.y2);...B..int.max_y.=.y0.>.
6f820 79 31 20 3f 20 28 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e y1.?.(y0.>.y2.?.y0.:.y2).:.(y1.>
6f840 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 1b 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c .y2.?.y1.:.y2);......if.(min_y.<
6f860 20 30 29 20 6d 69 6e 5f 79 20 3d 20 30 3b 00 00 00 20 20 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d .0).min_y.=.0;......if.(max_y.>=
6f880 20 68 29 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 .h).max_y.=.h.-.1;...(..for.(int
6f8a0 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 .y.=.min_y;.y.<=.max_y;.y++).{..
6f8c0 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 ......int.x_start.=.w,.x_end.=.0
6f8e0 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 ;...3....int.xs[3].=.{x0,.x1,.x2
6f900 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 17 20 20 20 20 },.ys[3].=.{y0,.y1,.y2};........
6f920 62 6f 6f 6c 20 66 6f 75 6e 64 20 3d 20 66 61 6c 73 65 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 bool.found.=.false;...!....for.(
6f940 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 int.i.=.0;.i.<.3;.i++).{........
6f960 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 ..int.j.=.(i.+.1).%.3;...C......
6f980 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c if.((ys[i].<=.y.&&.ys[j].>.y).||
6f9a0 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 .(ys[j].<=.y.&&.ys[i].>.y)).{...
6f9c0 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 H........int.x.=.xs[i].+.(y.-.ys
6f9e0 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 [i]).*.(xs[j].-.xs[i])./.(ys[j].
6fa00 2d 20 79 73 5b 69 5d 29 3b 00 00 00 25 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 -.ys[i]);...%........if.(x.<.x_s
6fa20 74 61 72 74 29 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 00 00 21 20 20 20 20 20 20 20 20 69 66 tart).x_start.=.x;...!........if
6fa40 20 28 78 20 3e 20 78 5f 65 6e 64 29 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 15 20 20 20 20 20 .(x.>.x_end).x_end.=.x;.........
6fa60 20 20 20 66 6f 75 6e 64 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 ...found.=.true;..........}.....
6fa80 20 20 20 7d 00 00 00 10 20 20 20 20 69 66 20 28 66 6f 75 6e 64 29 20 7b 00 00 00 23 20 20 20 20 ...}........if.(found).{...#....
6faa0 20 20 69 66 20 28 78 5f 73 74 61 72 74 20 3c 20 30 29 20 78 5f 73 74 61 72 74 20 3d 20 30 3b 00 ..if.(x_start.<.0).x_start.=.0;.
6fac0 00 00 24 20 20 20 20 20 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 20 78 5f 65 6e 64 20 3d ..$......if.(x_end.>=.w).x_end.=
6fae0 20 77 20 2d 20 31 3b 00 00 00 3f 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f .w.-.1;...?......for.(int.x.=.x_
6fb00 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b 29 20 70 78 5b 79 20 2a 20 77 start;.x.<=.x_end;.x++).px[y.*.w
6fb20 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 .+.x].=.c;........}......}....}.
6fb40 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 ......#static.void.render(struct
6fb60 20 61 70 70 20 2a 61 29 20 7b 00 00 00 37 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 .app.*a).{...7..if.(!a->configur
6fb80 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 20 72 65 ed.||.a->w.<=.0.||.a->h.<=.0).re
6fba0 74 75 72 6e 3b 00 00 00 1c 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 20 61 6c 6c 6f 63 5f 62 75 turn;......if.(!a->buf).alloc_bu
6fbc0 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 f(a);......uint32_t.*px.=.a->pix
6fbe0 65 6c 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 20 els;...$..memset(px,.0xFF,.a->w.
6fc00 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 *.a->h.*.4);......time_t.tt.=.ti
6fc20 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 me(NULL);......struct.tm.tmv;...
6fc40 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 ...localtime_r(&tt,.&tmv);...#..
6fc60 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 int.cx.=.a->w./.2,.cy.=.a->h./.2
6fc80 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d ;.../..int.r.=.(a->w.<.a->h.?.a-
6fca0 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 13 20 20 69 66 20 28 72 20 >w.:.a->h)./.2.-.10;......if.(r.
6fcc0 3c 20 35 29 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 0f 20 20 2f 2f 20 44 69 61 6c 20 54 69 63 <.5).r.=.5;..........//.Dial.Tic
6fce0 6b 73 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 ks......for.(int.i.=.0;.i.<.60;.
6fd00 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 i++).{........double.ang.=.i./.6
6fd20 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 31 20 20 20 20 0.0.*.2.*.M_PI.-.M_PI_2;...1....
6fd40 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 20 2a 20 30 2e 31 int.len.=.(i.%.5.==.0).?.r.*.0.1
6fd60 32 20 3a 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 64 6f 75 62 6c 65 20 74 5f 61 6e 2.:.r.*.0.04;...0....double.t_an
6fd80 67 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 32 20 3a 20 30 2e 30 30 35 g.=.(i.%.5.==.0).?.0.012.:.0.005
6fda0 3b 00 00 00 1d 20 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 ;........fill_tri(px,.a->w,.a->h
6fdc0 2c 20 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 2d ,....:.............cx.+.cos(ang-
6fde0 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 2d 74 5f 61 6e 67 29 2a 72 2c t_ang)*r,.cy.+.sin(ang-t_ang)*r,
6fe00 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 2b 74 5f ...:.............cx.+.cos(ang+t_
6fe20 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 2b 74 5f 61 6e 67 29 2a 72 2c 00 00 ang)*r,.cy.+.sin(ang+t_ang)*r,..
6fe40 00 47 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 2a 28 72 2d .G.............cx.+.cos(ang)*(r-
6fe60 6c 65 6e 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 2a 28 72 2d 6c 65 6e 29 2c 20 30 78 46 len),.cy.+.sin(ang)*(r-len),.0xF
6fe80 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 34 20 20 64 6f 75 62 6c 65 F000000);......}.......4..double
6fea0 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f .sa.=.tmv.tm_sec./.60.0.*.2.*.M_
6fec0 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 PI.-.M_PI_2;...J..double.ma.=.(t
6fee0 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f mv.tm_min.+.tmv.tm_sec./.60.0)./
6ff00 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 54 20 20 .60.0.*.2.*.M_PI.-.M_PI_2;...T..
6ff20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 double.ha.=.((tmv.tm_hour.%.12).
6ff40 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 +.(tmv.tm_min./.60.0))./.12.0.*.
6ff60 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 0e 20 20 2f 2f 20 48 2.*.M_PI.-.M_PI_2;..........//.H
6ff80 6f 75 72 20 48 61 6e 64 00 00 00 4f 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c our.Hand...O..fill_tri(px,.a->w,
6ffa0 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 2d 30 2e 31 32 29 2a 72 2a 30 2e 30 35 2c .a->h,.cx.+.cos(ha-0.12)*r*0.05,
6ffc0 20 63 79 20 2b 20 73 69 6e 28 68 61 2d 30 2e 31 32 29 2a 72 2a 30 2e 30 35 2c 20 00 00 00 3f 20 .cy.+.sin(ha-0.12)*r*0.05,....?.
6ffe0 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 2b 30 2e 31 32 29 2a 72 2a 30 2e ..........cx.+.cos(ha+0.12)*r*0.
70000 30 35 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 2b 30 2e 31 32 29 2a 72 2a 30 2e 30 35 2c 20 00 00 05,.cy.+.sin(ha+0.12)*r*0.05,...
70020 00 41 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 29 2a 72 2a 30 2e 35 35 .A...........cx.+.cos(ha)*r*0.55
70040 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 29 2a 72 2a 30 2e 35 35 2c 20 30 78 46 46 30 30 30 30 30 ,.cy.+.sin(ha)*r*0.55,.0xFF00000
70060 30 29 3b 00 00 00 10 20 20 2f 2f 20 4d 69 6e 75 74 65 20 48 61 6e 64 00 00 00 51 20 20 66 69 6c 0);......//.Minute.Hand...Q..fil
70080 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d l_tri(px,.a->w,.a->h,.cx.+.cos(m
700a0 61 2d 30 2e 30 38 29 2a 72 2a 30 2e 30 33 35 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 2d 30 2e 30 a-0.08)*r*0.035,.cy.+.sin(ma-0.0
700c0 38 29 2a 72 2a 30 2e 30 33 35 2c 20 00 00 00 41 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 8)*r*0.035,....A...........cx.+.
700e0 63 6f 73 28 6d 61 2b 30 2e 30 38 29 2a 72 2a 30 2e 30 33 35 2c 20 63 79 20 2b 20 73 69 6e 28 6d cos(ma+0.08)*r*0.035,.cy.+.sin(m
70100 61 2b 30 2e 30 38 29 2a 72 2a 30 2e 30 33 35 2c 20 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 a+0.08)*r*0.035,....?...........
70120 63 78 20 2b 20 63 6f 73 28 6d 61 29 2a 72 2a 30 2e 38 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 cx.+.cos(ma)*r*0.8,.cy.+.sin(ma)
70140 2a 72 2a 30 2e 38 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 00 00 00 00 3b 20 20 2f 2f *r*0.8,.0xFF000000);.......;..//
70160 20 52 65 64 20 53 65 63 6f 6e 64 20 48 61 6e 64 20 2d 20 54 68 69 63 6b 65 6e 65 64 20 61 6e 64 .Red.Second.Hand.-.Thickened.and
70180 20 66 6f 72 63 65 64 20 74 6f 20 73 74 61 79 20 76 69 73 69 62 6c 65 00 00 00 3a 20 20 64 6f 75 .forced.to.stay.visible...:..dou
701a0 62 6c 65 20 73 5f 77 69 64 74 68 5f 61 6e 67 6c 65 20 3d 20 30 2e 30 36 3b 20 2f 2f 20 57 69 64 ble.s_width_angle.=.0.06;.//.Wid
701c0 65 72 20 61 6e 67 6c 65 20 66 6f 72 20 74 68 65 20 62 61 73 65 00 00 00 1b 20 20 66 69 6c 6c 5f er.angle.for.the.base......fill_
701e0 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 00 00 00 50 20 20 20 20 20 20 20 20 tri(px,.a->w,.a->h,....P........
70200 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 2d 73 5f 77 69 64 74 68 5f 61 6e 67 6c 65 29 2a 72 2a ...cx.+.cos(sa-s_width_angle)*r*
70220 30 2e 30 33 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 2d 73 5f 77 69 64 74 68 5f 61 6e 67 6c 65 29 0.03,.cy.+.sin(sa-s_width_angle)
70240 2a 72 2a 30 2e 30 33 2c 00 00 00 50 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 *r*0.03,...P...........cx.+.cos(
70260 73 61 2b 73 5f 77 69 64 74 68 5f 61 6e 67 6c 65 29 2a 72 2a 30 2e 30 33 2c 20 63 79 20 2b 20 73 sa+s_width_angle)*r*0.03,.cy.+.s
70280 69 6e 28 73 61 2b 73 5f 77 69 64 74 68 5f 61 6e 67 6c 65 29 2a 72 2a 30 2e 30 33 2c 00 00 00 3f in(sa+s_width_angle)*r*0.03,...?
702a0 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 29 2a 72 2a 30 2e 38 2c 20 63 ...........cx.+.cos(sa)*r*0.8,.c
702c0 79 20 2b 20 73 69 6e 28 73 61 29 2a 72 2a 30 2e 38 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 y.+.sin(sa)*r*0.8,.0xFFFF0000);.
702e0 00 00 00 00 00 00 0f 20 20 2f 2f 20 43 65 6e 74 65 72 20 48 75 62 00 00 00 17 20 20 69 6e 74 20 .........//.Center.Hub......int.
70300 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 1b 20 20 69 66 20 28 68 75 62 5f 72 hub_r.=.r.*.0.04;......if.(hub_r
70320 20 3c 20 34 29 20 68 75 62 5f 72 20 3d 20 34 3b 00 00 00 58 20 20 66 6f 72 20 28 69 6e 74 20 69 .<.4).hub_r.=.4;...X..for.(int.i
70340 72 20 3d 20 30 3b 20 69 72 20 3c 20 68 75 62 5f 72 20 2d 20 32 3b 20 69 72 2b 2b 29 20 63 69 72 r.=.0;.ir.<.hub_r.-.2;.ir++).cir
70360 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 cle(px,.a->w,.a->h,.cx,.cy,.ir,.
70380 30 78 46 46 46 46 46 46 46 46 29 3b 00 00 00 34 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 0xFFFFFFFF);...4..circle(px,.a->
703a0 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 68 75 62 5f 72 2c 20 30 78 46 46 30 30 30 30 w,.a->h,.cx,.cy,.hub_r,.0xFF0000
703c0 30 30 29 3b 00 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 00);.......)..wl_surface_attach(
703e0 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 a->ws,.a->buf,.0,.0);...4..wl_su
70400 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c rface_damage_buffer(a->ws,.0,.0,
70420 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f .a->w,.a->h);......wl_surface_co
70440 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 mmit(a->ws);......a->redraw.=.fa
70460 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f lse;....}.......Gstatic.void.xt_
70480 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 close(void.*d,.struct.xdg_toplev
704a0 65 6c 20 2a 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 60 73 74 61 74 el.*xt).{.running.=.0;.}...`stat
704c0 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 ic.void.xt_cfg(void.*d,.struct.x
704e0 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 dg_toplevel.*xt,.int32_t.w,.int3
70500 32 5f 74 20 68 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 2_t.h,.struct.wl_array.*s).{....
70520 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 ..struct.app.*a.=.d;...3..if.(w.
70540 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 >.0.&&.h.>.0.&&.(w.!=.a->w.||.h.
70560 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 17 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 20 61 2d 3e !=.a->h)).{........a->w.=.w;.a->
70580 68 20 3d 20 68 3b 00 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 h.=.h;........destroy_buf(a);...
705a0 15 20 20 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 .....a->redraw.=.true;......}...
705c0 01 7d 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 .}...Fstatic.void.xs_cfg(void.*d
705e0 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 ,.struct.xdg_surface.*xs,.uint32
70600 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 _t.serial).{......struct.app.*a.
70620 3d 20 64 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 =.d;...(..xdg_surface_ack_config
70640 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 ure(xs,.serial);......a->configu
70660 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 13 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 red.=.true;......a->redraw.=.tru
70680 65 3b 00 00 00 01 7d 00 00 00 60 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 e;....}...`static.void.reg_globa
706a0 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 l(void.*d,.struct.wl_registry.*r
706c0 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c 20 75 69 ,.uint32_t.id,.const.char.*i,.ui
706e0 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d nt32_t.v).{......struct.app.*a.=
70700 20 64 3b 00 00 00 62 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 .d;...b..if.(!strcmp(i,."wl_comp
70720 6f 73 69 74 6f 72 22 29 29 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f ositor")).a->comp.=.wl_registry_
70740 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 bind(r,.id,.&wl_compositor_inter
70760 66 61 63 65 2c 20 34 29 3b 00 00 00 58 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 face,.4);...X..else.if.(!strcmp(
70780 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 i,."wl_shm")).a->shm.=.wl_regist
707a0 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 ry_bind(r,.id,.&wl_shm_interface
707c0 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 ,.1);...'..else.if.(!strcmp(i,."
707e0 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 xdg_wm_base")).{...?....a->wm.=.
70800 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f wl_registry_bind(r,.id,.&xdg_wm_
70820 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 73 74 61 74 69 base_interface,.1);...C....stati
70840 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 c.const.struct.xdg_wm_base_liste
70860 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 20 ner.l.=.{.ping.=.wm_ping};...+..
70880 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d ..xdg_wm_base_add_listener(a->wm
708a0 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 ,.&l,.a);......}....}........int
708c0 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 2b 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 .main(void).{...+..struct.app.a.
708e0 3d 20 7b 30 7d 3b 20 61 2e 77 20 3d 20 34 30 30 3b 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 =.{0};.a.w.=.400;.a.h.=.400;....
70900 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 ..signal(SIGINT,.on_sig);...!..a
70920 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 .d.=.wl_display_connect(NULL);..
70940 00 15 20 20 69 66 20 28 21 61 2e 64 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 ....if.(!a.d).return.1;...'..a.r
70960 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 eg.=.wl_display_get_registry(a.d
70980 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 );...G..static.const.struct.wl_r
709a0 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d egistry_listener.rl.=.{.global.=
709c0 20 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 .reg_global};...+..wl_registry_a
709e0 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c dd_listener(a.reg,.&rl,.&a);....
70a00 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 2b ..wl_display_roundtrip(a.d);...+
70a20 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d ..if.(!a.comp.||.!a.shm.||.!a.wm
70a40 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f ).return.1;......a.ws.=.wl_compo
70a60 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 sitor_create_surface(a.comp);...
70a80 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 1..a.xs.=.xdg_wm_base_get_xdg_su
70aa0 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 rface(a.wm,.a.ws);...G..static.c
70ac0 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 onst.struct.xdg_surface_listener
70ae0 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 .xsl.=.{.configure.=.xs_cfg};...
70b00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 +..xdg_surface_add_listener(a.xs
70b20 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 ,.&xsl,.&a);...(..a.xt.=.xdg_sur
70b40 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 5b 20 20 73 74 face_get_toplevel(a.xs);...[..st
70b60 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c atic.const.struct.xdg_toplevel_l
70b80 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 istener.xtl.=.{.configure.=.xt_c
70ba0 66 67 2c 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 fg,..close.=.xt_close};...,..xdg
70bc0 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 _toplevel_add_listener(a.xt,.&xt
70be0 6c 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 l,.&a);...*..xdg_toplevel_set_ti
70c00 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 tle(a.xt,."wlclock");......wl_su
70c20 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 31 20 20 77 68 69 6c 65 20 28 rface_commit(a.ws);...1..while.(
70c40 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 !a.configured).wl_display_dispat
70c60 63 68 28 61 2e 64 29 3b 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 ch(a.d);......render(&a);...9..i
70c80 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f nt.tfd.=.timerfd_create(CLOCK_MO
70ca0 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 NOTONIC,.TFD_CLOEXEC);...F..time
70cc0 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 rfd_settime(tfd,.0,.&(struct.iti
70ce0 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b merspec){{1,.0},.{1,.0}},.NULL);
70d00 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 4f 20 20 20 20 77 ......while.(running).{...O....w
70d20 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e hile.(wl_display_prepare_read(a.
70d40 64 29 20 21 3d 20 30 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e d).!=.0).wl_display_dispatch_pen
70d60 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 ding(a.d);........wl_display_flu
70d80 73 68 28 61 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 sh(a.d);...M....struct.pollfd.fd
70da0 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c s[2].=.{{wl_display_get_fd(a.d),
70dc0 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 48 20 20 20 .POLLIN},.{tfd,.POLLIN}};...H...
70de0 20 69 66 20 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 20 77 6c 5f .if.(poll(fds,.2,.-1).<.0).{.wl_
70e00 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 20 63 6f 6e 74 69 6e display_cancel_read(a.d);.contin
70e20 75 65 3b 20 7d 00 00 00 5f 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 ue;.}..._....if.(fds[0].revents.
70e40 26 20 50 4f 4c 4c 49 4e 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 &.POLLIN).wl_display_read_events
70e60 28 61 2e 64 29 3b 20 65 6c 73 65 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 (a.d);.else.wl_display_cancel_re
70e80 61 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 ad(a.d);...%....wl_display_dispa
70ea0 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 20 20 20 69 66 20 28 66 64 73 tch_pending(a.d);..."....if.(fds
70ec0 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 37 20 20 20 20 20 [1].revents.&.POLLIN).{...7.....
70ee0 20 75 69 6e 74 36 34 5f 74 20 74 5f 65 78 70 3b 20 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 .uint64_t.t_exp;.read(tfd,.&t_ex
70f00 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 78 70 29 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 p,.sizeof(t_exp));..........a.re
70f20 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1d 20 20 20 20 69 66 20 draw.=.true;........}........if.
70f40 28 61 2e 72 65 64 72 61 77 29 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 (a.redraw).render(&a);......}...
70f60 3a 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b 20 :..close(tfd);.destroy_buf(&a);.
70f80 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 35 81 f5 18 00 wl_display_disconnect(a.d);5....
70fa0 00 00 00 36 00 00 00 0d 00 00 00 ba 00 00 00 1e 00 00 00 eb 00 00 00 01 00 00 00 60 04 00 00 00 ...6.......................`....
70fc0 00 00 00 ab 1b 00 00 00 00 00 00 ae 1d 00 00 00 00 00 00 35 81 5f d0 00 00 00 a5 00 00 00 a7 00 ...................5._..........
70fe0 00 00 00 00 00 00 00 00 00 00 a6 00 00 00 ed 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 ................................
71000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
710a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
710c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
710e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a9 b2 04 01 00 .........................i......
71160 00 00 00 00 f5 18 00 00 00 ed 00 00 00 ef 00 00 01 25 00 00 00 01 00 00 00 01 09 f5 18 00 00 00 .................%..............
71180 ed 00 00 00 ef 00 00 01 24 00 00 00 00 35 81 f5 18 00 00 00 00 ed 00 00 00 00 00 00 00 00 00 00 ........$....5..................
711a0 00 00 00 00 00 01 00 00 00 00 00 00 00 50 1b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 .............P..................
711c0 00 00 00 00 00 f5 18 00 00 00 00 ed 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 ................................
711e0 00 00 00 50 1b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 35 81 5f d0 00 ...P.......................5._..
71200 00 00 a6 00 00 00 a8 00 00 00 00 00 00 00 00 00 00 00 a7 00 00 00 01 00 00 00 05 00 00 00 00 ff ................................
71220 ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
712a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
712c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
712e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71380 00 69 9d a9 e0 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 25 00 00 .i...........................%..
713a0 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 ..#define._POSIX_C_SOURCE.200809
713c0 4c 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d L...&#include."xdg-shell-client-
713e0 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 protocol.h"....#include.<fcntl.h
71400 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 >....#include.<math.h>....#inclu
71420 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e de.<poll.h>....#include.<signal.
71440 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 h>....#include.<stdbool.h>....#i
71460 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 nclude.<stdint.h>....#include.<s
71480 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 tdio.h>....#include.<stdlib.h>..
714a0 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 ..#include.<string.h>....#includ
714c0 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f e.<sys/mman.h>....#include.<sys/
714e0 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 timerfd.h>....#include.<time.h>.
71500 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 ...#include.<unistd.h>....#inclu
71520 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 de.<wayland-client.h>........#if
71540 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 ndef.M_PI...##define.M_PI.3.1415
71560 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 9265358979323846....#endif....#i
71580 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 fndef.M_PI_2...%#define.M_PI_2.1
715a0 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 .57079632679489661923....#endif.
715c0 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 ......)static.volatile.sig_atomi
715e0 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 c_t.running.=.1;....static.void.
71600 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 on_sig(int.s).{......(void)s;...
71620 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 ...running.=.0;....}........stru
71640 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 ct.app.{......struct.wl_display.
71660 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 *d;......struct.wl_registry.*reg
71680 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d ;......struct.wl_compositor.*com
716a0 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 p;......struct.wl_shm.*shm;.....
716c0 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 .struct.xdg_wm_base.*wm;......st
716e0 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 ruct.wl_surface.*ws;......struct
71700 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 .xdg_surface.*xs;......struct.xd
71720 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c g_toplevel.*xt;......void.*pixel
71740 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 s;......struct.wl_buffer.*buf;..
71760 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 ....int.w,.h;......int.bw,.bh;..
71780 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 ....bool.configured;......bool.r
717a0 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 edraw;....};.......Jstatic.void.
717c0 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 wm_ping(void.*data,.struct.xdg_w
717e0 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 m_base.*wm,.uint32_t.serial).{..
71800 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 ....xdg_wm_base_pong(wm,.serial)
71820 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f ;....}.......$static.int.create_
71840 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d shm(size_t.size).{...#..char.t[]
71860 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 .=."/tmp/wlclock-XXXXXX";......i
71880 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 nt.fd.=.mkstemp(t);......if.(fd.
718a0 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b <.0)........exit(1);......unlink
718c0 28 74 29 3b 00 00 00 1e 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 (t);......if.(ftruncate(fd,.size
718e0 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 ).<.0)........exit(1);......retu
71900 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 rn.fd;....}.......(static.void.d
71920 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0e 20 estroy_buf(struct.app.*a).{.....
71940 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 2a .if.(!a->buf)........return;...*
71960 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 ..size_t.size.=.(size_t)a->bw.*.
71980 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f a->bh.*.4;......wl_buffer_destro
719a0 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 y(a->buf);......munmap(a->pixels
719c0 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 ,.size);......a->buf.=.NULL;....
719e0 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 ..a->pixels.=.NULL;....}.......&
71a00 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 static.void.alloc_buf(struct.app
71a20 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 28 20 .*a).{......destroy_buf(a);...(.
71a40 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d .size_t.size.=.(size_t)a->w.*.a-
71a60 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d >h.*.4;......int.fd.=.create_shm
71a80 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 (size);...J..a->pixels.=.mmap(NU
71aa0 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 LL,.size,.PROT_READ.|.PROT_WRITE
71ac0 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1e 20 20 69 66 20 28 61 ,.MAP_SHARED,.fd,.0);......if.(a
71ae0 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 00 00 00 0c 20 20 20 20 65 ->pixels.==.MAP_FAILED)........e
71b00 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 xit(1);...B..struct.wl_shm_pool.
71b20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 *pool.=.wl_shm_create_pool(a->sh
71b40 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 m,.fd,.size);...C..a->buf.=.wl_s
71b60 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 hm_pool_create_buffer(pool,.0,.a
71b80 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d 20 20 20 20 20 20 20 20 ->w,.a->h,.a->w.*.4,...=........
71ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f .............................WL_
71bc0 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 SHM_FORMAT_ARGB8888);......wl_sh
71be0 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 m_pool_destroy(pool);......close
71c00 28 66 64 29 3b 00 00 00 0f 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b 00 00 00 0f 20 20 61 2d (fd);......a->bw.=.a->w;......a-
71c20 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 45 73 74 61 74 69 63 20 76 >bh.=.a->h;....}.......Estatic.v
71c40 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 oid.circle(uint32_t.*px,.int.w,.
71c60 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 int.h,.int.cx,.int.cy,.int.r,...
71c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 ....................uint32_t.c).
71ca0 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d {..."..int.x.=.0,.y.=.r,.d.=.3.-
71cc0 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 .2.*.r;......while.(y.>=.x).{...
71ce0 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 H....int.p[8][2].=.{{cx.+.x,.cy.
71d00 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c +.y},.{cx.-.x,.cy.+.y},.{cx.+.x,
71d20 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .cy.-.y},...H...................
71d40 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 {cx.-.x,.cy.-.y},.{cx.+.y,.cy.+.
71d60 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 x},.{cx.-.y,.cy.+.x},...7.......
71d80 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 ............{cx.+.y,.cy.-.x},.{c
71da0 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 x.-.y,.cy.-.x}};........for.(int
71dc0 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 66 20 .i.=.0;.i.<.8;.i++)...E......if.
71de0 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 (p[i][0].>=.0.&&.p[i][0].<.w.&&.
71e00 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 p[i][1].>=.0.&&.p[i][1].<.h)...&
71e20 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d ........px[p[i][1].*.w.+.p[i][0]
71e40 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 ].=.c;........if.(d.>.0).{......
71e60 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 ....d.+=.4.*.(x.-.y).+.10;......
71e80 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 ....y--;........}.else..........
71ea0 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 d.+=.4.*.x.+.6;........x++;.....
71ec0 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f .}....}.......Pstatic.void.fill_
71ee0 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 tri(uint32_t.*px,.int.w,.int.h,.
71f00 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 int.x0,.int.y0,.int.x1,.int.y1,.
71f20 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 78 32 2c 20 ..2.....................int.x2,.
71f40 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 6e 74 20 6d int.y2,.uint32_t.c).{...B..int.m
71f60 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 79 30 20 3a in_y.=.y0.<.y1.?.(y0.<.y2.?.y0.:
71f80 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 42 20 .y2).:.(y1.<.y2.?.y1.:.y2);...B.
71fa0 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e 20 79 32 20 .int.max_y.=.y0.>.y1.?.(y0.>.y2.
71fc0 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 ?.y0.:.y2).:.(y1.>.y2.?.y1.:.y2)
71fe0 3b 00 00 00 10 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 00 00 00 0e 20 20 20 20 6d 69 6e ;......if.(min_y.<.0)........min
72000 5f 79 20 3d 20 30 3b 00 00 00 11 20 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 00 00 00 12 _y.=.0;......if.(max_y.>=.h)....
72020 20 20 20 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 ....max_y.=.h.-.1;...(..for.(int
72040 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 .y.=.min_y;.y.<=.max_y;.y++).{..
72060 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 ......int.x_start.=.w,.x_end.=.0
72080 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 ;...3....int.xs[3].=.{x0,.x1,.x2
720a0 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 17 20 20 20 20 },.ys[3].=.{y0,.y1,.y2};........
720c0 62 6f 6f 6c 20 66 6f 75 6e 64 20 3d 20 66 61 6c 73 65 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 bool.found.=.false;...!....for.(
720e0 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 int.i.=.0;.i.<.3;.i++).{........
72100 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 ..int.j.=.(i.+.1).%.3;...C......
72120 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c if.((ys[i].<=.y.&&.ys[j].>.y).||
72140 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 .(ys[j].<=.y.&&.ys[i].>.y)).{...
72160 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 H........int.x.=.xs[i].+.(y.-.ys
72180 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 [i]).*.(xs[j].-.xs[i])./.(ys[j].
721a0 2d 20 79 73 5b 69 5d 29 3b 00 00 00 18 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 -.ys[i]);............if.(x.<.x_s
721c0 74 61 72 74 29 00 00 00 16 20 20 20 20 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 tart)..............x_start.=.x;.
721e0 00 00 16 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 00 00 00 14 20 20 20 ...........if.(x.>.x_end).......
72200 20 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 15 20 20 20 20 20 20 20 20 66 6f 75 .......x_end.=.x;............fou
72220 6e 64 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 nd.=.true;..........}........}..
72240 00 10 20 20 20 20 69 66 20 28 66 6f 75 6e 64 29 20 7b 00 00 00 16 20 20 20 20 20 20 69 66 20 28 ......if.(found).{..........if.(
72260 78 5f 73 74 61 72 74 20 3c 20 30 29 00 00 00 14 20 20 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 x_start.<.0)............x_start.
72280 3d 20 30 3b 00 00 00 15 20 20 20 20 20 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 00 00 00 =.0;..........if.(x_end.>=.w)...
722a0 16 20 20 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 2c 20 20 20 20 20 .........x_end.=.w.-.1;...,.....
722c0 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e .for.(int.x.=.x_start;.x.<=.x_en
722e0 64 3b 20 78 2b 2b 29 00 00 00 1a 20 20 20 20 20 20 20 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d d;.x++)............px[y.*.w.+.x]
72300 20 3d 20 63 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 .=.c;........}......}....}......
72320 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 .#static.void.render(struct.app.
72340 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c *a).{.../..if.(!a->configured.||
72360 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 .a->w.<=.0.||.a->h.<=.0)........
72380 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 return;......if.(!a->buf).......
723a0 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 .alloc_buf(a);......uint32_t.*px
723c0 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 .=.a->pixels;...$..memset(px,.0x
723e0 46 46 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f FF,.a->w.*.a->h.*.4);......time_
72400 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 t.tt.=.time(NULL);......struct.t
72420 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d m.tmv;......localtime_r(&tt,.&tm
72440 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d v);...#..int.cx.=.a->w./.2,.cy.=
72460 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 .a->h./.2;.../..int.r.=.(a->w.<.
72480 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 a->h.?.a->w.:.a->h)./.2.-.10;...
724a0 0c 20 20 69 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 00 00 ...if.(r.<.5)........r.=.5;.....
724c0 00 00 0f 20 20 2f 2f 20 44 69 61 6c 20 54 69 63 6b 73 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 .....//.Dial.Ticks......for.(int
724e0 20 69 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f .i.=.0;.i.<.60;.i++).{........do
72500 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d uble.ang.=.i./.60.0.*.2.*.M_PI.-
72520 20 4d 5f 50 49 5f 32 3b 00 00 00 31 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 .M_PI_2;...1....int.len.=.(i.%.5
72540 20 3d 3d 20 30 29 20 3f 20 72 20 2a 20 30 2e 31 32 20 3a 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 .==.0).?.r.*.0.12.:.r.*.0.04;...
72560 30 20 20 20 20 64 6f 75 62 6c 65 20 74 5f 61 6e 67 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 0....double.t_ang.=.(i.%.5.==.0)
72580 20 3f 20 30 2e 30 31 32 20 3a 20 30 2e 30 30 35 3b 00 00 00 37 20 20 20 20 66 69 6c 6c 5f 74 72 .?.0.012.:.0.005;...7....fill_tr
725a0 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 20 2d i(px,.a->w,.a->h,.cx.+.cos(ang.-
725c0 20 74 5f 61 6e 67 29 20 2a 20 72 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 .t_ang).*.r,...B.............cy.
725e0 2b 20 73 69 6e 28 61 6e 67 20 2d 20 74 5f 61 6e 67 29 20 2a 20 72 2c 20 63 78 20 2b 20 63 6f 73 +.sin(ang.-.t_ang).*.r,.cx.+.cos
72600 28 61 6e 67 20 2b 20 74 5f 61 6e 67 29 20 2a 20 72 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 (ang.+.t_ang).*.r,...B..........
72620 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2b 20 74 5f 61 6e 67 29 20 2a 20 72 2c 20 63 78 ...cy.+.sin(ang.+.t_ang).*.r,.cx
72640 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 00 00 00 34 20 20 20 20 .+.cos(ang).*.(r.-.len),...4....
72660 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 .........cy.+.sin(ang).*.(r.-.le
72680 6e 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 34 20 n),.0xFF000000);......}.......4.
726a0 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a .double.sa.=.tmv.tm_sec./.60.0.*
726c0 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 6c 65 20 .2.*.M_PI.-.M_PI_2;...J..double.
726e0 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 ma.=.(tmv.tm_min.+.tmv.tm_sec./.
72700 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 60.0)./.60.0.*.2.*.M_PI.-.M_PI_2
72720 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 4c 20 20 20 20 20 20 28 28 74 6d ;......double.ha.=...L......((tm
72740 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 v.tm_hour.%.12).+.(tmv.tm_min./.
72760 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 60.0))./.12.0.*.2.*.M_PI.-.M_PI_
72780 32 3b 00 00 00 00 00 00 00 0e 20 20 2f 2f 20 48 6f 75 72 20 48 61 6e 64 00 00 00 3a 20 20 66 69 2;..........//.Hour.Hand...:..fi
727a0 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 ll_tri(px,.a->w,.a->h,.cx.+.cos(
727c0 68 61 20 2d 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 30 2e 30 35 2c 00 00 00 4a 20 20 20 20 20 20 ha.-.0.12).*.r.*.0.05,...J......
727e0 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2d 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 30 .....cy.+.sin(ha.-.0.12).*.r.*.0
72800 2e 30 35 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2b 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 30 .05,.cx.+.cos(ha.+.0.12).*.r.*.0
72820 2e 30 35 2c 00 00 00 43 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2b .05,...C...........cy.+.sin(ha.+
72840 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 30 2e 30 35 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 .0.12).*.r.*.0.05,.cx.+.cos(ha).
72860 2a 20 72 20 2a 20 30 2e 35 35 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 *.r.*.0.55,...0...........cy.+.s
72880 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 in(ha).*.r.*.0.55,.0xFF000000);.
728a0 00 00 10 20 20 2f 2f 20 4d 69 6e 75 74 65 20 48 61 6e 64 00 00 00 3b 20 20 66 69 6c 6c 5f 74 72 .....//.Minute.Hand...;..fill_tr
728c0 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2d 20 i(px,.a->w,.a->h,.cx.+.cos(ma.-.
728e0 30 2e 30 38 29 20 2a 20 72 20 2a 20 30 2e 30 33 35 2c 00 00 00 4c 20 20 20 20 20 20 20 20 20 20 0.08).*.r.*.0.035,...L..........
72900 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2d 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 30 2e 30 33 35 .cy.+.sin(ma.-.0.08).*.r.*.0.035
72920 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2b 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 30 2e 30 33 ,.cx.+.cos(ma.+.0.08).*.r.*.0.03
72940 35 2c 00 00 00 43 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2b 20 30 5,...C...........cy.+.sin(ma.+.0
72960 2e 30 38 29 20 2a 20 72 20 2a 20 30 2e 30 33 35 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 20 2a .08).*.r.*.0.035,.cx.+.cos(ma).*
72980 20 72 20 2a 20 30 2e 38 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e .r.*.0.8,.../...........cy.+.sin
729a0 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 38 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 00 (ma).*.r.*.0.8,.0xFF000000);....
729c0 00 00 00 3b 20 20 2f 2f 20 52 65 64 20 53 65 63 6f 6e 64 20 48 61 6e 64 20 2d 20 54 68 69 63 6b ...;..//.Red.Second.Hand.-.Thick
729e0 65 6e 65 64 20 61 6e 64 20 66 6f 72 63 65 64 20 74 6f 20 73 74 61 79 20 76 69 73 69 62 6c 65 00 ened.and.forced.to.stay.visible.
72a00 00 00 3a 20 20 64 6f 75 62 6c 65 20 73 5f 77 69 64 74 68 5f 61 6e 67 6c 65 20 3d 20 30 2e 30 36 ..:..double.s_width_angle.=.0.06
72a20 3b 20 2f 2f 20 57 69 64 65 72 20 61 6e 67 6c 65 20 66 6f 72 20 74 68 65 20 62 61 73 65 00 00 00 ;.//.Wider.angle.for.the.base...
72a40 43 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b C..fill_tri(px,.a->w,.a->h,.cx.+
72a60 20 63 6f 73 28 73 61 20 2d 20 73 5f 77 69 64 74 68 5f 61 6e 67 6c 65 29 20 2a 20 72 20 2a 20 30 .cos(sa.-.s_width_angle).*.r.*.0
72a80 2e 30 33 2c 00 00 00 33 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 73 61 20 2d .03,...3...........cy.+.sin(sa.-
72aa0 20 73 5f 77 69 64 74 68 5f 61 6e 67 6c 65 29 20 2a 20 72 20 2a 20 30 2e 30 33 2c 00 00 00 33 20 .s_width_angle).*.r.*.0.03,...3.
72ac0 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 20 2b 20 73 5f 77 69 64 74 68 5f ..........cx.+.cos(sa.+.s_width_
72ae0 61 6e 67 6c 65 29 20 2a 20 72 20 2a 20 30 2e 30 33 2c 00 00 00 4b 20 20 20 20 20 20 20 20 20 20 angle).*.r.*.0.03,...K..........
72b00 20 63 79 20 2b 20 73 69 6e 28 73 61 20 2b 20 73 5f 77 69 64 74 68 5f 61 6e 67 6c 65 29 20 2a 20 .cy.+.sin(sa.+.s_width_angle).*.
72b20 72 20 2a 20 30 2e 30 33 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 38 r.*.0.03,.cx.+.cos(sa).*.r.*.0.8
72b40 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 73 61 29 20 2a 20 72 ,.../...........cy.+.sin(sa).*.r
72b60 20 2a 20 30 2e 38 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 00 00 00 00 0f 20 20 2f 2f .*.0.8,.0xFFFF0000);..........//
72b80 20 43 65 6e 74 65 72 20 48 75 62 00 00 00 17 20 20 69 6e 74 20 68 75 62 5f 72 20 3d 20 72 20 2a .Center.Hub......int.hub_r.=.r.*
72ba0 20 30 2e 30 34 3b 00 00 00 10 20 20 69 66 20 28 68 75 62 5f 72 20 3c 20 34 29 00 00 00 0e 20 20 .0.04;......if.(hub_r.<.4)......
72bc0 20 20 68 75 62 5f 72 20 3d 20 34 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 ..hub_r.=.4;...(..for.(int.ir.=.
72be0 30 3b 20 69 72 20 3c 20 68 75 62 5f 72 20 2d 20 32 3b 20 69 72 2b 2b 29 00 00 00 33 20 20 20 20 0;.ir.<.hub_r.-.2;.ir++)...3....
72c00 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 circle(px,.a->w,.a->h,.cx,.cy,.i
72c20 72 2c 20 30 78 46 46 46 46 46 46 46 46 29 3b 00 00 00 34 20 20 63 69 72 63 6c 65 28 70 78 2c 20 r,.0xFFFFFFFF);...4..circle(px,.
72c40 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 68 75 62 5f 72 2c 20 30 78 46 46 30 a->w,.a->h,.cx,.cy,.hub_r,.0xFF0
72c60 30 30 30 30 30 29 3b 00 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 00000);.......)..wl_surface_atta
72c80 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c ch(a->ws,.a->buf,.0,.0);...4..wl
72ca0 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c _surface_damage_buffer(a->ws,.0,
72cc0 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 .0,.a->w,.a->h);......wl_surface
72ce0 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d _commit(a->ws);......a->redraw.=
72d00 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 .false;....}.......Gstatic.void.
72d20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 xt_close(void.*d,.struct.xdg_top
72d40 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 4a 73 level.*xt).{.running.=.0;.}...Js
72d60 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 tatic.void.xt_cfg(void.*d,.struc
72d80 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 t.xdg_toplevel.*xt,.int32_t.w,.i
72da0 6e 74 33 32 5f 74 20 68 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt32_t.h,...(...................
72dc0 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 struct.wl_array.*s).{......struc
72de0 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 t.app.*a.=.d;...3..if.(w.>.0.&&.
72e00 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 h.>.0.&&.(w.!=.a->w.||.h.!=.a->h
72e20 29 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e )).{........a->w.=.w;........a->
72e40 68 20 3d 20 68 3b 00 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 h.=.h;........destroy_buf(a);...
72e60 15 20 20 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 .....a->redraw.=.true;......}...
72e80 01 7d 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 .}...Fstatic.void.xs_cfg(void.*d
72ea0 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 ,.struct.xdg_surface.*xs,.uint32
72ec0 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 _t.serial).{......struct.app.*a.
72ee0 3d 20 64 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 =.d;...(..xdg_surface_ack_config
72f00 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 ure(xs,.serial);......a->configu
72f20 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 13 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 red.=.true;......a->redraw.=.tru
72f40 65 3b 00 00 00 01 7d 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 e;....}...Cstatic.void.reg_globa
72f60 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 l(void.*d,.struct.wl_registry.*r
72f80 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.uint32_t.id,...3..............
72fa0 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c 20 75 69 6e 74 33 32 5f 74 .........const.char.*i,.uint32_t
72fc0 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 .v).{......struct.app.*a.=.d;...
72fe0 22 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 "..if.(!strcmp(i,."wl_compositor
73000 22 29 29 00 00 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 "))...C....a->comp.=.wl_registry
73020 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 _bind(r,.id,.&wl_compositor_inte
73040 72 66 61 63 65 2c 20 34 29 3b 00 00 00 20 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 rface,.4);......else.if.(!strcmp
73060 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 (i,."wl_shm"))...;....a->shm.=.w
73080 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 l_registry_bind(r,.id,.&wl_shm_i
730a0 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 nterface,.1);...'..else.if.(!str
730c0 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 cmp(i,."xdg_wm_base")).{...?....
730e0 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 a->wm.=.wl_registry_bind(r,.id,.
73100 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 &xdg_wm_base_interface,.1);...C.
73120 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 ...static.const.struct.xdg_wm_ba
73140 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 se_listener.l.=.{.ping.=.wm_ping
73160 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e };...+....xdg_wm_base_add_listen
73180 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 er(a->wm,.&l,.a);......}....}...
731a0 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 03 09 3a 25 00 00 00 15 .....int.main(void).{.....:%....
731c0 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d ..struct.app.a.=.{0};......a.w.=
731e0 20 34 30 30 3b 00 00 00 0c 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 .400;......a.h.=.400;......signa
73200 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c l(SIGINT,.on_sig);...!..a.d.=.wl
73220 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 0b 20 20 69 66 20 _display_connect(NULL);......if.
73240 28 21 61 2e 64 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 (!a.d)........return.1;...'..a.r
73260 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 eg.=.wl_display_get_registry(a.d
73280 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 );...G..static.const.struct.wl_r
732a0 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d egistry_listener.rl.=.{.global.=
732c0 20 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 .reg_global};...+..wl_registry_a
732e0 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c dd_listener(a.reg,.&rl,.&a);....
73300 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 21 ..wl_display_roundtrip(a.d);...!
73320 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d ..if.(!a.comp.||.!a.shm.||.!a.wm
73340 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 )........return.1;......a.ws.=.w
73360 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f l_compositor_create_surface(a.co
73380 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 mp);...1..a.xs.=.xdg_wm_base_get
733a0 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 _xdg_surface(a.wm,.a.ws);...G..s
733c0 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c tatic.const.struct.xdg_surface_l
733e0 69 73 74 65 6e 65 72 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 istener.xsl.=.{.configure.=.xs_c
73400 66 67 7d 3b 00 00 00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e fg};...+..xdg_surface_add_listen
73420 65 72 28 61 2e 78 73 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 er(a.xs,.&xsl,.&a);...(..a.xt.=.
73440 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 xdg_surface_get_toplevel(a.xs);.
73460 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 ..G..static.const.struct.xdg_top
73480 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 level_listener.xtl.=.{.configure
734a0 20 3d 20 78 74 5f 63 66 67 2c 00 00 00 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .=.xt_cfg,...F..................
734c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
734e0 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f ..close.=.xt_close};...,..xdg_to
73500 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 plevel_add_listener(a.xt,.&xtl,.
73520 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 &a);...*..xdg_toplevel_set_title
73540 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 (a.xt,."wlclock");......wl_surfa
73560 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 17 20 20 77 68 69 6c 65 20 28 21 61 2e ce_commit(a.ws);......while.(!a.
73580 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 1d 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 configured)........wl_display_di
735a0 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 spatch(a.d);......render(&a);...
735c0 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 9..int.tfd.=.timerfd_create(CLOC
735e0 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 K_MONOTONIC,.TFD_CLOEXEC);...F..
73600 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 timerfd_settime(tfd,.0,.&(struct
73620 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 .itimerspec){{1,.0},.{1,.0}},.NU
73640 4c 4c 29 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 LL);......while.(running).{...-.
73660 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 ...while.(wl_display_prepare_rea
73680 64 28 61 2e 64 29 20 21 3d 20 30 29 00 00 00 27 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 d(a.d).!=.0)...'......wl_display
736a0 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 _dispatch_pending(a.d);........w
736c0 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 l_display_flush(a.d);...M....str
736e0 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 uct.pollfd.fds[2].=.{{wl_display
73700 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c _get_fd(a.d),.POLLIN},.{tfd,.POL
73720 4c 49 4e 7d 7d 3b 00 00 00 1f 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d LIN}};........if.(poll(fds,.2,.-
73740 31 29 20 3c 20 30 29 20 7b 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 1).<.0).{..."......wl_display_ca
73760 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 0f 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 ncel_read(a.d);..........continu
73780 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 20 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 e;........}........if.(fds[0].re
737a0 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 vents.&.POLLIN)..."......wl_disp
737c0 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 00 00 00 08 20 20 20 20 65 6c 73 lay_read_events(a.d);........els
737e0 65 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 e..."......wl_display_cancel_rea
73800 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 d(a.d);...%....wl_display_dispat
73820 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b ch_pending(a.d);..."....if.(fds[
73840 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 1].revents.&.POLLIN).{..........
73860 75 69 6e 74 36 34 5f 74 20 74 5f 65 78 70 3b 00 00 00 27 20 20 20 20 20 20 72 65 61 64 28 74 66 uint64_t.t_exp;...'......read(tf
73880 64 2c 20 26 74 5f 65 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 78 70 29 29 3b 00 00 00 16 20 20 d,.&t_exp,.sizeof(t_exp));......
738a0 20 20 20 20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 ....a.redraw.=.true;........}...
738c0 11 20 20 20 20 69 66 20 28 61 2e 72 65 64 72 61 77 29 00 00 00 11 20 20 20 20 20 20 72 65 6e 64 .....if.(a.redraw)..........rend
738e0 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 0d 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 er(&a);......}......close(tfd);.
73900 00 00 12 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 .....destroy_buf(&a);......wl_di
73920 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 splay_disconnect(a.d);......retu
73940 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 25 01 00 00 00 00 rn.0;....}5...............%.....
73960 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3d 22 00 00 00 00 00 00 01 00 00 00 00 00 ..................="............
73980 00 00 35 81 5f d0 00 00 00 a7 00 00 00 a9 00 00 00 00 00 00 00 00 00 00 00 a8 00 00 00 01 00 00 ..5._...........................
739a0 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
739c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
739e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73b00 00 00 00 00 00 00 00 00 69 9d a9 e1 04 01 00 00 00 00 00 f5 18 00 00 00 a4 00 00 00 00 00 00 00 ........i.......................
73b20 00 00 00 00 01 00 00 00 33 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 20 61 2d 3e 68 20 3d 20 68 3b ........3....a->w.=.w;.a->h.=.h;
73b40 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 20 61 2d 3e 72 65 64 72 61 77 20 3d f5 18 00 00 .destroy_buf(a);.a->redraw.=....
73b60 00 a5 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 97 00 00 00 00 00 00 00 00 00 00 00 01 ................................
73b80 00 00 00 47 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 72 20 3c 20 68 75 62 5f ...G..for.(int.ir.=.0;.ir.<.hub_
73ba0 72 20 2d 20 32 3b 20 69 72 2b 2b 29 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d r.-.2;.ir++).circle(px,.a->w,.a-
73bc0 3e 68 2c 20 63 78 2c 20 63 79 2c f5 18 00 00 00 98 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 >h,.cx,.cy,.....................
73be0 00 00 8f 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04 20 20 20 20 f5 18 00 00 00 90 00 00 00 ................................
73c00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 8b 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 28 20 ..............................(.
73c20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 .fill_tri(px,.a->w,.a->h,.cx.+.c
73c40 6f 73 28 68 61 2d 30 f5 18 00 00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 81 00 os(ha-0.........................
73c60 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 00 82 00 00 00 00 00 00 00 00 00 ................................
73c80 00 00 00 f5 18 00 00 00 6d 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 39 20 20 20 20 20 20 66 ........m...............9......f
73ca0 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b or.(int.x.=.x_start;.x.<=.x_end;
73cc0 20 78 2b 2b 29 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 f5 18 00 00 00 6e 00 00 00 00 00 00 00 00 .x++).px[y.*.w.+.x.....n........
73ce0 00 00 00 00 f5 18 00 00 00 61 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 20 f5 18 00 00 00 .........a......................
73d00 62 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 54 00 00 00 00 00 00 00 00 00 00 00 01 00 b.................T.............
73d20 00 00 3b 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 ..;......if.(p[i][0].>=.0.&&.p[i
73d40 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b f5 18 ][0].<.w.&&.p[i][1].>=.0.&&.p[..
73d60 00 00 00 55 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 47 00 00 00 00 00 00 00 00 00 00 ...U.................G..........
73d80 00 01 00 00 00 57 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 .....W..a->buf.=.wl_shm_pool_cre
73da0 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 ate_buffer(pool,.0,.a->w,.a->h,.
73dc0 61 2d 3e 77 20 2a 20 34 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 f5 18 00 a->w.*.4,.WL_SHM_FORMAT_ARGB8...
73de0 00 00 48 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 2e 00 00 00 00 00 00 00 00 00 00 00 ..H.............................
73e00 01 00 00 00 13 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 f5 18 00 00 00 2f 00 00 .....static.int.create_s...../..
73e20 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ................................
73e40 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 ..................5.............
73e60 00 00 00 00 00 00 00 00 00 00 2e 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73e80 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 2e 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 ................................
73ea0 19 00 00 00 57 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 ....W...........................
73ec0 f5 18 00 00 00 00 47 00 00 00 57 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 3b 00 00 00 00 07 ......G...W...............;.....
73ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 54 00 00 00 ............................T...
73f00 3b 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 01 00 00 00 00 09 00 00 00 00 00 00 00 00 00 00 ;...............................
73f20 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 61 00 00 00 01 00 00 00 00 00 00 00 00 00 ..................a.............
73f40 00 00 0c 00 00 00 39 00 00 00 00 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 ......9.........................
73f60 00 00 f5 18 00 00 00 00 6d 00 00 00 39 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 02 00 00 00 ........m...9...................
73f80 00 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 81 00 ................................
73fa0 00 00 02 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 28 00 00 00 00 0f 00 00 00 00 00 00 00 00 ..................(.............
73fc0 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 8b 00 00 00 28 00 00 00 00 00 00 00 ........................(.......
73fe0 00 00 00 00 04 00 00 00 04 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ................................
74000 00 00 00 00 f5 18 00 00 00 00 8f 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 47 00 ..............................G.
74020 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 ................................
74040 97 00 00 00 47 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 33 00 00 00 00 14 00 00 00 00 00 00 ....G...............3...........
74060 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 a4 00 00 00 33 00 00 00 00 00 ..........................3.....
74080 00 00 00 00 00 00 3d 00 00 00 01 00 00 00 00 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3b 0a ......=.......................;.
740a0 00 00 00 00 00 00 35 81 5f d0 00 00 00 a8 00 00 00 aa 00 00 00 00 00 00 00 00 00 00 00 a9 00 00 ......5._.......................
740c0 00 e2 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
740e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
74100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
74120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
74140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
74160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
74180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
741a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
741c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
741e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
74200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
74220 00 00 00 00 00 00 00 00 00 00 00 00 69 9d a9 e1 04 01 00 00 00 38 00 f5 18 00 00 00 19 00 00 01 ............i........8..........
74240 23 00 00 00 e2 00 00 00 c7 00 00 00 33 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 #...........3static.void.on_sig(
74260 69 6e 74 20 73 29 20 7b 20 28 76 6f 69 64 29 73 3b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d int.s).{.(void)s;.running.=.0;.}
74280 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 ........struct.app.{......struct
742a0 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 .wl_display.*d;......struct.wl_r
742c0 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d egistry.*reg;......struct.wl_com
742e0 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 positor.*comp;......struct.wl_sh
74300 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 m.*shm;......struct.xdg_wm_base.
74320 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b *wm;......struct.wl_surface.*ws;
74340 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 ......struct.xdg_surface.*xs;...
74360 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 ...struct.xdg_toplevel.*xt;.....
74380 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 .void.*pixels;......struct.wl_bu
743a0 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 20 69 ffer.*buf;......int.w,.h;......i
743c0 6e 74 20 62 77 2c 20 62 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b nt.bw,.bh;......bool.configured;
743e0 00 00 00 0e 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 6a ......bool.redraw;....};.......j
74400 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 static.void.wm_ping(void.*data,.
74420 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 struct.xdg_wm_base.*wm,.uint32_t
74440 20 73 65 72 69 61 6c 29 20 7b 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 .serial).{.xdg_wm_base_pong(wm,.
74460 73 65 72 69 61 6c 29 3b 20 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 serial);.}.......$static.int.cre
74480 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 20 63 68 61 72 ate_shm(size_t.size).{...#..char
744a0 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 .t[].=."/tmp/wlclock-XXXXXX";...
744c0 16 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 16 20 20 69 66 20 ...int.fd.=.mkstemp(t);......if.
744e0 28 66 64 20 3c 20 30 29 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 (fd.<.0).exit(1);......unlink(t)
74500 3b 00 00 00 27 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c ;...'..if.(ftruncate(fd,.size).<
74520 20 30 29 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 .0).exit(1);......return.fd;....
74540 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 }.......(static.void.destroy_buf
74560 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 16 20 20 69 66 20 28 21 61 2d 3e 62 (struct.app.*a).{......if.(!a->b
74580 75 66 29 20 72 65 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 uf).return;...*..size_t.size.=.(
745a0 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 size_t)a->bw.*.a->bh.*.4;......w
745c0 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d l_buffer_destroy(a->buf);......m
745e0 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d 3e unmap(a->pixels,.size);......a->
74600 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c buf.=.NULL;......a->pixels.=.NUL
74620 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 L;....}.......&static.void.alloc
74640 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 _buf(struct.app.*a).{......destr
74660 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 oy_buf(a);...(..size_t.size.=.(s
74680 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 ize_t)a->w.*.a->h.*.4;......int.
746a0 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 fd.=.create_shm(size);...J..a->p
746c0 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 ixels.=.mmap(NULL,.size,.PROT_RE
746e0 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c AD.|.PROT_WRITE,.MAP_SHARED,.fd,
74700 20 30 29 3b 00 00 00 27 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 .0);...'..if.(a->pixels.==.MAP_F
74720 41 49 4c 45 44 29 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 AILED).exit(1);...B..struct.wl_s
74740 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f hm_pool.*pool.=.wl_shm_create_po
74760 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 5c 20 20 61 2d 3e 62 75 ol(a->shm,.fd,.size);...\..a->bu
74780 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f f.=.wl_shm_pool_create_buffer(po
747a0 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 20 57 4c 5f ol,.0,.a->w,.a->h,.a->w.*.4,.WL_
747c0 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 SHM_FORMAT_ARGB8888);......wl_sh
747e0 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 m_pool_destroy(pool);......close
74800 28 66 64 29 3b 00 00 00 1d 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b 20 61 2d 3e 62 68 20 3d (fd);......a->bw.=.a->w;.a->bh.=
74820 20 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 53 73 74 61 74 69 63 20 76 6f 69 64 20 63 .a->h;....}.......Sstatic.void.c
74840 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 ircle(uint32_t.*px,.int.w,.int.h
74860 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f ,.int.cx,.int.cy,.int.r,.uint32_
74880 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 t.c).{..."..int.x.=.0,.y.=.r,.d.
748a0 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 =.3.-.2.*.r;......while.(y.>=.x)
748c0 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 .{...H....int.p[8][2].=.{{cx.+.x
748e0 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 ,.cy.+.y},.{cx.-.x,.cy.+.y},.{cx
74900 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .+.x,.cy.-.y},...H..............
74920 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 .....{cx.-.x,.cy.-.y},.{cx.+.y,.
74940 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 cy.+.x},.{cx.-.y,.cy.+.x},...7..
74960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 .................{cx.+.y,.cy.-.x
74980 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 },.{cx.-.y,.cy.-.x}};........for
749a0 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 .(int.i.=.0;.i.<.8;.i++)...E....
749c0 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 ..if.(p[i][0].>=.0.&&.p[i][0].<.
749e0 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 w.&&.p[i][1].>=.0.&&.p[i][1].<.h
74a00 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b )...&........px[p[i][1].*.w.+.p[
74a20 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 43 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 20 i][0]].=.c;...C....if.(d.>.0).{.
74a40 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 20 79 2d 2d 3b 20 7d 20 65 6c d.+=.4.*.(x.-.y).+.10;.y--;.}.el
74a60 73 65 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 se.d.+=.4.*.x.+.6;........x++;..
74a80 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 6e 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 ....}....}.......nstatic.void.fi
74aa0 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 ll_tri(uint32_t.*px,.int.w,.int.
74ac0 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 h,.int.x0,.int.y0,.int.x1,.int.y
74ae0 31 2c 20 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 1,.int.x2,.int.y2,.uint32_t.c).{
74b00 00 00 00 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 ...B..int.min_y.=.y0.<.y1.?.(y0.
74b20 3c 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 <.y2.?.y0.:.y2).:.(y1.<.y2.?.y1.
74b40 3a 20 79 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 :.y2);...B..int.max_y.=.y0.>.y1.
74b60 3f 20 28 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 ?.(y0.>.y2.?.y0.:.y2).:.(y1.>.y2
74b80 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 3a 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 .?.y1.:.y2);...:..if.(min_y.<.0)
74ba0 20 6d 69 6e 5f 79 20 3d 20 30 3b 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 20 6d 61 78 5f .min_y.=.0;.if.(max_y.>=.h).max_
74bc0 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 6e y.=.h.-.1;...(..for.(int.y.=.min
74be0 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 6e _y;.y.<=.max_y;.y++).{........in
74c00 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 20 t.x_start.=.w,.x_end.=.0;...3...
74c20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 5d .int.xs[3].=.{x0,.x1,.x2},.ys[3]
74c40 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 15 20 20 20 20 62 6f 6f 6c 20 68 69 74 .=.{y0,.y1,.y2};........bool.hit
74c60 20 3d 20 66 61 6c 73 65 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b .=.false;...!....for.(int.i.=.0;
74c80 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d 20 .i.<.3;.i++).{..........int.j.=.
74ca0 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 5d (i.+.1).%.3;...C......if.((ys[i]
74cc0 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c 3d .<=.y.&&.ys[j].>.y).||.(ys[j].<=
74ce0 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 48 20 20 20 20 20 20 20 20 69 .y.&&.ys[i].>.y)).{...H........i
74d00 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 73 nt.x.=.xs[i].+.(y.-.ys[i]).*.(xs
74d20 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b 00 [j].-.xs[i])./.(ys[j].-.ys[i]);.
74d40 00 00 3f 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 74 61 72 74 29 20 78 5f 73 74 ..?........if.(x.<.x_start).x_st
74d60 61 72 74 20 3d 20 78 3b 20 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 20 78 5f 65 6e 64 20 3d 20 art.=.x;.if.(x.>.x_end).x_end.=.
74d80 78 3b 00 00 00 13 20 20 20 20 20 20 20 20 68 69 74 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 20 x;............hit.=.true;.......
74da0 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 0e 20 20 20 20 69 66 20 28 68 69 74 29 20 7b 00 ...}........}........if.(hit).{.
74dc0 00 00 42 20 20 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 74 20 3c 20 30 29 20 78 5f 73 74 61 72 ..B......if.(x_start.<.0).x_star
74de0 74 20 3d 20 30 3b 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 20 78 5f 65 6e 64 20 3d 20 77 t.=.0;.if.(x_end.>=.w).x_end.=.w
74e00 20 2d 20 31 3b 00 00 00 3f 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 .-.1;...?......for.(int.x.=.x_st
74e20 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b 29 20 70 78 5b 79 20 2a 20 77 20 2b art;.x.<=.x_end;.x++).px[y.*.w.+
74e40 20 78 5d 20 3d 20 63 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 .x].=.c;........}......}....}...
74e60 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 ....#static.void.render(struct.a
74e80 70 70 20 2a 61 29 20 7b 00 00 00 37 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 pp.*a).{...7..if.(!a->configured
74ea0 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 20 72 65 74 75 .||.a->w.<=.0.||.a->h.<=.0).retu
74ec0 72 6e 3b 00 00 00 1c 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 20 61 6c 6c 6f 63 5f 62 75 66 28 rn;......if.(!a->buf).alloc_buf(
74ee0 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c a);......uint32_t.*px.=.a->pixel
74f00 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 s;...$..memset(px,.0xFF,.a->w.*.
74f20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 a->h.*.4);......time_t.tt.=.time
74f40 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 (NULL);......struct.tm.tmv;.....
74f60 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e .localtime_r(&tt,.&tmv);...#..in
74f80 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 t.cx.=.a->w./.2,.cy.=.a->h./.2;.
74fa0 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 ../..int.r.=.(a->w.<.a->h.?.a->w
74fc0 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 13 20 20 69 66 20 28 72 20 3c 20 .:.a->h)./.2.-.10;......if.(r.<.
74fe0 35 29 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 5).r.=.5;..........for.(int.i.=.
75000 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 0;.i.<.60;.i++).{........double.
75020 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 ang.=.i./.60.0.*.2.*.M_PI.-.M_PI
75040 5f 32 3b 00 00 00 31 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 _2;...1....int.len.=.(i.%.5.==.0
75060 29 20 3f 20 72 20 2a 20 30 2e 31 32 20 3a 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 ).?.r.*.0.12.:.r.*.0.04;...0....
75080 64 6f 75 62 6c 65 20 74 5f 61 6e 67 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e double.t_ang.=.(i.%.5.==.0).?.0.
750a0 30 31 32 20 3a 20 30 2e 30 30 35 3b 00 00 00 4a 20 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 012.:.0.005;...J....fill_tri(px,
750c0 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 2d 74 5f 61 6e 67 29 .a->w,.a->h,.cx.+.cos(ang-t_ang)
750e0 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 2d 74 5f 61 6e 67 29 2a 72 2c 00 00 00 3a 20 20 *r,.cy.+.sin(ang-t_ang)*r,...:..
75100 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 2b 74 5f 61 6e 67 29 2a 72 ...........cx.+.cos(ang+t_ang)*r
75120 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 2b 74 5f 61 6e 67 29 2a 72 2c 00 00 00 47 20 20 20 20 ,.cy.+.sin(ang+t_ang)*r,...G....
75140 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 2a 28 72 2d 6c 65 6e 29 2c 20 .........cx.+.cos(ang)*(r-len),.
75160 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 2a 28 72 2d 6c 65 6e 29 2c 20 30 78 46 46 30 30 30 30 30 cy.+.sin(ang)*(r-len),.0xFF00000
75180 30 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 0);......}.......4..double.sa.=.
751a0 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d tmv.tm_sec./.60.0.*.2.*.M_PI.-.M
751c0 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f _PI_2;...J..double.ma.=.(tmv.tm_
751e0 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 min.+.tmv.tm_sec./.60.0)./.60.0.
75200 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 54 20 20 64 6f 75 62 6c 65 *.2.*.M_PI.-.M_PI_2;...T..double
75220 20 68 61 20 3d 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 .ha.=.((tmv.tm_hour.%.12).+.(tmv
75240 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f .tm_min./.60.0))./.12.0.*.2.*.M_
75260 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 4f 20 20 66 69 6c 6c 5f 74 72 69 28 70 PI.-.M_PI_2;.......O..fill_tri(p
75280 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 2d 30 2e 31 32 29 x,.a->w,.a->h,.cx.+.cos(ha-0.12)
752a0 2a 72 2a 30 2e 30 35 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 2d 30 2e 31 32 29 2a 72 2a 30 2e 30 *r*0.05,.cy.+.sin(ha-0.12)*r*0.0
752c0 35 2c 20 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 2b 30 2e 5,....?...........cx.+.cos(ha+0.
752e0 31 32 29 2a 72 2a 30 2e 30 35 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 2b 30 2e 31 32 29 2a 72 2a 12)*r*0.05,.cy.+.sin(ha+0.12)*r*
75300 30 2e 30 35 2c 20 00 00 00 41 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 0.05,....A...........cx.+.cos(ha
75320 29 2a 72 2a 30 2e 35 35 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 29 2a 72 2a 30 2e 35 35 2c 20 30 )*r*0.55,.cy.+.sin(ha)*r*0.55,.0
75340 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 51 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d xFF000000);...Q..fill_tri(px,.a-
75360 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 2d 30 2e 30 38 29 2a 72 2a 30 2e >w,.a->h,.cx.+.cos(ma-0.08)*r*0.
75380 30 33 35 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 2d 30 2e 30 38 29 2a 72 2a 30 2e 30 33 35 2c 20 035,.cy.+.sin(ma-0.08)*r*0.035,.
753a0 00 00 00 41 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 2b 30 2e 30 38 29 ...A...........cx.+.cos(ma+0.08)
753c0 2a 72 2a 30 2e 30 33 35 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 2b 30 2e 30 38 29 2a 72 2a 30 2e *r*0.035,.cy.+.sin(ma+0.08)*r*0.
753e0 30 33 35 2c 20 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 035,....?...........cx.+.cos(ma)
75400 2a 72 2a 30 2e 38 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 2a 72 2a 30 2e 38 2c 20 30 78 46 46 *r*0.8,.cy.+.sin(ma)*r*0.8,.0xFF
75420 30 30 30 30 30 30 29 3b 00 00 00 39 20 20 2f 2f 20 52 65 64 20 68 61 6e 64 3a 20 42 61 6c 61 6e 000000);...9..//.Red.hand:.Balan
75440 63 65 64 20 74 68 69 63 6b 6e 65 73 73 20 74 6f 20 70 72 65 76 65 6e 74 20 64 69 73 61 70 70 65 ced.thickness.to.prevent.disappe
75460 61 72 69 6e 67 00 00 00 4e 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d aring...N..fill_tri(px,.a->w,.a-
75480 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 2d 30 2e 30 35 29 2a 72 2a 30 2e 30 34 2c 20 63 79 >h,.cx.+.cos(sa-0.05)*r*0.04,.cy
754a0 20 2b 20 73 69 6e 28 73 61 2d 30 2e 30 35 29 2a 72 2a 30 2e 30 34 2c 00 00 00 3e 20 20 20 20 20 .+.sin(sa-0.05)*r*0.04,...>.....
754c0 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 2b 30 2e 30 35 29 2a 72 2a 30 2e 30 34 2c 20 ......cx.+.cos(sa+0.05)*r*0.04,.
754e0 63 79 20 2b 20 73 69 6e 28 73 61 2b 30 2e 30 35 29 2a 72 2a 30 2e 30 34 2c 00 00 00 3f 20 20 20 cy.+.sin(sa+0.05)*r*0.04,...?...
75500 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 29 2a 72 2a 30 2e 38 2c 20 63 79 20 2b ........cx.+.cos(sa)*r*0.8,.cy.+
75520 20 73 69 6e 28 73 61 29 2a 72 2a 30 2e 38 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 00 .sin(sa)*r*0.8,.0xFFFF0000);....
75540 00 00 00 31 20 20 69 6e 74 20 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e 30 34 3b 20 69 66 20 28 ...1..int.hub_r.=.r.*.0.04;.if.(
75560 68 75 62 5f 72 20 3c 20 34 29 20 68 75 62 5f 72 20 3d 20 34 3b 00 00 00 58 20 20 66 6f 72 20 28 hub_r.<.4).hub_r.=.4;...X..for.(
75580 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 72 20 3c 20 68 75 62 5f 72 20 2d 20 32 3b 20 69 72 2b 2b int.ir.=.0;.ir.<.hub_r.-.2;.ir++
755a0 29 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c ).circle(px,.a->w,.a->h,.cx,.cy,
755c0 20 69 72 2c 20 30 78 46 46 46 46 46 46 46 46 29 3b 00 00 00 34 20 20 63 69 72 63 6c 65 28 70 78 .ir,.0xFFFFFFFF);...4..circle(px
755e0 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 68 75 62 5f 72 2c 20 30 78 46 ,.a->w,.a->h,.cx,.cy,.hub_r,.0xF
75600 46 30 30 30 30 30 30 29 3b 00 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 F000000);.......)..wl_surface_at
75620 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 tach(a->ws,.a->buf,.0,.0);...4..
75640 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 wl_surface_damage_buffer(a->ws,.
75660 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 0,.0,.a->w,.a->h);......wl_surfa
75680 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 ce_commit(a->ws);......a->redraw
756a0 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 .=.false;....}.......Gstatic.voi
756c0 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 d.xt_close(void.*d,.struct.xdg_t
756e0 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 oplevel.*xt).{.running.=.0;.}...
75700 60 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 `static.void.xt_cfg(void.*d,.str
75720 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c uct.xdg_toplevel.*xt,.int32_t.w,
75740 20 69 6e 74 33 32 5f 74 20 68 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 .int32_t.h,.struct.wl_array.*s).
75760 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 {......struct.app.*a.=.d;...3..i
75780 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 f.(w.>.0.&&.h.>.0.&&.(w.!=.a->w.
757a0 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 39 20 20 20 20 61 2d 3e 77 20 3d 20 77 ||.h.!=.a->h)).{...9....a->w.=.w
757c0 3b 20 61 2d 3e 68 20 3d 20 68 3b 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 20 61 2d 3e 72 ;.a->h.=.h;.destroy_buf(a);.a->r
757e0 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 46 73 74 61 edraw.=.true;......}....}...Fsta
75800 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 tic.void.xs_cfg(void.*d,.struct.
75820 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c xdg_surface.*xs,.uint32_t.serial
75840 29 20 7b 00 00 00 3b 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 20 78 64 67 5f ).{...;..struct.app.*a.=.d;.xdg_
75860 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c surface_ack_configure(xs,.serial
75880 29 3b 00 00 00 29 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 20 61 2d );...)..a->configured.=.true;.a-
758a0 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 60 73 74 61 74 69 63 20 76 >redraw.=.true;....}...`static.v
758c0 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 oid.reg_global(void.*d,.struct.w
758e0 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 l_registry.*r,.uint32_t.id,.cons
75900 74 20 63 68 61 72 20 2a 69 2c 20 75 69 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 t.char.*i,.uint32_t.v).{......st
75920 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 62 20 20 69 66 20 28 21 73 74 72 63 6d ruct.app.*a.=.d;...b..if.(!strcm
75940 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 20 61 2d 3e 63 6f 6d 70 20 3d p(i,."wl_compositor")).a->comp.=
75960 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d .wl_registry_bind(r,.id,.&wl_com
75980 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 58 20 20 65 6c 73 65 positor_interface,.4);...X..else
759a0 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 20 61 2d 3e 73 68 .if.(!strcmp(i,."wl_shm")).a->sh
759c0 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f m.=.wl_registry_bind(r,.id,.&wl_
759e0 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 20 shm_interface,.1);...'..else.if.
75a00 28 21 73 74 72 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 (!strcmp(i,."xdg_wm_base")).{...
75a20 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c ?....a->wm.=.wl_registry_bind(r,
75a40 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b .id,.&xdg_wm_base_interface,.1);
75a60 00 00 00 43 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f ...C....static.const.struct.xdg_
75a80 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d wm_base_listener.l.=.{.ping.=.wm
75aa0 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c _ping};...+....xdg_wm_base_add_l
75ac0 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 istener(a->wm,.&l,.a);......}...
75ae0 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 2b 20 20 .}........int.main(void).{...+..
75b00 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 20 61 2e 77 20 3d 20 34 30 30 3b 20 61 struct.app.a.=.{0};.a.w.=.400;.a
75b20 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e .h.=.400;......signal(SIGINT,.on
75b40 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e _sig);...!..a.d.=.wl_display_con
75b60 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 15 20 20 69 66 20 28 21 61 2e 64 29 20 72 65 74 75 72 nect(NULL);......if.(!a.d).retur
75b80 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 n.1;...'..a.reg.=.wl_display_get
75ba0 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 _registry(a.d);...G..static.cons
75bc0 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c t.struct.wl_registry_listener.rl
75be0 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 .=.{.global.=.reg_global};...+..
75c00 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 wl_registry_add_listener(a.reg,.
75c20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 &rl,.&a);......wl_display_roundt
75c40 72 69 70 28 61 2e 64 29 3b 00 00 00 2b 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 rip(a.d);...+..if.(!a.comp.||.!a
75c60 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e .shm.||.!a.wm).return.1;......a.
75c80 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 ws.=.wl_compositor_create_surfac
75ca0 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 e(a.comp);...1..a.xs.=.xdg_wm_ba
75cc0 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 se_get_xdg_surface(a.wm,.a.ws);.
75ce0 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 ..G..static.const.struct.xdg_sur
75d00 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 face_listener.xsl.=.{.configure.
75d20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f =.xs_cfg};...+..xdg_surface_add_
75d40 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 listener(a.xs,.&xsl,.&a);...(..a
75d60 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 .xt.=.xdg_surface_get_toplevel(a
75d80 2e 78 73 29 3b 00 00 00 5b 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 .xs);...[..static.const.struct.x
75da0 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e dg_toplevel_listener.xtl.=.{.con
75dc0 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f figure.=.xt_cfg,..close.=.xt_clo
75de0 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 se};...,..xdg_toplevel_add_liste
75e00 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f ner(a.xt,.&xtl,.&a);...*..xdg_to
75e20 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 plevel_set_title(a.xt,."wlclock"
75e40 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b );......wl_surface_commit(a.ws);
75e60 00 00 00 31 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 20 77 6c 5f 64 ...1..while.(!a.configured).wl_d
75e80 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 0d 20 20 72 65 6e 64 65 isplay_dispatch(a.d);......rende
75ea0 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 r(&a);...9..int.tfd.=.timerfd_cr
75ec0 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 eate(CLOCK_MONOTONIC,.TFD_CLOEXE
75ee0 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c C);...F..timerfd_settime(tfd,.0,
75f00 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 .&(struct.itimerspec){{1,.0},.{1
75f20 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 31 ,.0}},.NULL);......char.buffer[1
75f40 30 30 5d 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 4f 20 00];......while.(running).{...O.
75f60 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 ...while.(wl_display_prepare_rea
75f80 64 28 61 2e 64 29 20 21 3d 20 30 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 d(a.d).!=.0).wl_display_dispatch
75fa0 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 _pending(a.d);........wl_display
75fc0 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 _flush(a.d);...M....struct.pollf
75fe0 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 d.fds[2].=.{{wl_display_get_fd(a
76000 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 .d),.POLLIN},.{tfd,.POLLIN}};...
76020 48 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b H....if.(poll(fds,.2,.-1).<.0).{
76040 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 20 63 6f .wl_display_cancel_read(a.d);.co
76060 6e 74 69 6e 75 65 3b 20 7d 00 00 00 5f 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 ntinue;.}..._....if.(fds[0].reve
76080 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 nts.&.POLLIN).wl_display_read_ev
760a0 65 6e 74 73 28 61 2e 64 29 3b 20 65 6c 73 65 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 ents(a.d);.else.wl_display_cance
760c0 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 l_read(a.d);...%....wl_display_d
760e0 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 20 20 20 69 66 20 ispatch_pending(a.d);..."....if.
76100 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 37 20 (fds[1].revents.&.POLLIN).{...7.
76120 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 5f 65 78 70 3b 20 72 65 61 64 28 74 66 64 2c 20 26 .....uint64_t.t_exp;.read(tfd,.&
76140 74 5f 65 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 78 70 29 29 3b 00 00 00 1e 20 20 20 20 20 20 t_exp,.sizeof(t_exp));..........
76160 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 time_t.cli.=.time(NULL);...,....
76180 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 5f 73 74 72 75 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d ..struct.tm.*t_struct.=.localtim
761a0 65 28 26 63 6c 69 29 3b 00 00 00 49 20 20 20 20 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 e(&cli);...I......strftime(buffe
761c0 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a r,.sizeof(buffer),."%d-%m-%Y.%I:
761e0 25 4d 3a 25 53 20 25 70 22 2c 20 74 5f 73 74 72 75 63 74 29 3b 00 00 00 35 20 20 20 20 20 20 70 %M:%S.%p",.t_struct);...5......p
76200 72 69 6e 74 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 73 22 2c 20 62 75 66 66 65 72 29 3b 20 66 rintf("\rTime.is.%s",.buffer);.f
76220 66 6c 75 73 68 28 73 74 64 6f 75 74 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 flush(stdout);..........a.redraw
76240 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1d 20 20 20 20 69 66 20 28 61 2e 72 .=.true;........}........if.(a.r
76260 65 64 72 61 77 29 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 48 20 20 70 edraw).render(&a);......}...H..p
76280 72 69 6e 74 66 28 22 5c 6e 22 29 3b 20 63 6c 6f 73 65 28 74 66 64 29 3b 20 64 65 73 74 72 6f 79 rintf("\n");.close(tfd);.destroy
762a0 5f 62 75 66 28 26 61 29 3b 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 _buf(&a);.wl_display_disconnect(
762c0 61 2e 64 29 3b 35 81 f5 18 00 00 00 00 19 00 00 00 1b 00 00 00 c6 00 00 00 2c 00 00 00 08 01 00 a.d);5...................,......
762e0 00 01 00 00 00 22 02 00 00 00 00 00 00 ef 1d 00 00 00 00 00 00 2f 20 00 00 00 00 00 00 35 81 5f .....".............../.......5._
76300 d0 00 00 00 a9 00 00 00 ab 00 00 00 00 00 00 00 00 00 00 00 aa 00 00 00 01 00 00 00 00 00 00 00 ................................
76320 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
76340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
76360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
76380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
763a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
763c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
763e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
76400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
76420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
76440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
76460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
76480 00 00 00 69 9d aa 28 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 24 ...i..(........................$
764a0 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 ....#define._POSIX_C_SOURCE.2008
764c0 30 39 4c 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 09L...&#include."xdg-shell-clien
764e0 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c t-protocol.h"....#include.<fcntl
76500 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 .h>....#include.<math.h>....#inc
76520 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 lude.<poll.h>....#include.<signa
76540 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 l.h>....#include.<stdbool.h>....
76560 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 #include.<stdint.h>....#include.
76580 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e <stdio.h>....#include.<stdlib.h>
765a0 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c ....#include.<string.h>....#incl
765c0 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 ude.<sys/mman.h>....#include.<sy
765e0 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 s/timerfd.h>....#include.<time.h
76600 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 >....#include.<unistd.h>....#inc
76620 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 lude.<wayland-client.h>........#
76640 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 ifndef.M_PI...##define.M_PI.3.14
76660 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 159265358979323846....#endif....
76680 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 #ifndef.M_PI_2...%#define.M_PI_2
766a0 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 .1.57079632679489661923....#endi
766c0 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f f.......)static.volatile.sig_ato
766e0 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 mic_t.running.=.1;....static.voi
76700 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 d.on_sig(int.s).{......(void)s;.
76720 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 .....running.=.0;....}........st
76740 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 ruct.app.{......struct.wl_displa
76760 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 y.*d;......struct.wl_registry.*r
76780 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 eg;......struct.wl_compositor.*c
767a0 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 omp;......struct.wl_shm.*shm;...
767c0 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 ...struct.xdg_wm_base.*wm;......
767e0 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 struct.wl_surface.*ws;......stru
76800 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 ct.xdg_surface.*xs;......struct.
76820 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 xdg_toplevel.*xt;......void.*pix
76840 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b els;......struct.wl_buffer.*buf;
76860 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 62 77 2c 20 62 68 3b ......int.w,.h;......int.bw,.bh;
76880 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c ......bool.configured;......bool
768a0 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 .redraw;....};.......Jstatic.voi
768c0 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 d.wm_ping(void.*data,.struct.xdg
768e0 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b _wm_base.*wm,.uint32_t.serial).{
76900 00 00 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 ......xdg_wm_base_pong(wm,.seria
76920 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 l);....}.......$static.int.creat
76940 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 e_shm(size_t.size).{...#..char.t
76960 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 [].=."/tmp/wlclock-XXXXXX";.....
76980 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 0d 20 20 69 66 20 28 66 .int.fd.=.mkstemp(t);......if.(f
769a0 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 d.<.0)........exit(1);......unli
769c0 6e 6b 28 74 29 3b 00 00 00 1e 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 nk(t);......if.(ftruncate(fd,.si
769e0 7a 65 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 ze).<.0)........exit(1);......re
76a00 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 turn.fd;....}.......(static.void
76a20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 .destroy_buf(struct.app.*a).{...
76a40 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 ...if.(!a->buf)........return;..
76a60 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 .*..size_t.size.=.(size_t)a->bw.
76a80 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 *.a->bh.*.4;......wl_buffer_dest
76aa0 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 roy(a->buf);......munmap(a->pixe
76ac0 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 ls,.size);......a->buf.=.NULL;..
76ae0 00 13 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 ....a->pixels.=.NULL;....}......
76b00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 .&static.void.alloc_buf(struct.a
76b20 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 pp.*a).{......destroy_buf(a);...
76b40 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 (..size_t.size.=.(size_t)a->w.*.
76b60 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 a->h.*.4;......int.fd.=.create_s
76b80 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 hm(size);...J..a->pixels.=.mmap(
76ba0 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 NULL,.size,.PROT_READ.|.PROT_WRI
76bc0 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1e 20 20 69 66 20 TE,.MAP_SHARED,.fd,.0);......if.
76be0 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 00 00 00 0c 20 20 20 (a->pixels.==.MAP_FAILED).......
76c00 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f .exit(1);...B..struct.wl_shm_poo
76c20 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e l.*pool.=.wl_shm_create_pool(a->
76c40 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c shm,.fd,.size);...C..a->buf.=.wl
76c60 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c _shm_pool_create_buffer(pool,.0,
76c80 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d 20 20 20 20 20 20 .a->w,.a->h,.a->w.*.4,...=......
76ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 ...............................W
76cc0 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f L_SHM_FORMAT_ARGB8888);......wl_
76ce0 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f shm_pool_destroy(pool);......clo
76d00 73 65 28 66 64 29 3b 00 00 00 0f 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b 00 00 00 0f 20 20 se(fd);......a->bw.=.a->w;......
76d20 61 2d 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 45 73 74 61 74 69 63 a->bh.=.a->h;....}.......Estatic
76d40 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 .void.circle(uint32_t.*px,.int.w
76d60 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 ,.int.h,.int.cx,.int.cy,.int.r,.
76d80 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 ......................uint32_t.c
76da0 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 ).{..."..int.x.=.0,.y.=.r,.d.=.3
76dc0 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 .-.2.*.r;......while.(y.>=.x).{.
76de0 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 ..H....int.p[8][2].=.{{cx.+.x,.c
76e00 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 y.+.y},.{cx.-.x,.cy.+.y},.{cx.+.
76e20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 x,.cy.-.y},...H.................
76e40 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 ..{cx.-.x,.cy.-.y},.{cx.+.y,.cy.
76e60 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 +.x},.{cx.-.y,.cy.+.x},...7.....
76e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 ..............{cx.+.y,.cy.-.x},.
76ea0 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 {cx.-.y,.cy.-.x}};........for.(i
76ec0 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 nt.i.=.0;.i.<.8;.i++)...E......i
76ee0 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 f.(p[i][0].>=.0.&&.p[i][0].<.w.&
76f00 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 &.p[i][1].>=.0.&&.p[i][1].<.h)..
76f20 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b .&........px[p[i][1].*.w.+.p[i][
76f40 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 0]].=.c;........if.(d.>.0).{....
76f60 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a ......d.+=.4.*.(x.-.y).+.10;....
76f80 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 ......y--;........}.else........
76fa0 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 ..d.+=.4.*.x.+.6;........x++;...
76fc0 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c ...}....}.......Pstatic.void.fil
76fe0 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 l_tri(uint32_t.*px,.int.w,.int.h
77000 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 ,.int.x0,.int.y0,.int.x1,.int.y1
77020 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 78 32 ,...2.....................int.x2
77040 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 6e 74 ,.int.y2,.uint32_t.c).{...B..int
77060 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 79 30 .min_y.=.y0.<.y1.?.(y0.<.y2.?.y0
77080 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 .:.y2).:.(y1.<.y2.?.y1.:.y2);...
770a0 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e 20 79 B..int.max_y.=.y0.>.y1.?.(y0.>.y
770c0 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 2.?.y0.:.y2).:.(y1.>.y2.?.y1.:.y
770e0 32 29 3b 00 00 00 10 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 00 00 00 0e 20 20 20 20 6d 2);......if.(min_y.<.0)........m
77100 69 6e 5f 79 20 3d 20 30 3b 00 00 00 11 20 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 00 00 in_y.=.0;......if.(max_y.>=.h)..
77120 00 12 20 20 20 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 ......max_y.=.h.-.1;...(..for.(i
77140 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b nt.y.=.min_y;.y.<=.max_y;.y++).{
77160 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d ........int.x_start.=.w,.x_end.=
77180 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 .0;...3....int.xs[3].=.{x0,.x1,.
771a0 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 15 20 20 x2},.ys[3].=.{y0,.y1,.y2};......
771c0 20 20 62 6f 6f 6c 20 68 69 74 20 3d 20 66 61 6c 73 65 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 ..bool.hit.=.false;...!....for.(
771e0 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 int.i.=.0;.i.<.3;.i++).{........
77200 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 ..int.j.=.(i.+.1).%.3;...C......
77220 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c if.((ys[i].<=.y.&&.ys[j].>.y).||
77240 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 .(ys[j].<=.y.&&.ys[i].>.y)).{...
77260 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 H........int.x.=.xs[i].+.(y.-.ys
77280 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 [i]).*.(xs[j].-.xs[i])./.(ys[j].
772a0 2d 20 79 73 5b 69 5d 29 3b 00 00 00 18 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 -.ys[i]);............if.(x.<.x_s
772c0 74 61 72 74 29 00 00 00 16 20 20 20 20 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 tart)..............x_start.=.x;.
772e0 00 00 16 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 00 00 00 14 20 20 20 ...........if.(x.>.x_end).......
77300 20 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 13 20 20 20 20 20 20 20 20 68 69 74 .......x_end.=.x;............hit
77320 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 0e .=.true;..........}........}....
77340 20 20 20 20 69 66 20 28 68 69 74 29 20 7b 00 00 00 16 20 20 20 20 20 20 69 66 20 28 78 5f 73 74 ....if.(hit).{..........if.(x_st
77360 61 72 74 20 3c 20 30 29 00 00 00 14 20 20 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 30 3b art.<.0)............x_start.=.0;
77380 00 00 00 15 20 20 20 20 20 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 00 00 00 16 20 20 20 ..........if.(x_end.>=.w).......
773a0 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 2c 20 20 20 20 20 20 66 6f 72 .....x_end.=.w.-.1;...,......for
773c0 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 .(int.x.=.x_start;.x.<=.x_end;.x
773e0 2b 2b 29 00 00 00 1a 20 20 20 20 20 20 20 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 ++)............px[y.*.w.+.x].=.c
77400 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 ;........}......}....}.......#st
77420 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 atic.void.render(struct.app.*a).
77440 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e {.../..if.(!a->configured.||.a->
77460 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 w.<=.0.||.a->h.<=.0)........retu
77480 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 20 61 6c 6c rn;......if.(!a->buf)........all
774a0 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 oc_buf(a);......uint32_t.*px.=.a
774c0 2d 3e 70 69 78 65 6c 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 ->pixels;...$..memset(px,.0xFF,.
774e0 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 a->w.*.a->h.*.4);......time_t.tt
77500 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d .=.time(NULL);......struct.tm.tm
77520 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 v;......localtime_r(&tt,.&tmv);.
77540 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e ..#..int.cx.=.a->w./.2,.cy.=.a->
77560 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 h./.2;.../..int.r.=.(a->w.<.a->h
77580 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 .?.a->w.:.a->h)./.2.-.10;......i
775a0 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 20 20 f.(r.<.5)........r.=.5;.........
775c0 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 .for.(int.i.=.0;.i.<.60;.i++).{.
775e0 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 .......double.ang.=.i./.60.0.*.2
77600 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 31 20 20 20 20 69 6e 74 20 6c 65 6e .*.M_PI.-.M_PI_2;...1....int.len
77620 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 20 2a 20 30 2e 31 32 20 3a 20 72 20 2a .=.(i.%.5.==.0).?.r.*.0.12.:.r.*
77640 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 64 6f 75 62 6c 65 20 74 5f 61 6e 67 20 3d 20 28 69 20 .0.04;...0....double.t_ang.=.(i.
77660 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 32 20 3a 20 30 2e 30 30 35 3b 00 00 00 37 20 20 %.5.==.0).?.0.012.:.0.005;...7..
77680 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 ..fill_tri(px,.a->w,.a->h,.cx.+.
776a0 63 6f 73 28 61 6e 67 20 2d 20 74 5f 61 6e 67 29 20 2a 20 72 2c 00 00 00 42 20 20 20 20 20 20 20 cos(ang.-.t_ang).*.r,...B.......
776c0 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2d 20 74 5f 61 6e 67 29 20 2a 20 72 2c ......cy.+.sin(ang.-.t_ang).*.r,
776e0 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 20 2b 20 74 5f 61 6e 67 29 20 2a 20 72 2c 00 00 00 42 20 .cx.+.cos(ang.+.t_ang).*.r,...B.
77700 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2b 20 74 5f 61 6e 67 ............cy.+.sin(ang.+.t_ang
77720 29 20 2a 20 72 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 ).*.r,.cx.+.cos(ang).*.(r.-.len)
77740 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 ,...4.............cy.+.sin(ang).
77760 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d *.(r.-.len),.0xFF000000);......}
77780 00 00 00 00 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 .......4..double.sa.=.tmv.tm_sec
777a0 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a ./.60.0.*.2.*.M_PI.-.M_PI_2;...J
777c0 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e ..double.ma.=.(tmv.tm_min.+.tmv.
777e0 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 tm_sec./.60.0)./.60.0.*.2.*.M_PI
77800 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 4c 20 .-.M_PI_2;......double.ha.=...L.
77820 20 20 20 20 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 2e .....((tmv.tm_hour.%.12).+.(tmv.
77840 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 tm_min./.60.0))./.12.0.*.2.*.M_P
77860 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 3a 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 I.-.M_PI_2;.......:..fill_tri(px
77880 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2d 20 30 2e 31 32 ,.a->w,.a->h,.cx.+.cos(ha.-.0.12
778a0 29 20 2a 20 72 20 2a 20 30 2e 30 35 2c 00 00 00 4a 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b ).*.r.*.0.05,...J...........cy.+
778c0 20 73 69 6e 28 68 61 20 2d 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 30 2e 30 35 2c 20 63 78 20 2b .sin(ha.-.0.12).*.r.*.0.05,.cx.+
778e0 20 63 6f 73 28 68 61 20 2b 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 30 2e 30 35 2c 00 00 00 43 20 .cos(ha.+.0.12).*.r.*.0.05,...C.
77900 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2b 20 30 2e 31 32 29 20 2a 20 ..........cy.+.sin(ha.+.0.12).*.
77920 72 20 2a 20 30 2e 30 35 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 r.*.0.05,.cx.+.cos(ha).*.r.*.0.5
77940 35 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 29 20 2a 20 5,...0...........cy.+.sin(ha).*.
77960 72 20 2a 20 30 2e 35 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 3b 20 20 66 69 6c 6c r.*.0.55,.0xFF000000);...;..fill
77980 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 _tri(px,.a->w,.a->h,.cx.+.cos(ma
779a0 20 2d 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 30 2e 30 33 35 2c 00 00 00 4c 20 20 20 20 20 20 20 .-.0.08).*.r.*.0.035,...L.......
779c0 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2d 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 30 2e ....cy.+.sin(ma.-.0.08).*.r.*.0.
779e0 30 33 35 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2b 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 30 035,.cx.+.cos(ma.+.0.08).*.r.*.0
77a00 2e 30 33 35 2c 00 00 00 43 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 .035,...C...........cy.+.sin(ma.
77a20 2b 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 30 2e 30 33 35 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 +.0.08).*.r.*.0.035,.cx.+.cos(ma
77a40 29 20 2a 20 72 20 2a 20 30 2e 38 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 ).*.r.*.0.8,.../...........cy.+.
77a60 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 38 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 sin(ma).*.r.*.0.8,.0xFF000000);.
77a80 00 00 39 20 20 2f 2f 20 52 65 64 20 68 61 6e 64 3a 20 42 61 6c 61 6e 63 65 64 20 74 68 69 63 6b ..9..//.Red.hand:.Balanced.thick
77aa0 6e 65 73 73 20 74 6f 20 70 72 65 76 65 6e 74 20 64 69 73 61 70 70 65 61 72 69 6e 67 00 00 00 3a ness.to.prevent.disappearing...:
77ac0 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 ..fill_tri(px,.a->w,.a->h,.cx.+.
77ae0 63 6f 73 28 73 61 20 2d 20 30 2e 30 35 29 20 2a 20 72 20 2a 20 30 2e 30 34 2c 00 00 00 4a 20 20 cos(sa.-.0.05).*.r.*.0.04,...J..
77b00 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 73 61 20 2d 20 30 2e 30 35 29 20 2a 20 72 .........cy.+.sin(sa.-.0.05).*.r
77b20 20 2a 20 30 2e 30 34 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 20 2b 20 30 2e 30 35 29 20 2a 20 72 .*.0.04,.cx.+.cos(sa.+.0.05).*.r
77b40 20 2a 20 30 2e 30 34 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 .*.0.04,...B...........cy.+.sin(
77b60 73 61 20 2b 20 30 2e 30 35 29 20 2a 20 72 20 2a 20 30 2e 30 34 2c 20 63 78 20 2b 20 63 6f 73 28 sa.+.0.05).*.r.*.0.04,.cx.+.cos(
77b80 73 61 29 20 2a 20 72 20 2a 20 30 2e 38 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 63 79 20 sa).*.r.*.0.8,.../...........cy.
77ba0 2b 20 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 38 2c 20 30 78 46 46 46 46 30 30 30 30 29 +.sin(sa).*.r.*.0.8,.0xFFFF0000)
77bc0 3b 00 00 00 00 00 00 00 17 20 20 69 6e 74 20 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e 30 34 3b ;..........int.hub_r.=.r.*.0.04;
77be0 00 00 00 10 20 20 69 66 20 28 68 75 62 5f 72 20 3c 20 34 29 00 00 00 0e 20 20 20 20 68 75 62 5f ......if.(hub_r.<.4)........hub_
77c00 72 20 3d 20 34 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 72 20 r.=.4;...(..for.(int.ir.=.0;.ir.
77c20 3c 20 68 75 62 5f 72 20 2d 20 32 3b 20 69 72 2b 2b 29 00 00 00 33 20 20 20 20 63 69 72 63 6c 65 <.hub_r.-.2;.ir++)...3....circle
77c40 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 30 78 46 (px,.a->w,.a->h,.cx,.cy,.ir,.0xF
77c60 46 46 46 46 46 46 46 29 3b 00 00 00 34 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 FFFFFFF);...4..circle(px,.a->w,.
77c80 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 68 75 62 5f 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 a->h,.cx,.cy,.hub_r,.0xFF000000)
77ca0 3b 00 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e ;.......)..wl_surface_attach(a->
77cc0 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 ws,.a->buf,.0,.0);...4..wl_surfa
77ce0 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d ce_damage_buffer(a->ws,.0,.0,.a-
77d00 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 >w,.a->h);......wl_surface_commi
77d20 74 28 61 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 t(a->ws);......a->redraw.=.false
77d40 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f ;....}.......Gstatic.void.xt_clo
77d60 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 se(void.*d,.struct.xdg_toplevel.
77d80 2a 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 4a 73 74 61 74 69 63 20 *xt).{.running.=.0;.}...Jstatic.
77da0 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f void.xt_cfg(void.*d,.struct.xdg_
77dc0 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 toplevel.*xt,.int32_t.w,.int32_t
77de0 20 68 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 .h,...(...................struct
77e00 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 .wl_array.*s).{......struct.app.
77e20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 *a.=.d;...3..if.(w.>.0.&&.h.>.0.
77e40 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 &&.(w.!=.a->w.||.h.!=.a->h)).{..
77e60 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d 20 68 3b ......a->w.=.w;........a->h.=.h;
77e80 00 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 15 20 20 20 20 61 ........destroy_buf(a);........a
77ea0 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 46 ->redraw.=.true;......}....}...F
77ec0 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 static.void.xs_cfg(void.*d,.stru
77ee0 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 ct.xdg_surface.*xs,.uint32_t.ser
77f00 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 ial).{......struct.app.*a.=.d;..
77f20 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 .(..xdg_surface_ack_configure(xs
77f40 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 ,.serial);......a->configured.=.
77f60 74 72 75 65 3b 00 00 00 13 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 true;......a->redraw.=.true;....
77f80 7d 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 }...Cstatic.void.reg_global(void
77fa0 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 .*d,.struct.wl_registry.*r,.uint
77fc0 33 32 5f 74 20 69 64 2c 00 00 00 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32_t.id,...3....................
77fe0 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c 20 75 69 6e 74 33 32 5f 74 20 76 29 20 7b 00 ...const.char.*i,.uint32_t.v).{.
78000 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 22 20 20 69 66 20 .....struct.app.*a.=.d;..."..if.
78020 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 (!strcmp(i,."wl_compositor"))...
78040 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 C....a->comp.=.wl_registry_bind(
78060 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c r,.id,.&wl_compositor_interface,
78080 20 34 29 3b 00 00 00 20 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 .4);......else.if.(!strcmp(i,."w
780a0 6c 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 l_shm"))...;....a->shm.=.wl_regi
780c0 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 stry_bind(r,.id,.&wl_shm_interfa
780e0 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c ce,.1);...'..else.if.(!strcmp(i,
78100 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 ."xdg_wm_base")).{...?....a->wm.
78120 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 =.wl_registry_bind(r,.id,.&xdg_w
78140 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 73 74 61 m_base_interface,.1);...C....sta
78160 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 tic.const.struct.xdg_wm_base_lis
78180 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b tener.l.=.{.ping.=.wm_ping};...+
781a0 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e ....xdg_wm_base_add_listener(a->
781c0 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 wm,.&l,.a);......}....}........i
781e0 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 73 74 72 75 63 74 20 61 70 70 20 nt.main(void).{......struct.app.
78200 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d 20 34 30 30 3b 00 00 00 0c 20 20 61 2e a.=.{0};......a.w.=.400;......a.
78220 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f h.=.400;......signal(SIGINT,.on_
78240 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e sig);...!..a.d.=.wl_display_conn
78260 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 0b 20 20 69 66 20 28 21 61 2e 64 29 00 00 00 0d 20 20 20 ect(NULL);......if.(!a.d).......
78280 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c .return.1;...'..a.reg.=.wl_displ
782a0 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 47 20 20 73 74 61 74 69 ay_get_registry(a.d);...G..stati
782c0 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 c.const.struct.wl_registry_liste
782e0 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b ner.rl.=.{.global.=.reg_global};
78300 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 ...+..wl_registry_add_listener(a
78320 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f .reg,.&rl,.&a);......wl_display_
78340 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 21 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 roundtrip(a.d);...!..if.(!a.comp
78360 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 00 00 00 0d 20 20 20 20 72 65 74 75 .||.!a.shm.||.!a.wm)........retu
78380 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f rn.1;......a.ws.=.wl_compositor_
783a0 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 create_surface(a.comp);...1..a.x
783c0 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 s.=.xdg_wm_base_get_xdg_surface(
783e0 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 a.wm,.a.ws);...G..static.const.s
78400 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 6c 20 3d truct.xdg_surface_listener.xsl.=
78420 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 2b 20 20 78 64 67 .{.configure.=.xs_cfg};...+..xdg
78440 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 6c _surface_add_listener(a.xs,.&xsl
78460 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 ,.&a);...(..a.xt.=.xdg_surface_g
78480 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 et_toplevel(a.xs);...G..static.c
784a0 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 onst.struct.xdg_toplevel_listene
784c0 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 00 00 00 r.xtl.=.{.configure.=.xt_cfg,...
784e0 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 F...............................
78500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f .....................close.=.xt_
78520 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 close};...,..xdg_toplevel_add_li
78540 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 stener(a.xt,.&xtl,.&a);...*..xdg
78560 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f _toplevel_set_title(a.xt,."wlclo
78580 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 ck");......wl_surface_commit(a.w
785a0 73 29 3b 00 00 00 17 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 00 00 s);......while.(!a.configured)..
785c0 00 1d 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 ......wl_display_dispatch(a.d);.
785e0 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 .....render(&a);...9..int.tfd.=.
78600 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 timerfd_create(CLOCK_MONOTONIC,.
78620 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 TFD_CLOEXEC);...F..timerfd_setti
78640 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b me(tfd,.0,.&(struct.itimerspec){
78660 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 20 20 63 68 61 {1,.0},.{1,.0}},.NULL);......cha
78680 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 r.buffer[100];......while.(runni
786a0 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 ng).{...-....while.(wl_display_p
786c0 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 00 00 00 27 20 20 20 20 20 20 repare_read(a.d).!=.0)...'......
786e0 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 wl_display_dispatch_pending(a.d)
78700 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 ;........wl_display_flush(a.d);.
78720 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b ..M....struct.pollfd.fds[2].=.{{
78740 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c wl_display_get_fd(a.d),.POLLIN},
78760 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1f 20 20 20 20 69 66 20 28 70 6f 6c 6c .{tfd,.POLLIN}};........if.(poll
78780 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 00 00 00 22 20 20 20 20 20 20 77 6c 5f (fds,.2,.-1).<.0).{..."......wl_
787a0 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 0f 20 20 20 display_cancel_read(a.d);.......
787c0 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 20 20 20 20 20 69 66 20 ...continue;........}........if.
787e0 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 22 20 20 20 (fds[0].revents.&.POLLIN)..."...
78800 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 00 ...wl_display_read_events(a.d);.
78820 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f .......else..."......wl_display_
78840 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 cancel_read(a.d);...%....wl_disp
78860 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 20 lay_dispatch_pending(a.d);..."..
78880 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b ..if.(fds[1].revents.&.POLLIN).{
788a0 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 5f 65 78 70 3b 00 00 00 27 20 20 20 ..........uint64_t.t_exp;...'...
788c0 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 78 ...read(tfd,.&t_exp,.sizeof(t_ex
788e0 70 29 29 3b 00 00 00 1e 20 20 20 20 20 20 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 28 p));..........time_t.cli.=.time(
78900 4e 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 5f 73 74 72 NULL);...,......struct.tm.*t_str
78920 75 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 3b 00 00 00 49 20 20 20 20 20 20 uct.=.localtime(&cli);...I......
78940 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c strftime(buffer,.sizeof(buffer),
78960 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c 20 74 5f 73 74 72 75 63 ."%d-%m-%Y.%I:%M:%S.%p",.t_struc
78980 74 29 3b 00 00 00 25 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 t);...%......printf("\rTime.is.%
789a0 73 22 2c 20 62 75 66 66 65 72 29 3b 00 00 00 15 20 20 20 20 20 20 66 66 6c 75 73 68 28 73 74 64 s",.buffer);..........fflush(std
789c0 6f 75 74 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 out);..........a.redraw.=.true;.
789e0 00 00 05 20 20 20 20 7d 00 00 00 11 20 20 20 20 69 66 20 28 61 2e 72 65 64 72 61 77 29 00 00 00 .......}........if.(a.redraw)...
78a00 11 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 0f 20 20 70 .......render(&a);......}......p
78a20 72 69 6e 74 66 28 22 5c 6e 22 29 3b 00 00 00 0d 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 rintf("\n");......close(tfd);...
78a40 12 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 ...destroy_buf(&a);......wl_disp
78a60 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e lay_disconnect(a.d);......return
78a80 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 24 01 00 00 00 00 00 00 .0;....}5...............$.......
78aa0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7c 22 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ................|"..............
78ac0 35 81 5f d0 00 00 00 aa 00 00 00 ac 00 00 00 00 00 00 00 00 00 00 00 ab 00 00 00 01 00 00 00 00 5._.............................
78ae0 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78c40 00 00 00 00 00 00 69 9d aa 29 04 01 00 00 00 00 00 f5 18 00 00 00 e4 00 00 00 00 00 00 00 00 00 ......i..)......................
78c60 00 00 01 00 00 00 01 7d f5 18 00 00 00 e5 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 db .......}........................
78c80 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 20 f5 18 00 00 00 dc 00 00 00 00 00 00 00 00 00 ................................
78ca0 00 00 00 f5 18 00 00 00 85 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 03 20 20 7d f5 18 00 00 ...........................}....
78cc0 00 86 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ................................
78ce0 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 ......................5.........
78d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 85 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78d20 00 00 00 00 00 00 00 10 00 00 00 00 00 00 f5 18 00 00 00 00 85 00 00 00 03 00 00 00 00 00 00 00 ................................
78d40 00 00 00 00 56 00 00 00 01 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 ....V...........................
78d60 00 00 00 00 f5 18 00 00 00 00 db 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 01 00 ................................
78d80 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 01 00 00 00 00 00 00 35 81 5f d0 00 00 ..................A.......5._...
78da0 00 ab 00 00 00 ad 00 00 00 00 00 00 00 00 00 00 00 ac 00 00 00 e5 00 00 00 00 00 00 00 00 ff ff ................................
78dc0 ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78f20 69 9d aa 2a 04 01 00 00 00 39 00 f5 18 00 00 00 19 00 00 01 26 00 00 00 e5 00 00 00 ca 00 00 00 i..*.....9..........&...........
78f40 33 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 20 28 76 6f 3static.void.on_sig(int.s).{.(vo
78f60 69 64 29 73 3b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 0c 73 74 72 75 id)s;.running.=.0;.}........stru
78f80 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 ct.app.{......struct.wl_display.
78fa0 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 *d;......struct.wl_registry.*reg
78fc0 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d ;......struct.wl_compositor.*com
78fe0 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 p;......struct.wl_shm.*shm;.....
79000 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 .struct.xdg_wm_base.*wm;......st
79020 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 ruct.wl_surface.*ws;......struct
79040 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 .xdg_surface.*xs;......struct.xd
79060 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c g_toplevel.*xt;......void.*pixel
79080 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 s;......struct.wl_buffer.*buf;..
790a0 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 ....int.w,.h;......int.bw,.bh;..
790c0 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 ....bool.configured;......bool.r
790e0 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 6a 73 74 61 74 69 63 20 76 6f 69 64 20 edraw;....};.......jstatic.void.
79100 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 wm_ping(void.*data,.struct.xdg_w
79120 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 20 78 m_base.*wm,.uint32_t.serial).{.x
79140 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 20 7d 00 00 dg_wm_base_pong(wm,.serial);.}..
79160 00 00 00 00 00 24 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 .....$static.int.create_shm(size
79180 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 _t.size).{...#..char.t[].=."/tmp
791a0 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 /wlclock-XXXXXX";......int.fd.=.
791c0 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 16 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 65 78 69 mkstemp(t);......if.(fd.<.0).exi
791e0 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 27 20 20 69 66 20 28 66 t(1);......unlink(t);...'..if.(f
79200 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 65 78 69 74 28 31 29 3b truncate(fd,.size).<.0).exit(1);
79220 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 ......return.fd;....}.......(sta
79240 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 tic.void.destroy_buf(struct.app.
79260 2a 61 29 20 7b 00 00 00 16 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 20 72 65 74 75 72 6e 3b 00 *a).{......if.(!a->buf).return;.
79280 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 ..*..size_t.size.=.(size_t)a->bw
792a0 20 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 .*.a->bh.*.4;......wl_buffer_des
792c0 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 troy(a->buf);......munmap(a->pix
792e0 65 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 els,.size);......a->buf.=.NULL;.
79300 00 00 13 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 .....a->pixels.=.NULL;....}.....
79320 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 ..&static.void.alloc_buf(struct.
79340 61 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 app.*a).{......destroy_buf(a);..
79360 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a .(..size_t.size.=.(size_t)a->w.*
79380 20 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f .a->h.*.4;......int.fd.=.create_
793a0 73 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 shm(size);...J..a->pixels.=.mmap
793c0 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 (NULL,.size,.PROT_READ.|.PROT_WR
793e0 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 27 20 20 69 66 ITE,.MAP_SHARED,.fd,.0);...'..if
79400 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 65 78 69 74 28 .(a->pixels.==.MAP_FAILED).exit(
79420 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 1);...B..struct.wl_shm_pool.*poo
79440 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 l.=.wl_shm_create_pool(a->shm,.f
79460 64 2c 20 73 69 7a 65 29 3b 00 00 00 5c 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 d,.size);...\..a->buf.=.wl_shm_p
79480 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c ool_create_buffer(pool,.0,.a->w,
794a0 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 .a->h,.a->w.*.4,.WL_SHM_FORMAT_A
794c0 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 RGB8888);......wl_shm_pool_destr
794e0 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 1d 20 20 61 oy(pool);......close(fd);......a
79500 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b 20 61 2d 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 ->bw.=.a->w;.a->bh.=.a->h;....}.
79520 00 00 00 00 00 00 53 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 ......Sstatic.void.circle(uint32
79540 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e _t.*px,.int.w,.int.h,.int.cx,.in
79560 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 t.cy,.int.r,.uint32_t.c).{..."..
79580 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b int.x.=.0,.y.=.r,.d.=.3.-.2.*.r;
795a0 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e ......while.(y.>=.x).{...H....in
795c0 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b t.p[8][2].=.{{cx.+.x,.cy.+.y},.{
795e0 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 cx.-.x,.cy.+.y},.{cx.+.x,.cy.-.y
79600 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 },...H...................{cx.-.x
79620 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 ,.cy.-.y},.{cx.+.y,.cy.+.x},.{cx
79640 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .-.y,.cy.+.x},...7..............
79660 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 .....{cx.+.y,.cy.-.x},.{cx.-.y,.
79680 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b cy.-.x}};........for.(int.i.=.0;
796a0 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 .i.<.8;.i++)...E......if.(p[i][0
796c0 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d ].>=.0.&&.p[i][0].<.w.&&.p[i][1]
796e0 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 .>=.0.&&.p[i][1].<.h)...&.......
79700 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 .px[p[i][1].*.w.+.p[i][0]].=.c;.
79720 00 00 43 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 ..C....if.(d.>.0).{.d.+=.4.*.(x.
79740 2d 20 79 29 20 2b 20 31 30 3b 20 79 2d 2d 3b 20 7d 20 65 6c 73 65 20 64 20 2b 3d 20 34 20 2a 20 -.y).+.10;.y--;.}.else.d.+=.4.*.
79760 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 x.+.6;........x++;......}....}..
79780 00 00 00 00 00 6e 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 .....nstatic.void.fill_tri(uint3
797a0 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 2_t.*px,.int.w,.int.h,.int.x0,.i
797c0 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 69 6e 74 20 78 32 2c 20 69 nt.y0,.int.x1,.int.y1,.int.x2,.i
797e0 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 6e 74 20 6d 69 nt.y2,.uint32_t.c).{...B..int.mi
79800 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 79 30 20 3a 20 n_y.=.y0.<.y1.?.(y0.<.y2.?.y0.:.
79820 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 42 20 20 y2).:.(y1.<.y2.?.y1.:.y2);...B..
79840 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e 20 79 32 20 3f int.max_y.=.y0.>.y1.?.(y0.>.y2.?
79860 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b .y0.:.y2).:.(y1.>.y2.?.y1.:.y2);
79880 00 00 00 3a 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 20 6d 69 6e 5f 79 20 3d 20 30 3b 20 ...:..if.(min_y.<.0).min_y.=.0;.
798a0 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 if.(max_y.>=.h).max_y.=.h.-.1;..
798c0 00 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 .(..for.(int.y.=.min_y;.y.<=.max
798e0 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 _y;.y++).{........int.x_start.=.
79900 77 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d w,.x_end.=.0;...3....int.xs[3].=
79920 20 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 .{x0,.x1,.x2},.ys[3].=.{y0,.y1,.
79940 79 32 7d 3b 00 00 00 15 20 20 20 20 62 6f 6f 6c 20 68 69 74 20 3d 20 66 61 6c 73 65 3b 00 00 00 y2};........bool.hit.=.false;...
79960 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 !....for.(int.i.=.0;.i.<.3;.i++)
79980 20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 20 33 3b .{..........int.j.=.(i.+.1).%.3;
799a0 00 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b ...C......if.((ys[i].<=.y.&&.ys[
799c0 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 j].>.y).||.(ys[j].<=.y.&&.ys[i].
799e0 3e 20 79 29 29 20 7b 00 00 00 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d >.y)).{...H........int.x.=.xs[i]
79a00 20 2b 20 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 .+.(y.-.ys[i]).*.(xs[j].-.xs[i])
79a20 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b 00 00 00 3f 20 20 20 20 20 20 20 20 69 ./.(ys[j].-.ys[i]);...?........i
79a40 66 20 28 78 20 3c 20 78 5f 73 74 61 72 74 29 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 20 69 66 20 f.(x.<.x_start).x_start.=.x;.if.
79a60 28 78 20 3e 20 78 5f 65 6e 64 29 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 13 20 20 20 20 20 20 (x.>.x_end).x_end.=.x;..........
79a80 20 20 68 69 74 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 ..hit.=.true;..........}........
79aa0 7d 00 00 00 0e 20 20 20 20 69 66 20 28 68 69 74 29 20 7b 00 00 00 42 20 20 20 20 20 20 69 66 20 }........if.(hit).{...B......if.
79ac0 28 78 5f 73 74 61 72 74 20 3c 20 30 29 20 78 5f 73 74 61 72 74 20 3d 20 30 3b 20 69 66 20 28 78 (x_start.<.0).x_start.=.0;.if.(x
79ae0 5f 65 6e 64 20 3e 3d 20 77 29 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 3f 20 20 20 _end.>=.w).x_end.=.w.-.1;...?...
79b00 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f ...for.(int.x.=.x_start;.x.<=.x_
79b20 65 6e 64 3b 20 78 2b 2b 29 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 05 end;.x++).px[y.*.w.+.x].=.c;....
79b40 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 ....}......}....}.......#static.
79b60 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 37 void.render(struct.app.*a).{...7
79b80 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 ..if.(!a->configured.||.a->w.<=.
79ba0 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 20 72 65 74 75 72 6e 3b 00 00 00 1c 20 20 69 66 20 0.||.a->h.<=.0).return;......if.
79bc0 28 21 61 2d 3e 62 75 66 29 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e (!a->buf).alloc_buf(a);......uin
79be0 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 24 20 20 6d 65 6d 73 t32_t.*px.=.a->pixels;...$..mems
79c00 65 74 28 70 78 2c 20 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 et(px,.0xFF,.a->w.*.a->h.*.4);..
79c20 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 ....time_t.tt.=.time(NULL);.....
79c40 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 .struct.tm.tmv;......localtime_r
79c60 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 (&tt,.&tmv);...#..int.cx.=.a->w.
79c80 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d /.2,.cy.=.a->h./.2;.../..int.r.=
79ca0 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 .(a->w.<.a->h.?.a->w.:.a->h)./.2
79cc0 20 2d 20 31 30 3b 00 00 00 13 20 20 69 66 20 28 72 20 3c 20 35 29 20 72 20 3d 20 35 3b 00 00 00 .-.10;......if.(r.<.5).r.=.5;...
79ce0 00 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 .......for.(int.i.=.0;.i.<.60;.i
79d00 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 ++).{........double.ang.=.i./.60
79d20 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 31 20 20 20 20 69 .0.*.2.*.M_PI.-.M_PI_2;...1....i
79d40 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 20 2a 20 30 2e 31 32 nt.len.=.(i.%.5.==.0).?.r.*.0.12
79d60 20 3a 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 64 6f 75 62 6c 65 20 74 5f 61 6e 67 .:.r.*.0.04;...0....double.t_ang
79d80 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 32 20 3a 20 30 2e 30 30 35 3b .=.(i.%.5.==.0).?.0.012.:.0.005;
79da0 00 00 00 4a 20 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c ...J....fill_tri(px,.a->w,.a->h,
79dc0 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 2d 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e .cx.+.cos(ang-t_ang)*r,.cy.+.sin
79de0 28 61 6e 67 2d 74 5f 61 6e 67 29 2a 72 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 (ang-t_ang)*r,...:.............c
79e00 78 20 2b 20 63 6f 73 28 61 6e 67 2b 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 x.+.cos(ang+t_ang)*r,.cy.+.sin(a
79e20 6e 67 2b 74 5f 61 6e 67 29 2a 72 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 ng+t_ang)*r,...G.............cx.
79e40 2b 20 63 6f 73 28 61 6e 67 29 2a 28 72 2d 6c 65 6e 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 +.cos(ang)*(r-len),.cy.+.sin(ang
79e60 29 2a 28 72 2d 6c 65 6e 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 )*(r-len),.0xFF000000);......}..
79e80 00 00 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f .....4..double.sa.=.tmv.tm_sec./
79ea0 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 .60.0.*.2.*.M_PI.-.M_PI_2;...J..
79ec0 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d double.ma.=.(tmv.tm_min.+.tmv.tm
79ee0 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d _sec./.60.0)./.60.0.*.2.*.M_PI.-
79f00 20 4d 5f 50 49 5f 32 3b 00 00 00 54 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 76 2e .M_PI_2;...T..double.ha.=.((tmv.
79f20 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 tm_hour.%.12).+.(tmv.tm_min./.60
79f40 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b .0))./.12.0.*.2.*.M_PI.-.M_PI_2;
79f60 00 00 00 00 00 00 00 4f 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e .......O..fill_tri(px,.a->w,.a->
79f80 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 2d 30 2e 31 32 29 2a 72 2a 30 2e 30 35 2c 20 63 79 20 h,.cx.+.cos(ha-0.12)*r*0.05,.cy.
79fa0 2b 20 73 69 6e 28 68 61 2d 30 2e 31 32 29 2a 72 2a 30 2e 30 35 2c 20 00 00 00 3f 20 20 20 20 20 +.sin(ha-0.12)*r*0.05,....?.....
79fc0 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 2b 30 2e 31 32 29 2a 72 2a 30 2e 30 35 2c 20 ......cx.+.cos(ha+0.12)*r*0.05,.
79fe0 63 79 20 2b 20 73 69 6e 28 68 61 2b 30 2e 31 32 29 2a 72 2a 30 2e 30 35 2c 20 00 00 00 41 20 20 cy.+.sin(ha+0.12)*r*0.05,....A..
7a000 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 29 2a 72 2a 30 2e 35 35 2c 20 63 79 .........cx.+.cos(ha)*r*0.55,.cy
7a020 20 2b 20 73 69 6e 28 68 61 29 2a 72 2a 30 2e 35 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 .+.sin(ha)*r*0.55,.0xFF000000);.
7a040 00 00 51 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 ..Q..fill_tri(px,.a->w,.a->h,.cx
7a060 20 2b 20 63 6f 73 28 6d 61 2d 30 2e 30 38 29 2a 72 2a 30 2e 30 33 35 2c 20 63 79 20 2b 20 73 69 .+.cos(ma-0.08)*r*0.035,.cy.+.si
7a080 6e 28 6d 61 2d 30 2e 30 38 29 2a 72 2a 30 2e 30 33 35 2c 20 00 00 00 41 20 20 20 20 20 20 20 20 n(ma-0.08)*r*0.035,....A........
7a0a0 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 2b 30 2e 30 38 29 2a 72 2a 30 2e 30 33 35 2c 20 63 79 ...cx.+.cos(ma+0.08)*r*0.035,.cy
7a0c0 20 2b 20 73 69 6e 28 6d 61 2b 30 2e 30 38 29 2a 72 2a 30 2e 30 33 35 2c 20 00 00 00 3f 20 20 20 .+.sin(ma+0.08)*r*0.035,....?...
7a0e0 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 2a 72 2a 30 2e 38 2c 20 63 79 20 2b ........cx.+.cos(ma)*r*0.8,.cy.+
7a100 20 73 69 6e 28 6d 61 29 2a 72 2a 30 2e 38 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 4e .sin(ma)*r*0.8,.0xFF000000);...N
7a120 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 ..fill_tri(px,.a->w,.a->h,.cx.+.
7a140 63 6f 73 28 73 61 2d 30 2e 30 35 29 2a 72 2a 30 2e 30 34 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 cos(sa-0.05)*r*0.04,.cy.+.sin(sa
7a160 2d 30 2e 30 35 29 2a 72 2a 30 2e 30 34 2c 00 00 00 3e 20 20 20 20 20 20 20 20 20 20 20 63 78 20 -0.05)*r*0.04,...>...........cx.
7a180 2b 20 63 6f 73 28 73 61 2b 30 2e 30 35 29 2a 72 2a 30 2e 30 34 2c 20 63 79 20 2b 20 73 69 6e 28 +.cos(sa+0.05)*r*0.04,.cy.+.sin(
7a1a0 73 61 2b 30 2e 30 35 29 2a 72 2a 30 2e 30 34 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 63 sa+0.05)*r*0.04,...?...........c
7a1c0 78 20 2b 20 63 6f 73 28 73 61 29 2a 72 2a 30 2e 38 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 29 2a x.+.cos(sa)*r*0.8,.cy.+.sin(sa)*
7a1e0 72 2a 30 2e 38 2c 20 30 78 46 46 46 46 30 30 30 30 29 3b 00 00 00 00 00 00 00 31 20 20 69 6e 74 r*0.8,.0xFFFF0000);.......1..int
7a200 20 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e 30 34 3b 20 69 66 20 28 68 75 62 5f 72 20 3c 20 34 .hub_r.=.r.*.0.04;.if.(hub_r.<.4
7a220 29 20 68 75 62 5f 72 20 3d 20 34 3b 00 00 00 58 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 ).hub_r.=.4;...X..for.(int.ir.=.
7a240 30 3b 20 69 72 20 3c 20 68 75 62 5f 72 20 2d 20 32 3b 20 69 72 2b 2b 29 20 63 69 72 63 6c 65 28 0;.ir.<.hub_r.-.2;.ir++).circle(
7a260 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 30 78 46 46 px,.a->w,.a->h,.cx,.cy,.ir,.0xFF
7a280 46 46 46 46 46 46 29 3b 00 00 00 34 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 FFFFFF);...4..circle(px,.a->w,.a
7a2a0 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 68 75 62 5f 72 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b ->h,.cx,.cy,.hub_r,.0xFF000000);
7a2c0 00 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 .......)..wl_surface_attach(a->w
7a2e0 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 63 s,.a->buf,.0,.0);...4..wl_surfac
7a300 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e e_damage_buffer(a->ws,.0,.0,.a->
7a320 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 w,.a->h);......wl_surface_commit
7a340 28 61 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b (a->ws);......a->redraw.=.false;
7a360 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 ....}.......Gstatic.void.xt_clos
7a380 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a e(void.*d,.struct.xdg_toplevel.*
7a3a0 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 60 73 74 61 74 69 63 20 76 xt).{.running.=.0;.}...`static.v
7a3c0 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 oid.xt_cfg(void.*d,.struct.xdg_t
7a3e0 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 oplevel.*xt,.int32_t.w,.int32_t.
7a400 68 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 h,.struct.wl_array.*s).{......st
7a420 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 ruct.app.*a.=.d;...3..if.(w.>.0.
7a440 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 &&.h.>.0.&&.(w.!=.a->w.||.h.!=.a
7a460 2d 3e 68 29 29 20 7b 00 00 00 39 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 20 61 2d 3e 68 20 3d 20 ->h)).{...9....a->w.=.w;.a->h.=.
7a480 68 3b 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 h;.destroy_buf(a);.a->redraw.=.t
7a4a0 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 rue;......}....}...Fstatic.void.
7a4c0 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 xs_cfg(void.*d,.struct.xdg_surfa
7a4e0 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 3b 20 20 ce.*xs,.uint32_t.serial).{...;..
7a500 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 struct.app.*a.=.d;.xdg_surface_a
7a520 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 29 20 20 61 ck_configure(xs,.serial);...)..a
7a540 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 20 61 2d 3e 72 65 64 72 61 77 20 3d ->configured.=.true;.a->redraw.=
7a560 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 60 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 .true;....}...`static.void.reg_g
7a580 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 lobal(void.*d,.struct.wl_registr
7a5a0 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 y.*r,.uint32_t.id,.const.char.*i
7a5c0 2c 20 75 69 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 ,.uint32_t.v).{......struct.app.
7a5e0 2a 61 20 3d 20 64 3b 00 00 00 62 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f *a.=.d;...b..if.(!strcmp(i,."wl_
7a600 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 compositor")).a->comp.=.wl_regis
7a620 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 try_bind(r,.id,.&wl_compositor_i
7a640 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 58 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 nterface,.4);...X..else.if.(!str
7a660 63 6d 70 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 cmp(i,."wl_shm")).a->shm.=.wl_re
7a680 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 gistry_bind(r,.id,.&wl_shm_inter
7a6a0 66 61 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 face,.1);...'..else.if.(!strcmp(
7a6c0 69 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 i,."xdg_wm_base")).{...?....a->w
7a6e0 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 m.=.wl_registry_bind(r,.id,.&xdg
7a700 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 73 _wm_base_interface,.1);...C....s
7a720 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c tatic.const.struct.xdg_wm_base_l
7a740 69 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 istener.l.=.{.ping.=.wm_ping};..
7a760 00 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 .+....xdg_wm_base_add_listener(a
7a780 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 ->wm,.&l,.a);......}....}.......
7a7a0 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 2b 20 20 73 74 72 75 63 74 20 61 70 .int.main(void).{...+..struct.ap
7a7c0 70 20 61 20 3d 20 7b 30 7d 3b 20 61 2e 77 20 3d 20 34 30 30 3b 20 61 2e 68 20 3d 20 34 30 30 3b p.a.=.{0};.a.w.=.400;.a.h.=.400;
7a7e0 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 ......signal(SIGINT,.on_sig);...
7a800 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c !..a.d.=.wl_display_connect(NULL
7a820 29 3b 00 00 00 15 20 20 69 66 20 28 21 61 2e 64 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 );......if.(!a.d).return.1;...'.
7a840 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 .a.reg.=.wl_display_get_registry
7a860 28 61 2e 64 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 (a.d);...G..static.const.struct.
7a880 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 wl_registry_listener.rl.=.{.glob
7a8a0 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 al.=.reg_global};...+..wl_regist
7a8c0 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b ry_add_listener(a.reg,.&rl,.&a);
7a8e0 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b ......wl_display_roundtrip(a.d);
7a900 00 00 00 2b 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 ...+..if.(!a.comp.||.!a.shm.||.!
7a920 61 2e 77 6d 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 a.wm).return.1;......a.ws.=.wl_c
7a940 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 ompositor_create_surface(a.comp)
7a960 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 ;...1..a.xs.=.xdg_wm_base_get_xd
7a980 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 61 74 g_surface(a.wm,.a.ws);...G..stat
7a9a0 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 ic.const.struct.xdg_surface_list
7a9c0 65 6e 65 72 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d ener.xsl.=.{.configure.=.xs_cfg}
7a9e0 3b 00 00 00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 ;...+..xdg_surface_add_listener(
7aa00 61 2e 78 73 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 a.xs,.&xsl,.&a);...(..a.xt.=.xdg
7aa20 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 5b _surface_get_toplevel(a.xs);...[
7aa40 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 ..static.const.struct.xdg_toplev
7aa60 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 el_listener.xtl.=.{.configure.=.
7aa80 78 74 5f 63 66 67 2c 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 xt_cfg,..close.=.xt_close};...,.
7aaa0 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c .xdg_toplevel_add_listener(a.xt,
7aac0 20 26 78 74 6c 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 .&xtl,.&a);...*..xdg_toplevel_se
7aae0 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 t_title(a.xt,."wlclock");......w
7ab00 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 02 20 20 00 00 00 l_surface_commit(a.ws);.........
7ab20 31 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 20 77 6c 5f 64 69 73 70 1..while.(!a.configured).wl_disp
7ab40 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 02 20 20 00 00 00 36 20 20 70 72 lay_dispatch(a.d);.........6..pr
7ab60 69 6e 74 66 28 22 57 61 79 6c 61 6e 64 20 73 75 72 66 61 63 65 20 73 75 63 63 65 73 73 66 75 6c intf("Wayland.surface.successful
7ab80 6c 79 20 63 6f 6e 66 69 67 75 72 65 64 5c 6e 22 29 3b 00 00 00 02 20 20 00 00 00 0d 20 20 72 65 ly.configured\n");............re
7aba0 6e 64 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 nder(&a);...9..int.tfd.=.timerfd
7abc0 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f _create(CLOCK_MONOTONIC,.TFD_CLO
7abe0 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c EXEC);...F..timerfd_settime(tfd,
7ac00 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c .0,.&(struct.itimerspec){{1,.0},
7ac20 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 20 20 63 68 61 72 20 62 75 66 66 65 .{1,.0}},.NULL);......char.buffe
7ac40 72 5b 31 30 30 5d 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 r[100];......while.(running).{..
7ac60 00 4f 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f .O....while.(wl_display_prepare_
7ac80 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 read(a.d).!=.0).wl_display_dispa
7aca0 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 tch_pending(a.d);........wl_disp
7acc0 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f lay_flush(a.d);...M....struct.po
7ace0 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 llfd.fds[2].=.{{wl_display_get_f
7ad00 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b d(a.d),.POLLIN},.{tfd,.POLLIN}};
7ad20 00 00 00 48 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 ...H....if.(poll(fds,.2,.-1).<.0
7ad40 29 20 7b 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b ).{.wl_display_cancel_read(a.d);
7ad60 20 63 6f 6e 74 69 6e 75 65 3b 20 7d 00 00 00 5f 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 .continue;.}..._....if.(fds[0].r
7ad80 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 events.&.POLLIN).wl_display_read
7ada0 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 20 65 6c 73 65 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 _events(a.d);.else.wl_display_ca
7adc0 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 ncel_read(a.d);...%....wl_displa
7ade0 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 20 20 20 y_dispatch_pending(a.d);..."....
7ae00 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 if.(fds[1].revents.&.POLLIN).{..
7ae20 00 37 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 5f 65 78 70 3b 20 72 65 61 64 28 74 66 64 .7......uint64_t.t_exp;.read(tfd
7ae40 2c 20 26 74 5f 65 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 78 70 29 29 3b 00 00 00 1e 20 20 20 ,.&t_exp,.sizeof(t_exp));.......
7ae60 20 20 20 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 2c 20 ...time_t.cli.=.time(NULL);...,.
7ae80 20 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 5f 73 74 72 75 63 74 20 3d 20 6c 6f 63 61 6c .....struct.tm.*t_struct.=.local
7aea0 74 69 6d 65 28 26 63 6c 69 29 3b 00 00 00 49 20 20 20 20 20 20 73 74 72 66 74 69 6d 65 28 62 75 time(&cli);...I......strftime(bu
7aec0 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 ffer,.sizeof(buffer),."%d-%m-%Y.
7aee0 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c 20 74 5f 73 74 72 75 63 74 29 3b 00 00 00 35 20 20 20 20 %I:%M:%S.%p",.t_struct);...5....
7af00 20 20 70 72 69 6e 74 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 73 22 2c 20 62 75 66 66 65 72 29 ..printf("\rTime.is.%s",.buffer)
7af20 3b 20 66 66 6c 75 73 68 28 73 74 64 6f 75 74 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 64 ;.fflush(stdout);..........a.red
7af40 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1d 20 20 20 20 69 66 20 28 raw.=.true;........}........if.(
7af60 61 2e 72 65 64 72 61 77 29 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 48 a.redraw).render(&a);......}...H
7af80 20 20 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b 20 63 6c 6f 73 65 28 74 66 64 29 3b 20 64 65 73 74 ..printf("\n");.close(tfd);.dest
7afa0 72 6f 79 5f 62 75 66 28 26 61 29 3b 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 roy_buf(&a);.wl_display_disconne
7afc0 63 74 28 61 2e 64 29 3b 35 81 f5 18 00 00 00 00 19 00 00 00 1b 00 00 00 c9 00 00 00 2c 00 00 00 ct(a.d);5...................,...
7afe0 0b 01 00 00 01 00 00 00 22 02 00 00 00 00 00 00 f5 1d 00 00 00 00 00 00 2f 20 00 00 00 00 00 00 ........".............../.......
7b000 35 81 5f d0 00 00 00 ac 00 00 00 ae 00 00 00 00 00 00 00 00 00 00 00 ad 00 00 01 01 00 00 00 05 5._.............................
7b020 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b180 00 00 00 00 00 00 69 9d aa 32 04 01 00 00 00 00 00 f5 18 00 00 01 00 00 00 01 02 00 00 01 27 00 ......i..2....................'.
7b1a0 00 00 01 00 00 00 36 20 20 70 72 69 6e 74 66 28 22 57 61 79 6c 61 6e 64 20 73 75 72 66 61 63 65 ......6..printf("Wayland.surface
7b1c0 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 63 6f 6e 66 69 67 75 72 65 64 5c 6e 22 29 3b 35 81 f5 .successfully.configured\n");5..
7b1e0 18 00 00 00 00 00 01 00 00 05 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 0f 1e 00 ................................
7b200 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 ad 00 00 00 .....................5._........
7b220 af 00 00 00 00 00 00 00 00 00 00 00 ae 00 00 01 01 00 00 00 02 00 00 00 00 ff ff ff ff 00 01 00 ................................
7b240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d aa 33 04 ...........................i..3.
7b3a0 01 00 00 00 00 00 f5 18 00 00 01 00 00 00 01 02 00 00 01 27 00 00 00 01 00 00 00 33 20 20 70 72 ...................'.......3..pr
7b3c0 69 28 22 57 61 79 6c 61 6e 64 20 73 75 72 66 61 63 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 i("Wayland.surface.successfully.
7b3e0 63 6f 6e 66 69 67 75 72 65 64 5c 6e 22 29 3b 35 81 f5 18 00 00 00 00 00 01 00 00 02 00 00 00 00 configured\n");5................
7b400 00 00 00 03 00 00 00 00 00 00 00 04 00 00 00 0c 1e 00 00 00 00 00 00 03 00 00 00 00 00 00 00 04 ................................
7b420 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 ae 00 00 00 b0 00 00 00 00 00 00 00 00 00 00 00 af 00 .......5._......................
7b440 00 01 01 00 00 00 2f 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....../.........................
7b460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d aa 35 04 01 00 00 00 00 00 f5 18 00 00 01 00 00 00 .............i..5...............
7b5c0 01 02 00 00 01 27 00 00 00 01 00 00 00 34 20 20 70 75 74 73 28 22 57 61 79 6c 61 6e 64 20 73 75 .....'.......4..puts("Wayland.su
7b5e0 72 66 61 63 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 63 6f 6e 66 69 67 75 72 65 64 5c 6e 22 rface.successfully.configured\n"
7b600 29 3b 35 81 f5 18 00 00 00 00 00 01 00 00 2f 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 );5.........../.................
7b620 00 00 39 1e 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 ..9.......................5._...
7b640 00 af 00 00 00 b1 00 00 00 00 00 00 00 00 00 00 00 b0 00 00 01 01 00 00 00 2f 00 00 00 00 ff ff ........................./......
7b660 ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b7c0 69 9d aa 36 04 01 00 00 00 3b 00 f5 18 00 00 01 00 00 00 01 02 00 00 01 27 00 00 00 01 00 00 00 i..6.....;..............'.......
7b7e0 33 20 20 70 75 74 73 28 22 57 61 79 6c 61 6e 64 20 73 75 72 66 61 63 65 20 73 75 63 63 65 73 73 3..puts("Wayland.surface.success
7b800 66 75 6c 6c 79 20 63 6f 6e 66 69 67 75 72 65 64 6e 22 29 3b 35 81 f5 18 00 00 00 00 00 01 00 00 fully.configuredn");5...........
7b820 2f 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 39 1e 00 00 00 00 00 00 01 00 00 00 /...................9...........
7b840 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 b0 00 00 00 b2 00 00 00 00 00 00 00 00 ............5._.................
7b860 00 00 00 b1 00 00 01 01 00 00 00 08 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 ................................
7b880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d aa 3e 04 01 00 00 00 3c 00 f5 18 00 ..................i..>.....<....
7b9e0 00 01 00 00 00 01 02 00 00 01 27 00 00 00 01 00 00 00 32 20 20 70 75 74 73 28 22 57 61 79 6c 61 ..........'.......2..puts("Wayla
7ba00 6e 64 20 73 75 72 66 61 63 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 63 6f 6e 66 69 67 75 72 nd.surface.successfully.configur
7ba20 65 64 22 29 3b 35 81 f5 18 00 00 00 00 00 01 00 00 08 00 00 00 00 00 00 00 01 00 00 00 00 00 00 ed");5..........................
7ba40 00 01 00 00 00 12 1e 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f .............................5._
7ba60 d0 00 00 00 b1 00 00 00 b3 00 00 00 00 00 00 00 00 00 00 00 b2 00 00 00 01 00 00 00 00 00 00 00 ................................
7ba80 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7baa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7bac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7bae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7bb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7bb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7bb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7bb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7bb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7bba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7bbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7bbe0 00 00 00 69 9d aa fd 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 27 ...i...........................'
7bc00 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 ....#define._POSIX_C_SOURCE.2008
7bc20 30 39 4c 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 09L...&#include."xdg-shell-clien
7bc40 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c t-protocol.h"....#include.<fcntl
7bc60 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 .h>....#include.<math.h>....#inc
7bc80 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 lude.<poll.h>....#include.<signa
7bca0 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 l.h>....#include.<stdbool.h>....
7bcc0 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 #include.<stdint.h>....#include.
7bce0 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e <stdio.h>....#include.<stdlib.h>
7bd00 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c ....#include.<string.h>....#incl
7bd20 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 ude.<sys/mman.h>....#include.<sy
7bd40 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 s/timerfd.h>....#include.<time.h
7bd60 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 >....#include.<unistd.h>....#inc
7bd80 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 lude.<wayland-client.h>........#
7bda0 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 ifndef.M_PI...##define.M_PI.3.14
7bdc0 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 159265358979323846....#endif....
7bde0 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 #ifndef.M_PI_2...%#define.M_PI_2
7be00 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 .1.57079632679489661923....#endi
7be20 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f f.......)static.volatile.sig_ato
7be40 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 mic_t.running.=.1;....static.voi
7be60 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 d.on_sig(int.s).{......(void)s;.
7be80 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 .....running.=.0;....}........st
7bea0 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 ruct.app.{......struct.wl_displa
7bec0 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 y.*d;......struct.wl_registry.*r
7bee0 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 eg;......struct.wl_compositor.*c
7bf00 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 omp;......struct.wl_shm.*shm;...
7bf20 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 ...struct.xdg_wm_base.*wm;......
7bf40 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 struct.wl_surface.*ws;......stru
7bf60 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 ct.xdg_surface.*xs;......struct.
7bf80 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 xdg_toplevel.*xt;......void.*pix
7bfa0 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b els;......struct.wl_buffer.*buf;
7bfc0 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 62 77 2c 20 62 68 3b ......int.w,.h;......int.bw,.bh;
7bfe0 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c ......bool.configured;......bool
7c000 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 .redraw;....};.......Jstatic.voi
7c020 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 d.wm_ping(void.*data,.struct.xdg
7c040 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b _wm_base.*wm,.uint32_t.serial).{
7c060 00 00 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 ......xdg_wm_base_pong(wm,.seria
7c080 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 l);....}.......$static.int.creat
7c0a0 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 e_shm(size_t.size).{...#..char.t
7c0c0 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 [].=."/tmp/wlclock-XXXXXX";.....
7c0e0 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 0d 20 20 69 66 20 28 66 .int.fd.=.mkstemp(t);......if.(f
7c100 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 d.<.0)........exit(1);......unli
7c120 6e 6b 28 74 29 3b 00 00 00 1e 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 nk(t);......if.(ftruncate(fd,.si
7c140 7a 65 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 ze).<.0)........exit(1);......re
7c160 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 turn.fd;....}.......(static.void
7c180 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 .destroy_buf(struct.app.*a).{...
7c1a0 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 ...if.(!a->buf)........return;..
7c1c0 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 .*..size_t.size.=.(size_t)a->bw.
7c1e0 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 *.a->bh.*.4;......wl_buffer_dest
7c200 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 roy(a->buf);......munmap(a->pixe
7c220 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 ls,.size);......a->buf.=.NULL;..
7c240 00 13 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 ....a->pixels.=.NULL;....}......
7c260 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 .&static.void.alloc_buf(struct.a
7c280 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 pp.*a).{......destroy_buf(a);...
7c2a0 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 (..size_t.size.=.(size_t)a->w.*.
7c2c0 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 a->h.*.4;......int.fd.=.create_s
7c2e0 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 hm(size);...J..a->pixels.=.mmap(
7c300 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 NULL,.size,.PROT_READ.|.PROT_WRI
7c320 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1e 20 20 69 66 20 TE,.MAP_SHARED,.fd,.0);......if.
7c340 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 00 00 00 0c 20 20 20 (a->pixels.==.MAP_FAILED).......
7c360 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f .exit(1);...B..struct.wl_shm_poo
7c380 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e l.*pool.=.wl_shm_create_pool(a->
7c3a0 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c shm,.fd,.size);...C..a->buf.=.wl
7c3c0 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c _shm_pool_create_buffer(pool,.0,
7c3e0 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d 20 20 20 20 20 20 .a->w,.a->h,.a->w.*.4,...=......
7c400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 ...............................W
7c420 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f L_SHM_FORMAT_ARGB8888);......wl_
7c440 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f shm_pool_destroy(pool);......clo
7c460 73 65 28 66 64 29 3b 00 00 00 0f 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b 00 00 00 0f 20 20 se(fd);......a->bw.=.a->w;......
7c480 61 2d 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 45 73 74 61 74 69 63 a->bh.=.a->h;....}.......Estatic
7c4a0 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 .void.circle(uint32_t.*px,.int.w
7c4c0 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 ,.int.h,.int.cx,.int.cy,.int.r,.
7c4e0 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 ......................uint32_t.c
7c500 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 ).{..."..int.x.=.0,.y.=.r,.d.=.3
7c520 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 .-.2.*.r;......while.(y.>=.x).{.
7c540 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 ..H....int.p[8][2].=.{{cx.+.x,.c
7c560 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 y.+.y},.{cx.-.x,.cy.+.y},.{cx.+.
7c580 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 x,.cy.-.y},...H.................
7c5a0 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 ..{cx.-.x,.cy.-.y},.{cx.+.y,.cy.
7c5c0 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 +.x},.{cx.-.y,.cy.+.x},...7.....
7c5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 ..............{cx.+.y,.cy.-.x},.
7c600 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 {cx.-.y,.cy.-.x}};........for.(i
7c620 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 nt.i.=.0;.i.<.8;.i++)...E......i
7c640 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 f.(p[i][0].>=.0.&&.p[i][0].<.w.&
7c660 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 &.p[i][1].>=.0.&&.p[i][1].<.h)..
7c680 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b .&........px[p[i][1].*.w.+.p[i][
7c6a0 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 0]].=.c;........if.(d.>.0).{....
7c6c0 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a ......d.+=.4.*.(x.-.y).+.10;....
7c6e0 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 ......y--;........}.else........
7c700 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 ..d.+=.4.*.x.+.6;........x++;...
7c720 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c ...}....}.......Pstatic.void.fil
7c740 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 l_tri(uint32_t.*px,.int.w,.int.h
7c760 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 ,.int.x0,.int.y0,.int.x1,.int.y1
7c780 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 78 32 ,...2.....................int.x2
7c7a0 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 6e 74 ,.int.y2,.uint32_t.c).{...B..int
7c7c0 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 79 30 .min_y.=.y0.<.y1.?.(y0.<.y2.?.y0
7c7e0 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 .:.y2).:.(y1.<.y2.?.y1.:.y2);...
7c800 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e 20 79 B..int.max_y.=.y0.>.y1.?.(y0.>.y
7c820 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 2.?.y0.:.y2).:.(y1.>.y2.?.y1.:.y
7c840 32 29 3b 00 00 00 10 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 00 00 00 0e 20 20 20 20 6d 2);......if.(min_y.<.0)........m
7c860 69 6e 5f 79 20 3d 20 30 3b 00 00 00 11 20 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 00 00 in_y.=.0;......if.(max_y.>=.h)..
7c880 00 12 20 20 20 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 ......max_y.=.h.-.1;...(..for.(i
7c8a0 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b nt.y.=.min_y;.y.<=.max_y;.y++).{
7c8c0 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d ........int.x_start.=.w,.x_end.=
7c8e0 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 .0;...3....int.xs[3].=.{x0,.x1,.
7c900 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 15 20 20 x2},.ys[3].=.{y0,.y1,.y2};......
7c920 20 20 62 6f 6f 6c 20 68 69 74 20 3d 20 66 61 6c 73 65 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 ..bool.hit.=.false;...!....for.(
7c940 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 int.i.=.0;.i.<.3;.i++).{........
7c960 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 ..int.j.=.(i.+.1).%.3;...C......
7c980 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c if.((ys[i].<=.y.&&.ys[j].>.y).||
7c9a0 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 .(ys[j].<=.y.&&.ys[i].>.y)).{...
7c9c0 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 H........int.x.=.xs[i].+.(y.-.ys
7c9e0 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 [i]).*.(xs[j].-.xs[i])./.(ys[j].
7ca00 2d 20 79 73 5b 69 5d 29 3b 00 00 00 18 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 -.ys[i]);............if.(x.<.x_s
7ca20 74 61 72 74 29 00 00 00 16 20 20 20 20 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 tart)..............x_start.=.x;.
7ca40 00 00 16 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 00 00 00 14 20 20 20 ...........if.(x.>.x_end).......
7ca60 20 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 13 20 20 20 20 20 20 20 20 68 69 74 .......x_end.=.x;............hit
7ca80 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 0e .=.true;..........}........}....
7caa0 20 20 20 20 69 66 20 28 68 69 74 29 20 7b 00 00 00 16 20 20 20 20 20 20 69 66 20 28 78 5f 73 74 ....if.(hit).{..........if.(x_st
7cac0 61 72 74 20 3c 20 30 29 00 00 00 14 20 20 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 30 3b art.<.0)............x_start.=.0;
7cae0 00 00 00 15 20 20 20 20 20 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 00 00 00 16 20 20 20 ..........if.(x_end.>=.w).......
7cb00 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 2c 20 20 20 20 20 20 66 6f 72 .....x_end.=.w.-.1;...,......for
7cb20 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 .(int.x.=.x_start;.x.<=.x_end;.x
7cb40 2b 2b 29 00 00 00 1a 20 20 20 20 20 20 20 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 ++)............px[y.*.w.+.x].=.c
7cb60 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 ;........}......}....}.......#st
7cb80 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 atic.void.render(struct.app.*a).
7cba0 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e {.../..if.(!a->configured.||.a->
7cbc0 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 w.<=.0.||.a->h.<=.0)........retu
7cbe0 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 20 61 6c 6c rn;......if.(!a->buf)........all
7cc00 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 oc_buf(a);......uint32_t.*px.=.a
7cc20 2d 3e 70 69 78 65 6c 73 3b 00 00 00 24 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 30 78 46 46 2c 20 ->pixels;...$..memset(px,.0xFF,.
7cc40 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 a->w.*.a->h.*.4);......time_t.tt
7cc60 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d .=.time(NULL);......struct.tm.tm
7cc80 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 v;......localtime_r(&tt,.&tmv);.
7cca0 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e ..#..int.cx.=.a->w./.2,.cy.=.a->
7ccc0 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 h./.2;.../..int.r.=.(a->w.<.a->h
7cce0 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 .?.a->w.:.a->h)./.2.-.10;......i
7cd00 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 20 20 f.(r.<.5)........r.=.5;.........
7cd20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 .for.(int.i.=.0;.i.<.60;.i++).{.
7cd40 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 .......double.ang.=.i./.60.0.*.2
7cd60 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 31 20 20 20 20 69 6e 74 20 6c 65 6e .*.M_PI.-.M_PI_2;...1....int.len
7cd80 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 20 2a 20 30 2e 31 32 20 3a 20 72 20 2a .=.(i.%.5.==.0).?.r.*.0.12.:.r.*
7cda0 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 64 6f 75 62 6c 65 20 74 5f 61 6e 67 20 3d 20 28 69 20 .0.04;...0....double.t_ang.=.(i.
7cdc0 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 32 20 3a 20 30 2e 30 30 35 3b 00 00 00 37 20 20 %.5.==.0).?.0.012.:.0.005;...7..
7cde0 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 ..fill_tri(px,.a->w,.a->h,.cx.+.
7ce00 63 6f 73 28 61 6e 67 20 2d 20 74 5f 61 6e 67 29 20 2a 20 72 2c 00 00 00 42 20 20 20 20 20 20 20 cos(ang.-.t_ang).*.r,...B.......
7ce20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2d 20 74 5f 61 6e 67 29 20 2a 20 72 2c ......cy.+.sin(ang.-.t_ang).*.r,
7ce40 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 20 2b 20 74 5f 61 6e 67 29 20 2a 20 72 2c 00 00 00 42 20 .cx.+.cos(ang.+.t_ang).*.r,...B.
7ce60 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2b 20 74 5f 61 6e 67 ............cy.+.sin(ang.+.t_ang
7ce80 29 20 2a 20 72 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 ).*.r,.cx.+.cos(ang).*.(r.-.len)
7cea0 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 ,...4.............cy.+.sin(ang).
7cec0 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d *.(r.-.len),.0xFF000000);......}
7cee0 00 00 00 00 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 .......4..double.sa.=.tmv.tm_sec
7cf00 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a ./.60.0.*.2.*.M_PI.-.M_PI_2;...J
7cf20 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e ..double.ma.=.(tmv.tm_min.+.tmv.
7cf40 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 tm_sec./.60.0)./.60.0.*.2.*.M_PI
7cf60 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 4c 20 .-.M_PI_2;......double.ha.=...L.
7cf80 20 20 20 20 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 2e .....((tmv.tm_hour.%.12).+.(tmv.
7cfa0 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 tm_min./.60.0))./.12.0.*.2.*.M_P
7cfc0 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 3a 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 I.-.M_PI_2;.......:..fill_tri(px
7cfe0 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2d 20 30 2e 31 32 ,.a->w,.a->h,.cx.+.cos(ha.-.0.12
7d000 29 20 2a 20 72 20 2a 20 30 2e 30 35 2c 00 00 00 4a 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b ).*.r.*.0.05,...J...........cy.+
7d020 20 73 69 6e 28 68 61 20 2d 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 30 2e 30 35 2c 20 63 78 20 2b .sin(ha.-.0.12).*.r.*.0.05,.cx.+
7d040 20 63 6f 73 28 68 61 20 2b 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 30 2e 30 35 2c 00 00 00 43 20 .cos(ha.+.0.12).*.r.*.0.05,...C.
7d060 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2b 20 30 2e 31 32 29 20 2a 20 ..........cy.+.sin(ha.+.0.12).*.
7d080 72 20 2a 20 30 2e 30 35 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 30 2e 35 r.*.0.05,.cx.+.cos(ha).*.r.*.0.5
7d0a0 35 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 29 20 2a 20 5,...0...........cy.+.sin(ha).*.
7d0c0 72 20 2a 20 30 2e 35 35 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 00 00 3b 20 20 66 69 6c 6c r.*.0.55,.0xFF000000);...;..fill
7d0e0 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 _tri(px,.a->w,.a->h,.cx.+.cos(ma
7d100 20 2d 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 30 2e 30 33 35 2c 00 00 00 4c 20 20 20 20 20 20 20 .-.0.08).*.r.*.0.035,...L.......
7d120 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2d 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 30 2e ....cy.+.sin(ma.-.0.08).*.r.*.0.
7d140 30 33 35 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2b 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 30 035,.cx.+.cos(ma.+.0.08).*.r.*.0
7d160 2e 30 33 35 2c 00 00 00 43 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 .035,...C...........cy.+.sin(ma.
7d180 2b 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 30 2e 30 33 35 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 +.0.08).*.r.*.0.035,.cx.+.cos(ma
7d1a0 29 20 2a 20 72 20 2a 20 30 2e 38 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 ).*.r.*.0.8,.../...........cy.+.
7d1c0 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 30 2e 38 2c 20 30 78 46 46 30 30 30 30 30 30 29 3b 00 sin(ma).*.r.*.0.8,.0xFF000000);.
7d1e0 00 00 3a 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 ..:..fill_tri(px,.a->w,.a->h,.cx
7d200 20 2b 20 63 6f 73 28 73 61 20 2d 20 30 2e 30 35 29 20 2a 20 72 20 2a 20 30 2e 30 34 2c 00 00 00 .+.cos(sa.-.0.05).*.r.*.0.04,...
7d220 4a 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 73 61 20 2d 20 30 2e 30 35 29 20 J...........cy.+.sin(sa.-.0.05).
7d240 2a 20 72 20 2a 20 30 2e 30 34 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 20 2b 20 30 2e 30 35 29 20 *.r.*.0.04,.cx.+.cos(sa.+.0.05).
7d260 2a 20 72 20 2a 20 30 2e 30 34 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 *.r.*.0.04,...B...........cy.+.s
7d280 69 6e 28 73 61 20 2b 20 30 2e 30 35 29 20 2a 20 72 20 2a 20 30 2e 30 34 2c 20 63 78 20 2b 20 63 in(sa.+.0.05).*.r.*.0.04,.cx.+.c
7d2a0 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 38 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 os(sa).*.r.*.0.8,.../...........
7d2c0 63 79 20 2b 20 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 30 2e 38 2c 20 30 78 46 46 46 46 30 30 cy.+.sin(sa).*.r.*.0.8,.0xFFFF00
7d2e0 30 30 29 3b 00 00 00 00 00 00 00 17 20 20 69 6e 74 20 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e 00);..........int.hub_r.=.r.*.0.
7d300 30 34 3b 00 00 00 10 20 20 69 66 20 28 68 75 62 5f 72 20 3c 20 34 29 00 00 00 0e 20 20 20 20 68 04;......if.(hub_r.<.4)........h
7d320 75 62 5f 72 20 3d 20 34 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 ub_r.=.4;...(..for.(int.ir.=.0;.
7d340 69 72 20 3c 20 68 75 62 5f 72 20 2d 20 32 3b 20 69 72 2b 2b 29 00 00 00 33 20 20 20 20 63 69 72 ir.<.hub_r.-.2;.ir++)...3....cir
7d360 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 cle(px,.a->w,.a->h,.cx,.cy,.ir,.
7d380 30 78 46 46 46 46 46 46 46 46 29 3b 00 00 00 34 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 0xFFFFFFFF);...4..circle(px,.a->
7d3a0 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 68 75 62 5f 72 2c 20 30 78 46 46 30 30 30 30 w,.a->h,.cx,.cy,.hub_r,.0xFF0000
7d3c0 30 30 29 3b 00 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 00);.......)..wl_surface_attach(
7d3e0 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 a->ws,.a->buf,.0,.0);...4..wl_su
7d400 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c rface_damage_buffer(a->ws,.0,.0,
7d420 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f .a->w,.a->h);......wl_surface_co
7d440 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 mmit(a->ws);......a->redraw.=.fa
7d460 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f lse;....}.......Gstatic.void.xt_
7d480 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 close(void.*d,.struct.xdg_toplev
7d4a0 65 6c 20 2a 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 4a 73 74 61 74 el.*xt).{.running.=.0;.}...Jstat
7d4c0 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 ic.void.xt_cfg(void.*d,.struct.x
7d4e0 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 dg_toplevel.*xt,.int32_t.w,.int3
7d500 32 5f 74 20 68 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 2_t.h,...(...................str
7d520 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 uct.wl_array.*s).{......struct.a
7d540 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e pp.*a.=.d;...3..if.(w.>.0.&&.h.>
7d560 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 .0.&&.(w.!=.a->w.||.h.!=.a->h)).
7d580 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d {........a->w.=.w;........a->h.=
7d5a0 20 68 3b 00 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 15 20 20 .h;........destroy_buf(a);......
7d5c0 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 ..a->redraw.=.true;......}....}.
7d5e0 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 ..Fstatic.void.xs_cfg(void.*d,.s
7d600 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 truct.xdg_surface.*xs,.uint32_t.
7d620 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 serial).{......struct.app.*a.=.d
7d640 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 ;...(..xdg_surface_ack_configure
7d660 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 (xs,.serial);......a->configured
7d680 20 3d 20 74 72 75 65 3b 00 00 00 13 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 .=.true;......a->redraw.=.true;.
7d6a0 00 00 01 7d 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 ...}...Cstatic.void.reg_global(v
7d6c0 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 oid.*d,.struct.wl_registry.*r,.u
7d6e0 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 int32_t.id,...3.................
7d700 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c 20 75 69 6e 74 33 32 5f 74 20 76 29 ......const.char.*i,.uint32_t.v)
7d720 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 22 20 20 .{......struct.app.*a.=.d;..."..
7d740 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 if.(!strcmp(i,."wl_compositor"))
7d760 00 00 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 ...C....a->comp.=.wl_registry_bi
7d780 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 nd(r,.id,.&wl_compositor_interfa
7d7a0 63 65 2c 20 34 29 3b 00 00 00 20 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c ce,.4);......else.if.(!strcmp(i,
7d7c0 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 ."wl_shm"))...;....a->shm.=.wl_r
7d7e0 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 egistry_bind(r,.id,.&wl_shm_inte
7d800 72 66 61 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 rface,.1);...'..else.if.(!strcmp
7d820 28 69 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e (i,."xdg_wm_base")).{...?....a->
7d840 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 wm.=.wl_registry_bind(r,.id,.&xd
7d860 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 g_wm_base_interface,.1);...C....
7d880 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f static.const.struct.xdg_wm_base_
7d8a0 6c 69 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 listener.l.=.{.ping.=.wm_ping};.
7d8c0 00 00 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 ..+....xdg_wm_base_add_listener(
7d8e0 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 a->wm,.&l,.a);......}....}......
7d900 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 73 74 72 75 63 74 20 61 ..int.main(void).{......struct.a
7d920 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d 20 34 30 30 3b 00 00 00 0c 20 pp.a.=.{0};......a.w.=.400;.....
7d940 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 .a.h.=.400;......signal(SIGINT,.
7d960 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 on_sig);...!..a.d.=.wl_display_c
7d980 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 0b 20 20 69 66 20 28 21 61 2e 64 29 00 00 00 0d onnect(NULL);......if.(!a.d)....
7d9a0 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 ....return.1;...'..a.reg.=.wl_di
7d9c0 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 47 20 20 73 74 splay_get_registry(a.d);...G..st
7d9e0 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 atic.const.struct.wl_registry_li
7da00 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 stener.rl.=.{.global.=.reg_globa
7da20 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 l};...+..wl_registry_add_listene
7da40 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c r(a.reg,.&rl,.&a);......wl_displ
7da60 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 21 20 20 69 66 20 28 21 61 2e 63 ay_roundtrip(a.d);...!..if.(!a.c
7da80 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 00 00 00 0d 20 20 20 20 72 omp.||.!a.shm.||.!a.wm)........r
7daa0 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 eturn.1;......a.ws.=.wl_composit
7dac0 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 or_create_surface(a.comp);...1..
7dae0 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 a.xs.=.xdg_wm_base_get_xdg_surfa
7db00 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 ce(a.wm,.a.ws);...G..static.cons
7db20 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 t.struct.xdg_surface_listener.xs
7db40 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 2b 20 20 l.=.{.configure.=.xs_cfg};...+..
7db60 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 xdg_surface_add_listener(a.xs,.&
7db80 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 xsl,.&a);...(..a.xt.=.xdg_surfac
7dba0 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 e_get_toplevel(a.xs);...G..stati
7dbc0 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 c.const.struct.xdg_toplevel_list
7dbe0 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c ener.xtl.=.{.configure.=.xt_cfg,
7dc00 00 00 00 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...F............................
7dc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 ........................close.=.
7dc40 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 xt_close};...,..xdg_toplevel_add
7dc60 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 26 61 29 3b 00 00 00 2a 20 20 _listener(a.xt,.&xtl,.&a);...*..
7dc80 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c xdg_toplevel_set_title(a.xt,."wl
7dca0 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 clock");......wl_surface_commit(
7dcc0 61 2e 77 73 29 3b 00 00 00 00 00 00 00 17 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 a.ws);..........while.(!a.config
7dce0 75 72 65 64 29 00 00 00 1d 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 ured)........wl_display_dispatch
7dd00 28 61 2e 64 29 3b 00 00 00 00 00 00 00 32 20 20 70 75 74 73 28 22 77 61 79 6c 61 6e 64 20 73 75 (a.d);.......2..puts("wayland.su
7dd20 72 66 61 63 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 63 6f 6e 66 69 67 75 72 65 64 22 29 3b rface.successfully.configured");
7dd40 00 00 00 00 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 ..........render(&a);...9..int.t
7dd60 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f fd.=.timerfd_create(CLOCK_MONOTO
7dd80 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f NIC,.TFD_CLOEXEC);...F..timerfd_
7dda0 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 settime(tfd,.0,.&(struct.itimers
7ddc0 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 pec){{1,.0},.{1,.0}},.NULL);....
7dde0 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 ..char.buffer[100];......while.(
7de00 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 running).{...-....while.(wl_disp
7de20 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 00 00 00 27 20 lay_prepare_read(a.d).!=.0)...'.
7de40 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 .....wl_display_dispatch_pending
7de60 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 (a.d);........wl_display_flush(a
7de80 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d .d);...M....struct.pollfd.fds[2]
7dea0 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c .=.{{wl_display_get_fd(a.d),.POL
7dec0 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1f 20 20 20 20 69 66 20 LIN},.{tfd,.POLLIN}};........if.
7dee0 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 00 00 00 22 20 20 20 20 (poll(fds,.2,.-1).<.0).{..."....
7df00 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 ..wl_display_cancel_read(a.d);..
7df20 00 0f 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 20 20 20 ........continue;........}......
7df40 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 00 00 ..if.(fds[0].revents.&.POLLIN)..
7df60 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 ."......wl_display_read_events(a
7df80 2e 64 29 3b 00 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 .d);........else..."......wl_dis
7dfa0 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 6c play_cancel_read(a.d);...%....wl
7dfc0 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 _display_dispatch_pending(a.d);.
7dfe0 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c .."....if.(fds[1].revents.&.POLL
7e000 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 5f 65 78 70 3b 00 00 IN).{..........uint64_t.t_exp;..
7e020 00 27 20 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 70 2c 20 73 69 7a 65 6f 66 .'......read(tfd,.&t_exp,.sizeof
7e040 28 74 5f 65 78 70 29 29 3b 00 00 00 1e 20 20 20 20 20 20 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 (t_exp));..........time_t.cli.=.
7e060 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a time(NULL);...,......struct.tm.*
7e080 74 5f 73 74 72 75 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 3b 00 00 00 49 20 t_struct.=.localtime(&cli);...I.
7e0a0 20 20 20 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 .....strftime(buffer,.sizeof(buf
7e0c0 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c 20 74 5f fer),."%d-%m-%Y.%I:%M:%S.%p",.t_
7e0e0 73 74 72 75 63 74 29 3b 00 00 00 25 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 5c 72 54 69 6d 65 struct);...%......printf("\rTime
7e100 20 69 73 20 25 73 22 2c 20 62 75 66 66 65 72 29 3b 00 00 00 15 20 20 20 20 20 20 66 66 6c 75 73 .is.%s",.buffer);..........fflus
7e120 68 28 73 74 64 6f 75 74 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 20 3d 20 74 h(stdout);..........a.redraw.=.t
7e140 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 11 20 20 20 20 69 66 20 28 61 2e 72 65 64 72 61 rue;........}........if.(a.redra
7e160 77 29 00 00 00 11 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 w)..........render(&a);......}..
7e180 00 0f 20 20 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b 00 00 00 0d 20 20 63 6c 6f 73 65 28 74 66 64 ....printf("\n");......close(tfd
7e1a0 29 3b 00 00 00 12 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b 00 00 00 1d 20 20 77 6c );......destroy_buf(&a);......wl
7e1c0 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 _display_disconnect(a.d);......r
7e1e0 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 27 01 00 eturn.0;....}5...............'..
7e200 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 78 22 00 00 00 00 00 00 01 00 00 .....................x".........
7e220 00 00 00 00 00 35 81 5f d0 00 00 00 b2 00 00 00 b4 00 00 00 00 00 00 00 00 00 00 00 b3 00 00 00 .....5._........................
7e240 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e3a0 00 00 00 00 00 00 00 00 00 00 00 69 9d aa fe 04 01 00 00 00 00 00 f5 18 00 00 00 f7 00 00 00 00 ...........i....................
7e3c0 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 f8 00 00 00 00 00 00 00 00 00 00 00 00 f5 ............}...................
7e3e0 18 00 00 00 f3 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0f 20 20 20 20 69 66 20 28 61 2e 72 .........................if.(a.r
7e400 65 64 72 61 f5 18 00 00 00 f4 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 e3 00 00 00 00 edra............................
7e420 00 00 00 00 00 00 00 01 00 00 00 03 20 20 63 f5 18 00 00 00 e4 00 00 00 00 00 00 00 00 00 00 00 ..............c.................
7e440 00 f5 18 00 00 00 d3 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 11 20 20 77 6c 5f 64 69 73 70 .........................wl_disp
7e460 6c 61 79 5f 72 6f 75 6e f5 18 00 00 00 d4 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 c4 lay_roun........................
7e480 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1b 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 ..................else.if.(!strc
7e4a0 6d 70 28 69 2c 20 22 78 64 67 5f f5 18 00 00 00 c5 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 mp(i,."xdg_.....................
7e4c0 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 4d 73 74 61 74 69 63 20 76 6f 69 64 20 72 ..................Mstatic.void.r
7e4e0 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 eg_global(void.*d,.struct.wl_reg
7e500 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 istry.*r,.uint32_t.id,.const.cha
7e520 f5 18 00 00 00 c1 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 ba 00 00 00 00 00 00 00 00 ................................
7e540 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 00 bb 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 ................................
7e560 00 a8 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1c 20 20 20 20 20 20 20 20 20 20 20 63 78 20 .............................cx.
7e580 2b 20 63 6f 73 28 73 61 2b 30 2e 30 35 29 f5 18 00 00 00 a9 00 00 00 00 00 00 00 00 00 00 00 00 +.cos(sa+0.05)..................
7e5a0 f5 18 00 00 00 9b 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 48 20 20 64 6f 75 62 6c 65 20 6d .....................H..double.m
7e5c0 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 a.=.(tmv.tm_min.+.tmv.tm_sec./.6
7e5e0 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f f5 18 0.0)./.60.0.*.2.*.M_PI.-.M_PI_..
7e600 00 00 00 9c 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 91 00 00 00 00 00 00 00 00 00 00 ................................
7e620 00 01 00 00 00 03 20 20 66 f5 18 00 00 00 92 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 ........f.......................
7e640 7d 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 36 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 }...............6......for.(int.
7e660 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b 29 20 70 78 x.=.x_start;.x.<=.x_end;.x++).px
7e680 5b 79 20 2a 20 77 20 f5 18 00 00 00 7e 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 70 00 [y.*.w......~.................p.
7e6a0 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1e 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d ...................int.x_start.=
7e6c0 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 f5 18 00 00 00 71 00 00 00 00 00 00 00 00 00 00 00 00 f5 .w,.x_end.=.0.....q.............
7e6e0 18 00 00 00 54 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0a 20 20 61 2d 3e 70 69 78 65 6c f5 ....T..................a->pixel.
7e700 18 00 00 00 55 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 29 00 00 00 00 00 00 00 00 00 ....U.................).........
7e720 00 00 01 00 00 00 1e 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 .......static.volatile.sig_atomi
7e740 63 5f 74 20 72 f5 18 00 00 00 2a 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 1e 00 00 00 c_t.r.....*.....................
7e760 00 00 00 00 00 00 00 00 01 00 00 00 27 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 4c 45 4e 5f 4d 20 ............'#define.HAND_LEN_M.
7e780 20 20 20 30 2e 38 30 20 20 20 20 20 20 20 20 2f 2a 20 4d 69 f5 18 00 00 00 1f 00 00 00 00 00 00 ...0.80......../*.Mi............
7e7a0 00 00 00 00 00 00 f5 18 00 00 00 14 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 11 23 64 65 66 ............................#def
7e7c0 69 6e 65 20 43 4f 4c 4f 52 5f 48 4f 55 f5 18 00 00 00 15 00 00 00 00 00 00 00 00 00 00 00 00 f5 ine.COLOR_HOU...................
7e7e0 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 ................................
7e800 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 .......5........................
7e820 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 ................................
7e840 18 00 00 00 00 14 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 27 00 00 00 00 02 00 .........................'......
7e860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 1e 00 00 00 27 ...............................'
7e880 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 1e 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 ................................
7e8a0 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 29 00 00 00 1e 00 00 00 00 00 00 00 00 00 00 .................)..............
7e8c0 00 2b 00 00 00 0a 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 .+..............................
7e8e0 00 f5 18 00 00 00 00 54 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 1c 00 00 00 1e 00 00 00 00 .......T........................
7e900 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 f5 18 00 00 00 00 70 00 00 .............................p..
7e920 00 1e 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 36 00 00 00 00 0e 00 00 00 00 00 00 00 00 00 .................6..............
7e940 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 7d 00 00 00 36 00 00 00 00 00 00 00 00 ...................}...6........
7e960 00 00 00 14 00 00 00 03 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 ................................
7e980 00 00 00 f5 18 00 00 00 00 91 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 48 00 00 .............................H..
7e9a0 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 9b ................................
7e9c0 00 00 00 48 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 1c 00 00 00 00 14 00 00 00 00 00 00 00 ...H............................
7e9e0 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 a8 00 00 00 1c 00 00 00 00 00 00 ................................
7ea00 00 00 00 00 00 12 00 00 00 02 00 00 00 00 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 ................................
7ea20 00 00 00 00 00 f5 18 00 00 00 00 ba 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 4d ...............................M
7ea40 00 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 ................................
7ea60 00 c0 00 00 00 4d 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 1b 00 00 00 00 1b 00 00 00 00 00 .....M..........................
7ea80 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 c4 00 00 00 1b 00 00 00 00 ................................
7eaa0 00 00 00 00 00 00 00 0f 00 00 00 11 00 00 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7eac0 02 00 00 00 00 00 00 f5 18 00 00 00 00 d3 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 10 00 00 ................................
7eae0 00 03 00 00 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 ................................
7eb00 00 00 00 e3 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 0f 00 00 00 00 21 00 00 00 ............................!...
7eb20 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 f3 00 00 00 0f 00 00 ................................
7eb40 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00 ..................$.............
7eb60 00 69 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 b3 00 00 00 b5 00 00 00 00 00 00 00 00 00 00 00 .i.......5._....................
7eb80 b4 00 00 00 f8 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7eba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ebc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ebe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ec00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ec20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ec40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ec60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ec80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7eca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ecc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ece0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d aa ff 04 01 00 00 00 3e 00 f5 18 00 00 00 12 ...............i........>.......
7ed00 00 00 01 41 00 00 00 f8 00 00 00 e4 00 00 00 35 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 42 47 ...A...........5#define.COLOR_BG
7ed20 20 20 20 20 20 20 30 78 46 46 31 41 31 41 31 41 20 20 2f 2a 20 44 61 72 6b 20 43 68 61 72 63 6f ......0xFF1A1A1A../*.Dark.Charco
7ed40 61 6c 20 2a 2f 00 00 00 33 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 44 49 41 4c 20 20 20 20 30 al.*/...3#define.COLOR_DIAL....0
7ed60 78 46 46 46 46 46 46 46 46 20 20 2f 2a 20 57 68 69 74 65 20 54 69 63 6b 73 20 2a 2f 00 00 00 31 xFFFFFFFF../*.White.Ticks.*/...1
7ed80 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 48 4f 55 52 20 20 20 20 30 78 46 46 45 45 45 45 45 45 #define.COLOR_HOUR....0xFFEEEEEE
7eda0 20 20 2f 2a 20 4f 66 66 2d 77 68 69 74 65 20 2a 2f 00 00 00 32 23 64 65 66 69 6e 65 20 43 4f 4c ../*.Off-white.*/...2#define.COL
7edc0 4f 52 5f 4d 49 4e 20 20 20 20 20 30 78 46 46 43 43 43 43 43 43 20 20 2f 2a 20 4c 69 67 68 74 20 OR_MIN.....0xFFCCCCCC../*.Light.
7ede0 47 72 65 79 20 2a 2f 00 00 00 32 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 53 45 43 20 20 20 20 Grey.*/...2#define.COLOR_SEC....
7ee00 20 30 78 46 46 46 46 30 30 30 30 20 20 2f 2a 20 42 72 69 67 68 74 20 52 65 64 20 2a 2f 00 00 00 .0xFFFF0000../*.Bright.Red.*/...
7ee20 34 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 48 55 42 20 20 20 20 20 30 78 46 46 34 34 34 34 34 4#define.COLOR_HUB.....0xFF44444
7ee40 34 20 20 2f 2a 20 48 75 62 20 43 61 70 20 47 72 65 79 20 2a 2f 00 00 00 00 00 00 00 42 23 64 65 4../*.Hub.Cap.Grey.*/.......B#de
7ee60 66 69 6e 65 20 48 41 4e 44 5f 54 48 49 43 4b 5f 48 20 20 30 2e 30 35 20 20 20 20 20 20 20 20 2f fine.HAND_THICK_H..0.05......../
7ee80 2a 20 48 6f 75 72 20 68 61 6e 64 20 74 68 69 63 6b 6e 65 73 73 20 66 61 63 74 6f 72 20 2a 2f 00 *.Hour.hand.thickness.factor.*/.
7eea0 00 00 44 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 20 20 30 2e 30 33 35 20 20 ..D#define.HAND_THICK_M..0.035..
7eec0 20 20 20 20 20 2f 2a 20 4d 69 6e 75 74 65 20 68 61 6e 64 20 74 68 69 63 6b 6e 65 73 73 20 66 61 ...../*.Minute.hand.thickness.fa
7eee0 63 74 6f 72 20 2a 2f 00 00 00 44 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 54 48 49 43 4b 5f 53 20 ctor.*/...D#define.HAND_THICK_S.
7ef00 20 30 2e 30 34 20 20 20 20 20 20 20 20 2f 2a 20 53 65 63 6f 6e 64 20 68 61 6e 64 20 74 68 69 63 .0.04......../*.Second.hand.thic
7ef20 6b 6e 65 73 73 20 66 61 63 74 6f 72 20 2a 2f 00 00 00 00 00 00 00 4d 23 64 65 66 69 6e 65 20 48 kness.factor.*/.......M#define.H
7ef40 41 4e 44 5f 4c 45 4e 5f 48 20 20 20 20 30 2e 35 35 20 20 20 20 20 20 20 20 2f 2a 20 48 6f 75 72 AND_LEN_H....0.55......../*.Hour
7ef60 20 68 61 6e 64 20 6c 65 6e 67 74 68 20 28 66 72 61 63 74 69 6f 6e 20 6f 66 20 72 61 64 69 75 73 .hand.length.(fraction.of.radius
7ef80 29 20 2a 2f 00 00 00 3a 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 4c 45 4e 5f 4d 20 20 20 20 30 2e ).*/...:#define.HAND_LEN_M....0.
7efa0 38 30 20 20 20 20 20 20 20 20 2f 2a 20 4d 69 6e 75 74 65 20 68 61 6e 64 20 6c 65 6e 67 74 68 20 80......../*.Minute.hand.length.
7efc0 2a 2f 00 00 00 3a 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 4c 45 4e 5f 53 20 20 20 20 30 2e 38 30 */...:#define.HAND_LEN_S....0.80
7efe0 20 20 20 20 20 20 20 20 2f 2a 20 53 65 63 6f 6e 64 20 68 61 6e 64 20 6c 65 6e 67 74 68 20 2a 2f ......../*.Second.hand.length.*/
7f000 00 00 00 1c 2f 2a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 2a 2f ..../*.----------------------.*/
7f020 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 ........#ifndef.M_PI...##define.
7f040 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 M_PI.3.14159265358979323846....#
7f060 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 endif....#ifndef.M_PI_2...%#defi
7f080 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 ne.M_PI_2.1.57079632679489661923
7f0a0 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c ....#endif.......)static.volatil
7f0c0 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 33 73 e.sig_atomic_t.running.=.1;...3s
7f0e0 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 20 28 76 6f 69 64 tatic.void.on_sig(int.s).{.(void
7f100 29 73 3b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 )s;.running.=.0;.}........struct
7f120 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 .app.{......struct.wl_display.*d
7f140 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 ;......struct.wl_registry.*reg;.
7f160 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b .....struct.wl_compositor.*comp;
7f180 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 ......struct.wl_shm.*shm;......s
7f1a0 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 truct.xdg_wm_base.*wm;......stru
7f1c0 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 ct.wl_surface.*ws;......struct.x
7f1e0 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f dg_surface.*xs;......struct.xdg_
7f200 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b toplevel.*xt;......void.*pixels;
7f220 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b ......struct.wl_buffer.*buf;....
7f240 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 00 12 ..int.w,.h;......int.bw,.bh;....
7f260 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 65 64 ..bool.configured;......bool.red
7f280 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 6a 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d raw;....};.......jstatic.void.wm
7f2a0 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f _ping(void.*data,.struct.xdg_wm_
7f2c0 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 20 78 64 67 base.*wm,.uint32_t.serial).{.xdg
7f2e0 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 20 7d 00 00 00 00 _wm_base_pong(wm,.serial);.}....
7f300 00 00 00 24 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f 74 ...$static.int.create_shm(size_t
7f320 20 73 69 7a 65 29 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 .size).{...#..char.t[].=."/tmp/w
7f340 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b lclock-XXXXXX";......int.fd.=.mk
7f360 73 74 65 6d 70 28 74 29 3b 00 00 00 16 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 65 78 69 74 28 stemp(t);......if.(fd.<.0).exit(
7f380 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 27 20 20 69 66 20 28 66 74 72 1);......unlink(t);...'..if.(ftr
7f3a0 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 65 78 69 74 28 31 29 3b 00 00 uncate(fd,.size).<.0).exit(1);..
7f3c0 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 ....return.fd;....}.......(stati
7f3e0 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 c.void.destroy_buf(struct.app.*a
7f400 29 20 7b 00 00 00 16 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 20 72 65 74 75 72 6e 3b 00 00 00 ).{......if.(!a->buf).return;...
7f420 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a *..size_t.size.=.(size_t)a->bw.*
7f440 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 .a->bh.*.4;......wl_buffer_destr
7f460 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c oy(a->buf);......munmap(a->pixel
7f480 73 2c 20 73 69 7a 65 29 3b 00 00 00 22 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 20 61 2d s,.size);..."..a->buf.=.NULL;.a-
7f4a0 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 >pixels.=.NULL;....}.......&stat
7f4c0 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 ic.void.alloc_buf(struct.app.*a)
7f4e0 20 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 69 7a .{......destroy_buf(a);...(..siz
7f500 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a e_t.size.=.(size_t)a->w.*.a->h.*
7f520 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a .4;......int.fd.=.create_shm(siz
7f540 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 e);...J..a->pixels.=.mmap(NULL,.
7f560 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 size,.PROT_READ.|.PROT_WRITE,.MA
7f580 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 27 20 20 69 66 20 28 61 2d 3e 70 69 P_SHARED,.fd,.0);...'..if.(a->pi
7f5a0 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 65 78 69 74 28 31 29 3b 00 00 00 42 xels.==.MAP_FAILED).exit(1);...B
7f5c0 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f ..struct.wl_shm_pool.*pool.=.wl_
7f5e0 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 shm_create_pool(a->shm,.fd,.size
7f600 29 3b 00 00 00 5c 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 );...\..a->buf.=.wl_shm_pool_cre
7f620 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 ate_buffer(pool,.0,.a->w,.a->h,.
7f640 61 2d 3e 77 20 2a 20 34 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 a->w.*.4,.WL_SHM_FORMAT_ARGB8888
7f660 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c );......wl_shm_pool_destroy(pool
7f680 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 1d 20 20 61 2d 3e 62 77 20 3d 20 );......close(fd);......a->bw.=.
7f6a0 61 2d 3e 77 3b 20 61 2d 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 53 a->w;.a->bh.=.a->h;....}.......S
7f6c0 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c static.void.circle(uint32_t.*px,
7f6e0 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 .int.w,.int.h,.int.cx,.int.cy,.i
7f700 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d nt.r,.uint32_t.c).{..."..int.x.=
7f720 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 .0,.y.=.r,.d.=.3.-.2.*.r;......w
7f740 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b hile.(y.>=.x).{...H....int.p[8][
7f760 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 2].=.{{cx.+.x,.cy.+.y},.{cx.-.x,
7f780 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 .cy.+.y},.{cx.+.x,.cy.-.y},...H.
7f7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 ..................{cx.-.x,.cy.-.
7f7c0 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 y},.{cx.+.y,.cy.+.x},.{cx.-.y,.c
7f7e0 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 y.+.x},...7...................{c
7f800 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d x.+.y,.cy.-.x},.{cx.-.y,.cy.-.x}
7f820 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b };........for.(int.i.=.0;.i.<.8;
7f840 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 .i++)...E......if.(p[i][0].>=.0.
7f860 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 &&.p[i][0].<.w.&&.p[i][1].>=.0.&
7f880 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 &.p[i][1].<.h)...&........px[p[i
7f8a0 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 43 20 20 20 20 ][1].*.w.+.p[i][0]].=.c;...C....
7f8c0 69 66 20 28 64 20 3e 20 30 29 20 7b 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 if.(d.>.0).{.d.+=.4.*.(x.-.y).+.
7f8e0 31 30 3b 20 79 2d 2d 3b 20 7d 20 65 6c 73 65 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 10;.y--;.}.else.d.+=.4.*.x.+.6;.
7f900 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 6e 73 .......x++;......}....}.......ns
7f920 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 tatic.void.fill_tri(uint32_t.*px
7f940 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 ,.int.w,.int.h,.int.x0,.int.y0,.
7f960 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 int.x1,.int.y1,.int.x2,.int.y2,.
7f980 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 uint32_t.c).{...B..int.min_y.=.y
7f9a0 30 20 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 0.<.y1.?.(y0.<.y2.?.y0.:.y2).:.(
7f9c0 79 31 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 y1.<.y2.?.y1.:.y2);...B..int.max
7f9e0 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 _y.=.y0.>.y1.?.(y0.>.y2.?.y0.:.y
7fa00 32 29 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 3a 20 20 69 2).:.(y1.>.y2.?.y1.:.y2);...:..i
7fa20 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 20 6d 69 6e 5f 79 20 3d 20 30 3b 20 69 66 20 28 6d 61 78 f.(min_y.<.0).min_y.=.0;.if.(max
7fa40 5f 79 20 3e 3d 20 68 29 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 _y.>=.h).max_y.=.h.-.1;...(..for
7fa60 20 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b .(int.y.=.min_y;.y.<=.max_y;.y++
7fa80 29 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e ).{........int.x_start.=.w,.x_en
7faa0 64 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 d.=.0;...3....int.xs[3].=.{x0,.x
7fac0 31 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 1,.x2},.ys[3].=.{y0,.y1,.y2};...
7fae0 15 20 20 20 20 62 6f 6f 6c 20 68 69 74 20 3d 20 66 61 6c 73 65 3b 00 00 00 21 20 20 20 20 66 6f .....bool.hit.=.false;...!....fo
7fb00 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 r.(int.i.=.0;.i.<.3;.i++).{.....
7fb20 20 20 20 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 .....int.j.=.(i.+.1).%.3;...C...
7fb40 20 20 20 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 ...if.((ys[i].<=.y.&&.ys[j].>.y)
7fb60 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b .||.(ys[j].<=.y.&&.ys[i].>.y)).{
7fb80 00 00 00 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d ...H........int.x.=.xs[i].+.(y.-
7fba0 20 79 73 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b .ys[i]).*.(xs[j].-.xs[i])./.(ys[
7fbc0 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b 00 00 00 3f 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 j].-.ys[i]);...?........if.(x.<.
7fbe0 78 5f 73 74 61 72 74 29 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 20 69 66 20 28 78 20 3e 20 78 5f x_start).x_start.=.x;.if.(x.>.x_
7fc00 65 6e 64 29 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 13 20 20 20 20 20 20 20 20 68 69 74 20 3d end).x_end.=.x;............hit.=
7fc20 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 0e 20 20 .true;..........}........}......
7fc40 20 20 69 66 20 28 68 69 74 29 20 7b 00 00 00 42 20 20 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 ..if.(hit).{...B......if.(x_star
7fc60 74 20 3c 20 30 29 20 78 5f 73 74 61 72 74 20 3d 20 30 3b 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d t.<.0).x_start.=.0;.if.(x_end.>=
7fc80 20 77 29 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 3f 20 20 20 20 20 20 66 6f 72 20 .w).x_end.=.w.-.1;...?......for.
7fca0 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b (int.x.=.x_start;.x.<=.x_end;.x+
7fcc0 2b 29 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 05 20 20 20 20 7d 00 00 +).px[y.*.w.+.x].=.c;........}..
7fce0 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 ....}....}.......#static.void.re
7fd00 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 37 20 20 69 66 20 28 21 nder(struct.app.*a).{...7..if.(!
7fd20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d a->configured.||.a->w.<=.0.||.a-
7fd40 3e 68 20 3c 3d 20 30 29 20 72 65 74 75 72 6e 3b 00 00 00 1c 20 20 69 66 20 28 21 61 2d 3e 62 75 >h.<=.0).return;......if.(!a->bu
7fd60 66 29 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a f).alloc_buf(a);......uint32_t.*
7fd80 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 45 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 px.=.a->pixels;...E..memset(px,.
7fda0 28 43 4f 4c 4f 52 5f 42 47 20 3e 3e 20 31 36 29 20 26 20 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 (COLOR_BG.>>.16).&.0xFF,.a->w.*.
7fdc0 61 2d 3e 68 20 2a 20 34 29 3b 20 2f 2f 20 42 61 73 69 63 20 66 69 6c 6c 00 00 00 4b 20 20 66 6f a->h.*.4);.//.Basic.fill...K..fo
7fde0 72 28 69 6e 74 20 69 3d 30 3b 20 69 3c 61 2d 3e 77 2a 61 2d 3e 68 3b 20 69 2b 2b 29 20 70 78 5b r(int.i=0;.i<a->w*a->h;.i++).px[
7fe00 69 5d 20 3d 20 43 4f 4c 4f 52 5f 42 47 3b 20 20 20 20 20 20 2f 2f 20 46 75 6c 6c 20 33 32 2d 62 i].=.COLOR_BG;......//.Full.32-b
7fe20 69 74 20 66 69 6c 6c 00 00 00 00 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d it.fill..........time_t.tt.=.tim
7fe40 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 e(NULL);......struct.tm.tmv;....
7fe60 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 ..localtime_r(&tt,.&tmv);...#..i
7fe80 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b nt.cx.=.a->w./.2,.cy.=.a->h./.2;
7fea0 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e .../..int.r.=.(a->w.<.a->h.?.a->
7fec0 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 13 20 20 69 66 20 28 72 20 3c w.:.a->h)./.2.-.10;......if.(r.<
7fee0 20 35 29 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 0f 20 20 2f 2f 20 44 69 61 6c 20 54 69 63 6b .5).r.=.5;..........//.Dial.Tick
7ff00 73 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 s......for.(int.i.=.0;.i.<.60;.i
7ff20 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 ++).{........double.ang.=.i./.60
7ff40 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 31 20 20 20 20 69 .0.*.2.*.M_PI.-.M_PI_2;...1....i
7ff60 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 20 2a 20 30 2e 31 32 nt.len.=.(i.%.5.==.0).?.r.*.0.12
7ff80 20 3a 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 64 6f 75 62 6c 65 20 74 5f 61 6e 67 .:.r.*.0.04;...0....double.t_ang
7ffa0 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 32 20 3a 20 30 2e 30 30 35 3b .=.(i.%.5.==.0).?.0.012.:.0.005;
7ffc0 00 00 00 4a 20 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c ...J....fill_tri(px,.a->w,.a->h,
7ffe0 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 2d 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e .cx.+.cos(ang-t_ang)*r,.cy.+.sin
80000 28 61 6e 67 2d 74 5f 61 6e 67 29 2a 72 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 (ang-t_ang)*r,...:.............c
80020 78 20 2b 20 63 6f 73 28 61 6e 67 2b 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 x.+.cos(ang+t_ang)*r,.cy.+.sin(a
80040 6e 67 2b 74 5f 61 6e 67 29 2a 72 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 ng+t_ang)*r,...G.............cx.
80060 2b 20 63 6f 73 28 61 6e 67 29 2a 28 72 2d 6c 65 6e 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 +.cos(ang)*(r-len),.cy.+.sin(ang
80080 29 2a 28 72 2d 6c 65 6e 29 2c 20 43 4f 4c 4f 52 5f 44 49 41 4c 29 3b 00 00 00 03 20 20 7d 00 00 )*(r-len),.COLOR_DIAL);......}..
800a0 00 00 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f .....4..double.sa.=.tmv.tm_sec./
800c0 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 .60.0.*.2.*.M_PI.-.M_PI_2;...J..
800e0 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d double.ma.=.(tmv.tm_min.+.tmv.tm
80100 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d _sec./.60.0)./.60.0.*.2.*.M_PI.-
80120 20 4d 5f 50 49 5f 32 3b 00 00 00 54 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 76 2e .M_PI_2;...T..double.ha.=.((tmv.
80140 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 tm_hour.%.12).+.(tmv.tm_min./.60
80160 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b .0))./.12.0.*.2.*.M_PI.-.M_PI_2;
80180 00 00 00 00 00 00 00 0e 20 20 2f 2f 20 48 6f 75 72 20 48 61 6e 64 00 00 00 5f 20 20 66 69 6c 6c ..........//.Hour.Hand..._..fill
801a0 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 _tri(px,.a->w,.a->h,.cx.+.cos(ha
801c0 2d 30 2e 31 32 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 20 63 79 20 2b 20 73 69 6e 28 -0.12)*r*HAND_THICK_H,.cy.+.sin(
801e0 68 61 2d 30 2e 31 32 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 20 00 00 00 4f 20 20 20 ha-0.12)*r*HAND_THICK_H,....O...
80200 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 2b 30 2e 31 32 29 2a 72 2a 48 41 4e 44 ........cx.+.cos(ha+0.12)*r*HAND
80220 5f 54 48 49 43 4b 5f 48 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 2b 30 2e 31 32 29 2a 72 2a 48 41 _THICK_H,.cy.+.sin(ha+0.12)*r*HA
80240 4e 44 5f 54 48 49 43 4b 5f 48 2c 20 00 00 00 4d 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 ND_THICK_H,....M...........cx.+.
80260 63 6f 73 28 68 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 48 2c 20 63 79 20 2b 20 73 69 6e 28 68 cos(ha)*r*HAND_LEN_H,.cy.+.sin(h
80280 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 48 2c 20 43 4f 4c 4f 52 5f 48 4f 55 52 29 3b 00 00 00 a)*r*HAND_LEN_H,.COLOR_HOUR);...
802a0 10 20 20 2f 2f 20 4d 69 6e 75 74 65 20 48 61 6e 64 00 00 00 5f 20 20 66 69 6c 6c 5f 74 72 69 28 ...//.Minute.Hand..._..fill_tri(
802c0 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 2d 30 2e 30 38 px,.a->w,.a->h,.cx.+.cos(ma-0.08
802e0 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 2d 30 2e )*r*HAND_THICK_M,.cy.+.sin(ma-0.
80300 30 38 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 20 00 00 00 4f 20 20 20 20 20 20 20 20 08)*r*HAND_THICK_M,....O........
80320 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 2b 30 2e 30 38 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 ...cx.+.cos(ma+0.08)*r*HAND_THIC
80340 4b 5f 4d 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 2b 30 2e 30 38 29 2a 72 2a 48 41 4e 44 5f 54 48 K_M,.cy.+.sin(ma+0.08)*r*HAND_TH
80360 49 43 4b 5f 4d 2c 20 00 00 00 4c 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d ICK_M,....L...........cx.+.cos(m
80380 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 4d 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 2a 72 2a a)*r*HAND_LEN_M,.cy.+.sin(ma)*r*
803a0 48 41 4e 44 5f 4c 45 4e 5f 4d 2c 20 43 4f 4c 4f 52 5f 4d 49 4e 29 3b 00 00 00 10 20 20 2f 2f 20 HAND_LEN_M,.COLOR_MIN);......//.
803c0 53 65 63 6f 6e 64 20 48 61 6e 64 00 00 00 5e 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d Second.Hand...^..fill_tri(px,.a-
803e0 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 2d 30 2e 30 35 29 2a 72 2a 48 41 >w,.a->h,.cx.+.cos(sa-0.05)*r*HA
80400 4e 44 5f 54 48 49 43 4b 5f 53 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 2d 30 2e 30 35 29 2a 72 2a ND_THICK_S,.cy.+.sin(sa-0.05)*r*
80420 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b HAND_THICK_S,...N...........cx.+
80440 20 63 6f 73 28 73 61 2b 30 2e 30 35 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 20 63 79 .cos(sa+0.05)*r*HAND_THICK_S,.cy
80460 20 2b 20 73 69 6e 28 73 61 2b 30 2e 30 35 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 .+.sin(sa+0.05)*r*HAND_THICK_S,.
80480 00 00 4c 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 29 2a 72 2a 48 41 4e ..L...........cx.+.cos(sa)*r*HAN
804a0 44 5f 4c 45 4e 5f 53 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e D_LEN_S,.cy.+.sin(sa)*r*HAND_LEN
804c0 5f 53 2c 20 43 4f 4c 4f 52 5f 53 45 43 29 3b 00 00 00 00 00 00 00 31 20 20 69 6e 74 20 68 75 62 _S,.COLOR_SEC);.......1..int.hub
804e0 5f 72 20 3d 20 72 20 2a 20 30 2e 30 34 3b 20 69 66 20 28 68 75 62 5f 72 20 3c 20 34 29 20 68 75 _r.=.r.*.0.04;.if.(hub_r.<.4).hu
80500 62 5f 72 20 3d 20 34 3b 00 00 00 56 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 b_r.=.4;...V..for.(int.ir.=.0;.i
80520 72 20 3c 20 68 75 62 5f 72 20 2d 20 32 3b 20 69 72 2b 2b 29 20 63 69 72 63 6c 65 28 70 78 2c 20 r.<.hub_r.-.2;.ir++).circle(px,.
80540 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 43 4f 4c 4f 52 5f 42 47 a->w,.a->h,.cx,.cy,.ir,.COLOR_BG
80560 29 3b 00 00 00 33 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 );...3..circle(px,.a->w,.a->h,.c
80580 78 2c 20 63 79 2c 20 68 75 62 5f 72 2c 20 43 4f 4c 4f 52 5f 48 55 42 29 3b 00 00 00 00 00 00 00 x,.cy,.hub_r,.COLOR_HUB);.......
805a0 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 )..wl_surface_attach(a->ws,.a->b
805c0 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 uf,.0,.0);...4..wl_surface_damag
805e0 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 e_buffer(a->ws,.0,.0,.a->w,.a->h
80600 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 );......wl_surface_commit(a->ws)
80620 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 ;......a->redraw.=.false;....}..
80640 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 .....Gstatic.void.xt_close(void.
80660 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 72 *d,.struct.xdg_toplevel.*xt).{.r
80680 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 60 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f unning.=.0;.}...`static.void.xt_
806a0 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c cfg(void.*d,.struct.xdg_toplevel
806c0 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 20 73 74 72 75 .*xt,.int32_t.w,.int32_t.h,.stru
806e0 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 ct.wl_array.*s).{......struct.ap
80700 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 p.*a.=.d;...3..if.(w.>.0.&&.h.>.
80720 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 0.&&.(w.!=.a->w.||.h.!=.a->h)).{
80740 00 00 00 39 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 20 61 2d 3e 68 20 3d 20 68 3b 20 64 65 73 74 ...9....a->w.=.w;.a->h.=.h;.dest
80760 72 6f 79 5f 62 75 66 28 61 29 3b 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 roy_buf(a);.a->redraw.=.true;...
80780 03 20 20 7d 00 00 00 01 7d 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 ...}....}...Fstatic.void.xs_cfg(
807a0 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c void.*d,.struct.xdg_surface.*xs,
807c0 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 3b 20 20 73 74 72 75 63 74 20 .uint32_t.serial).{...;..struct.
807e0 61 70 70 20 2a 61 20 3d 20 64 3b 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 app.*a.=.d;.xdg_surface_ack_conf
80800 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 29 20 20 61 2d 3e 63 6f 6e 66 69 igure(xs,.serial);...)..a->confi
80820 67 75 72 65 64 20 3d 20 74 72 75 65 3b 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 gured.=.true;.a->redraw.=.true;.
80840 00 00 01 7d 00 00 00 60 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 ...}...`static.void.reg_global(v
80860 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 oid.*d,.struct.wl_registry.*r,.u
80880 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c 20 75 69 6e 74 33 int32_t.id,.const.char.*i,.uint3
808a0 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 2_t.v).{......struct.app.*a.=.d;
808c0 00 00 00 62 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 ...b..if.(!strcmp(i,."wl_composi
808e0 74 6f 72 22 29 29 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e tor")).a->comp.=.wl_registry_bin
80900 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 d(r,.id,.&wl_compositor_interfac
80920 65 2c 20 34 29 3b 00 00 00 58 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 e,.4);...X..else.if.(!strcmp(i,.
80940 22 77 6c 5f 73 68 6d 22 29 29 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f "wl_shm")).a->shm.=.wl_registry_
80960 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 bind(r,.id,.&wl_shm_interface,.1
80980 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 78 64 67 );...'..else.if.(!strcmp(i,."xdg
809a0 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f _wm_base")).{...?....a->wm.=.wl_
809c0 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 registry_bind(r,.id,.&xdg_wm_bas
809e0 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 73 74 61 74 69 63 20 63 e_interface,.1);...C....static.c
80a00 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 onst.struct.xdg_wm_base_listener
80a20 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 20 20 20 78 .l.=.{.ping.=.wm_ping};...+....x
80a40 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 dg_wm_base_add_listener(a->wm,.&
80a60 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 l,.a);......}....}........int.ma
80a80 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 2b 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b in(void).{...+..struct.app.a.=.{
80aa0 30 7d 3b 20 61 2e 77 20 3d 20 34 30 30 3b 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 0};.a.w.=.400;.a.h.=.400;......s
80ac0 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 ignal(SIGINT,.on_sig);...!..a.d.
80ae0 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 15 20 =.wl_display_connect(NULL);.....
80b00 20 69 66 20 28 21 61 2e 64 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 .if.(!a.d).return.1;...'..a.reg.
80b20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 =.wl_display_get_registry(a.d);.
80b40 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 ..G..static.const.struct.wl_regi
80b60 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 stry_listener.rl.=.{.global.=.re
80b80 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f g_global};...+..wl_registry_add_
80ba0 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 listener(a.reg,.&rl,.&a);......w
80bc0 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 2b 20 20 69 l_display_roundtrip(a.d);...+..i
80be0 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 20 72 f.(!a.comp.||.!a.shm.||.!a.wm).r
80c00 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 eturn.1;......a.ws.=.wl_composit
80c20 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 or_create_surface(a.comp);...1..
80c40 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 a.xs.=.xdg_wm_base_get_xdg_surfa
80c60 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 ce(a.wm,.a.ws);...G..static.cons
80c80 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 t.struct.xdg_surface_listener.xs
80ca0 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 2b 20 20 l.=.{.configure.=.xs_cfg};...+..
80cc0 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 xdg_surface_add_listener(a.xs,.&
80ce0 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 xsl,.&a);...(..a.xt.=.xdg_surfac
80d00 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 5b 20 20 73 74 61 74 69 e_get_toplevel(a.xs);...[..stati
80d20 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 c.const.struct.xdg_toplevel_list
80d40 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c ener.xtl.=.{.configure.=.xt_cfg,
80d60 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f ..close.=.xt_close};...,..xdg_to
80d80 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 plevel_add_listener(a.xt,.&xtl,.
80da0 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 &a);...*..xdg_toplevel_set_title
80dc0 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 (a.xt,."wlclock");......wl_surfa
80de0 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 31 20 20 77 68 69 6c 65 20 28 21 61 2e ce_commit(a.ws);...1..while.(!a.
80e00 63 6f 6e 66 69 67 75 72 65 64 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 configured).wl_display_dispatch(
80e20 61 2e 64 29 3b 00 00 00 36 20 20 70 72 69 6e 74 66 28 22 57 61 79 6c 61 6e 64 20 73 75 72 66 61 a.d);...6..printf("Wayland.surfa
80e40 63 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 63 6f 6e 66 69 67 75 72 65 64 5c 6e 22 29 3b 00 ce.successfully.configured\n");.
80e60 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 .....render(&a);...9..int.tfd.=.
80e80 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 timerfd_create(CLOCK_MONOTONIC,.
80ea0 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 TFD_CLOEXEC);...F..timerfd_setti
80ec0 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b me(tfd,.0,.&(struct.itimerspec){
80ee0 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 20 20 63 68 61 {1,.0},.{1,.0}},.NULL);......cha
80f00 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 r.buffer[100];......while.(runni
80f20 6e 67 29 20 7b 00 00 00 4f 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 ng).{...O....while.(wl_display_p
80f40 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 20 77 6c 5f 64 69 73 70 6c 61 repare_read(a.d).!=.0).wl_displa
80f60 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 y_dispatch_pending(a.d);........
80f80 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 wl_display_flush(a.d);...M....st
80fa0 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 ruct.pollfd.fds[2].=.{{wl_displa
80fc0 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f y_get_fd(a.d),.POLLIN},.{tfd,.PO
80fe0 4c 4c 49 4e 7d 7d 3b 00 00 00 48 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 LLIN}};...H....if.(poll(fds,.2,.
81000 2d 31 29 20 3c 20 30 29 20 7b 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 -1).<.0).{.wl_display_cancel_rea
81020 64 28 61 2e 64 29 3b 20 63 6f 6e 74 69 6e 75 65 3b 20 7d 00 00 00 5f 20 20 20 20 69 66 20 28 66 d(a.d);.continue;.}..._....if.(f
81040 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 77 6c 5f 64 69 73 70 6c ds[0].revents.&.POLLIN).wl_displ
81060 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 20 65 6c 73 65 20 77 6c 5f 64 69 73 ay_read_events(a.d);.else.wl_dis
81080 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 6c play_cancel_read(a.d);...%....wl
810a0 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 _display_dispatch_pending(a.d);.
810c0 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c .."....if.(fds[1].revents.&.POLL
810e0 49 4e 29 20 7b 00 00 00 37 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 5f 65 78 70 3b 20 72 IN).{...7......uint64_t.t_exp;.r
81100 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 78 70 29 29 3b ead(tfd,.&t_exp,.sizeof(t_exp));
81120 00 00 00 1e 20 20 20 20 20 20 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 28 4e 55 4c 4c ..........time_t.cli.=.time(NULL
81140 29 3b 00 00 00 2c 20 20 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 5f 73 74 72 75 63 74 20 );...,......struct.tm.*t_struct.
81160 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 3b 00 00 00 49 20 20 20 20 20 20 73 74 72 66 =.localtime(&cli);...I......strf
81180 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 time(buffer,.sizeof(buffer),."%d
811a0 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c 20 74 5f 73 74 72 75 63 74 29 3b 00 -%m-%Y.%I:%M:%S.%p",.t_struct);.
811c0 00 00 35 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 73 22 2c 20 ..5......printf("\rTime.is.%s",.
811e0 62 75 66 66 65 72 29 3b 20 66 66 6c 75 73 68 28 73 74 64 6f 75 74 29 3b 00 00 00 16 20 20 20 20 buffer);.fflush(stdout);........
81200 20 20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1d 20 ..a.redraw.=.true;........}.....
81220 20 20 20 69 66 20 28 61 2e 72 65 64 72 61 77 29 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 ...if.(a.redraw).render(&a);....
81240 20 20 7d 00 00 00 48 20 20 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b 20 63 6c 6f 73 65 28 74 66 64 ..}...H..printf("\n");.close(tfd
81260 29 3b 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 );.destroy_buf(&a);.wl_display_d
81280 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 35 81 f5 18 00 00 00 00 12 00 00 00 11 00 00 00 e3 isconnect(a.d);5................
812a0 00 00 00 2c 00 00 00 2d 01 00 00 01 00 00 00 96 01 00 00 00 00 00 00 a9 22 00 00 00 00 00 00 e8 ...,...-................".......
812c0 24 00 00 00 00 00 00 35 81 5f d0 00 00 00 b4 00 00 00 b6 00 00 00 00 00 00 00 00 00 00 00 b5 00 $......5._......................
812e0 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
813a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
813c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
813e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81440 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d ab 7e 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 .............i..~...............
81460 00 02 00 00 00 00 00 00 01 42 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 .........B....#define._POSIX_C_S
81480 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 OURCE.200809L...&#include."xdg-s
814a0 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c hell-client-protocol.h"....#incl
814c0 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e ude.<fcntl.h>....#include.<math.
814e0 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c h>....#include.<poll.h>....#incl
81500 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 ude.<signal.h>....#include.<stdb
81520 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e 00 00 00 ool.h>....#include.<stdint.h>...
81540 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 .#include.<stdio.h>....#include.
81560 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 <stdlib.h>....#include.<string.h
81580 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 >....#include.<sys/mman.h>....#i
815a0 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 nclude.<sys/timerfd.h>....#inclu
815c0 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e de.<time.h>....#include.<unistd.
815e0 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 h>....#include.<wayland-client.h
81600 3e 00 00 00 00 00 00 00 1c 2f 2a 20 2d 2d 2d 20 54 48 45 4d 45 20 53 45 54 54 49 4e 47 53 20 2d >......../*.---.THEME.SETTINGS.-
81620 2d 2d 20 2a 2f 00 00 00 31 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 42 47 20 30 78 46 46 31 41 --.*/...1#define.COLOR_BG.0xFF1A
81640 31 41 31 41 20 20 20 2f 2a 20 44 61 72 6b 20 43 68 61 72 63 6f 61 6c 20 2a 2f 00 00 00 2f 23 64 1A1A.../*.Dark.Charcoal.*/.../#d
81660 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 44 49 41 4c 20 30 78 46 46 46 46 46 46 46 46 20 2f 2a 20 57 efine.COLOR_DIAL.0xFFFFFFFF./*.W
81680 68 69 74 65 20 54 69 63 6b 73 20 2a 2f 00 00 00 2d 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 48 hite.Ticks.*/...-#define.COLOR_H
816a0 4f 55 52 20 30 78 46 46 45 45 45 45 45 45 20 2f 2a 20 4f 66 66 2d 77 68 69 74 65 20 2a 2f 00 00 OUR.0xFFEEEEEE./*.Off-white.*/..
816c0 00 2e 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 4d 49 4e 20 30 78 46 46 43 43 43 43 43 43 20 20 ..#define.COLOR_MIN.0xFFCCCCCC..
816e0 2f 2a 20 4c 69 67 68 74 20 47 72 65 79 20 2a 2f 00 00 00 2e 23 64 65 66 69 6e 65 20 43 4f 4c 4f /*.Light.Grey.*/....#define.COLO
81700 52 5f 53 45 43 20 30 78 46 46 46 46 30 30 30 30 20 20 2f 2a 20 42 72 69 67 68 74 20 52 65 64 20 R_SEC.0xFFFF0000../*.Bright.Red.
81720 2a 2f 00 00 00 30 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 48 55 42 20 30 78 46 46 34 34 34 34 */...0#define.COLOR_HUB.0xFF4444
81740 34 34 20 20 2f 2a 20 48 75 62 20 43 61 70 20 47 72 65 79 20 2a 2f 00 00 00 00 00 00 00 3b 23 64 44../*.Hub.Cap.Grey.*/.......;#d
81760 65 66 69 6e 65 20 48 41 4e 44 5f 54 48 49 43 4b 5f 48 20 30 2e 30 35 20 20 2f 2a 20 48 6f 75 72 efine.HAND_THICK_H.0.05../*.Hour
81780 20 68 61 6e 64 20 74 68 69 63 6b 6e 65 73 73 20 66 61 63 74 6f 72 20 2a 2f 00 00 00 3d 23 64 65 .hand.thickness.factor.*/...=#de
817a0 66 69 6e 65 20 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 20 30 2e 30 33 35 20 2f 2a 20 4d 69 6e 75 74 fine.HAND_THICK_M.0.035./*.Minut
817c0 65 20 68 61 6e 64 20 74 68 69 63 6b 6e 65 73 73 20 66 61 63 74 6f 72 20 2a 2f 00 00 00 3d 23 64 e.hand.thickness.factor.*/...=#d
817e0 65 66 69 6e 65 20 48 41 4e 44 5f 54 48 49 43 4b 5f 53 20 30 2e 30 34 20 20 2f 2a 20 53 65 63 6f efine.HAND_THICK_S.0.04../*.Seco
81800 6e 64 20 68 61 6e 64 20 74 68 69 63 6b 6e 65 73 73 20 66 61 63 74 6f 72 20 2a 2f 00 00 00 00 00 nd.hand.thickness.factor.*/.....
81820 00 00 43 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 4c 45 4e 5f 48 20 30 2e 35 35 20 2f 2a 20 48 6f ..C#define.HAND_LEN_H.0.55./*.Ho
81840 75 72 20 68 61 6e 64 20 6c 65 6e 67 74 68 20 28 66 72 61 63 74 69 6f 6e 20 6f 66 20 72 61 64 69 ur.hand.length.(fraction.of.radi
81860 75 73 29 20 2a 2f 00 00 00 30 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 4c 45 4e 5f 4d 20 30 2e 38 us).*/...0#define.HAND_LEN_M.0.8
81880 30 20 2f 2a 20 4d 69 6e 75 74 65 20 68 61 6e 64 20 6c 65 6e 67 74 68 20 2a 2f 00 00 00 30 23 64 0./*.Minute.hand.length.*/...0#d
818a0 65 66 69 6e 65 20 48 41 4e 44 5f 4c 45 4e 5f 53 20 30 2e 38 30 20 2f 2a 20 53 65 63 6f 6e 64 20 efine.HAND_LEN_S.0.80./*.Second.
818c0 68 61 6e 64 20 6c 65 6e 67 74 68 20 2a 2f 00 00 00 1c 2f 2a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d hand.length.*/..../*.-----------
818e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 2a 2f 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f -----------.*/........#ifndef.M_
81900 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 PI...##define.M_PI.3.14159265358
81920 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 979323846....#endif....#ifndef.M
81940 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 _PI_2...%#define.M_PI_2.1.570796
81960 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 32679489661923....#endif.......)
81980 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e static.volatile.sig_atomic_t.run
819a0 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 ning.=.1;....static.void.on_sig(
819c0 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e int.s).{......(void)s;......runn
819e0 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 ing.=.0;....}........struct.app.
81a00 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a {......struct.wl_display.*d;....
81a20 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 ..struct.wl_registry.*reg;......
81a40 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 struct.wl_compositor.*comp;.....
81a60 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 .struct.wl_shm.*shm;......struct
81a80 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c .xdg_wm_base.*wm;......struct.wl
81aa0 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 _surface.*ws;......struct.xdg_su
81ac0 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 rface.*xs;......struct.xdg_tople
81ae0 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 vel.*xt;......void.*pixels;.....
81b00 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 .struct.wl_buffer.*buf;......int
81b20 20 77 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 00 12 20 20 62 6f 6f .w,.h;......int.bw,.bh;......boo
81b40 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 l.configured;......bool.redraw;.
81b60 00 00 02 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 ...};.......Jstatic.void.wm_ping
81b80 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 (void.*data,.struct.xdg_wm_base.
81ba0 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 67 *wm,.uint32_t.serial).{......xdg
81bc0 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 _wm_base_pong(wm,.serial);....}.
81be0 00 00 00 00 00 00 24 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a ......$static.int.create_shm(siz
81c00 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d e_t.size).{...#..char.t[].=."/tm
81c20 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d p/wlclock-XXXXXX";......int.fd.=
81c40 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 .mkstemp(t);......if.(fd.<.0)...
81c60 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 .....exit(1);......unlink(t);...
81c80 1e 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 00 ...if.(ftruncate(fd,.size).<.0).
81ca0 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 .......exit(1);......return.fd;.
81cc0 00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f ...}.......(static.void.destroy_
81ce0 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 61 buf(struct.app.*a).{......if.(!a
81d00 2d 3e 62 75 66 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f ->buf)........return;...*..size_
81d20 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a t.size.=.(size_t)a->bw.*.a->bh.*
81d40 20 34 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 .4;......wl_buffer_destroy(a->bu
81d60 66 29 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 f);......munmap(a->pixels,.size)
81d80 3b 00 00 00 10 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 20 20 61 2d 3e 70 69 ;......a->buf.=.NULL;......a->pi
81da0 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 xels.=.NULL;....}.......&static.
81dc0 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 void.alloc_buf(struct.app.*a).{.
81de0 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 .....destroy_buf(a);...(..size_t
81e00 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 3b .size.=.(size_t)a->w.*.a->h.*.4;
81e20 00 00 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b ......int.fd.=.create_shm(size);
81e40 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a ...J..a->pixels.=.mmap(NULL,.siz
81e60 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 e,.PROT_READ.|.PROT_WRITE,.MAP_S
81e80 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1e 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c HARED,.fd,.0);......if.(a->pixel
81ea0 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b s.==.MAP_FAILED)........exit(1);
81ec0 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d ...B..struct.wl_shm_pool.*pool.=
81ee0 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 .wl_shm_create_pool(a->shm,.fd,.
81f00 73 69 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c size);...C..a->buf.=.wl_shm_pool
81f20 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d _create_buffer(pool,.0,.a->w,.a-
81f40 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 >h,.a->w.*.4,...=...............
81f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 ......................WL_SHM_FOR
81f80 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f MAT_ARGB8888);......wl_shm_pool_
81fa0 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 destroy(pool);......close(fd);..
81fc0 00 0f 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b 00 00 00 0f 20 20 61 2d 3e 62 68 20 3d 20 61 ....a->bw.=.a->w;......a->bh.=.a
81fe0 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 ->h;....}.......Estatic.void.cir
82000 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 cle(uint32_t.*px,.int.w,.int.h,.
82020 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 20 20 20 20 20 20 20 int.cx,.int.cy,.int.r,..........
82040 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 .............uint32_t.c).{..."..
82060 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b int.x.=.0,.y.=.r,.d.=.3.-.2.*.r;
82080 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e ......while.(y.>=.x).{...H....in
820a0 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b t.p[8][2].=.{{cx.+.x,.cy.+.y},.{
820c0 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 cx.-.x,.cy.+.y},.{cx.+.x,.cy.-.y
820e0 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 },...H...................{cx.-.x
82100 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 ,.cy.-.y},.{cx.+.y,.cy.+.x},.{cx
82120 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .-.y,.cy.+.x},...7..............
82140 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 .....{cx.+.y,.cy.-.x},.{cx.-.y,.
82160 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b cy.-.x}};........for.(int.i.=.0;
82180 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 .i.<.8;.i++)...E......if.(p[i][0
821a0 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d ].>=.0.&&.p[i][0].<.w.&&.p[i][1]
821c0 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 .>=.0.&&.p[i][1].<.h)...&.......
821e0 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 .px[p[i][1].*.w.+.p[i][0]].=.c;.
82200 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b .......if.(d.>.0).{..........d.+
82220 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d =.4.*.(x.-.y).+.10;..........y--
82240 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 ;........}.else..........d.+=.4.
82260 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d *.x.+.6;........x++;......}....}
82280 00 00 00 00 00 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e .......Pstatic.void.fill_tri(uin
822a0 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c t32_t.*px,.int.w,.int.h,.int.x0,
822c0 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 32 20 20 20 20 .int.y0,.int.x1,.int.y1,...2....
822e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c .................int.x2,.int.y2,
82300 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 .uint32_t.c).{...B..int.min_y.=.
82320 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 y0.<.y1.?.(y0.<.y2.?.y0.:.y2).:.
82340 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 (y1.<.y2.?.y1.:.y2);...B..int.ma
82360 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 x_y.=.y0.>.y1.?.(y0.>.y2.?.y0.:.
82380 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 10 20 20 y2).:.(y1.>.y2.?.y1.:.y2);......
823a0 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 00 00 00 0e 20 20 20 20 6d 69 6e 5f 79 20 3d 20 30 3b if.(min_y.<.0)........min_y.=.0;
823c0 00 00 00 11 20 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 00 00 00 12 20 20 20 20 6d 61 78 ......if.(max_y.>=.h)........max
823e0 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 _y.=.h.-.1;...(..for.(int.y.=.mi
82400 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 n_y;.y.<=.max_y;.y++).{........i
82420 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 nt.x_start.=.w,.x_end.=.0;...3..
82440 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 ..int.xs[3].=.{x0,.x1,.x2},.ys[3
82460 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 15 20 20 20 20 62 6f 6f 6c 20 68 69 ].=.{y0,.y1,.y2};........bool.hi
82480 74 20 3d 20 66 61 6c 73 65 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 t.=.false;...!....for.(int.i.=.0
824a0 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d ;.i.<.3;.i++).{..........int.j.=
824c0 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 .(i.+.1).%.3;...C......if.((ys[i
824e0 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c ].<=.y.&&.ys[j].>.y).||.(ys[j].<
82500 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 48 20 20 20 20 20 20 20 20 =.y.&&.ys[i].>.y)).{...H........
82520 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 int.x.=.xs[i].+.(y.-.ys[i]).*.(x
82540 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b s[j].-.xs[i])./.(ys[j].-.ys[i]);
82560 00 00 00 18 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 74 61 72 74 29 00 00 00 16 ............if.(x.<.x_start)....
82580 20 20 20 20 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 00 00 16 20 20 20 20 20 20 ..........x_start.=.x;..........
825a0 20 20 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 00 00 00 14 20 20 20 20 20 20 20 20 20 20 78 5f ..if.(x.>.x_end)..............x_
825c0 65 6e 64 20 3d 20 78 3b 00 00 00 13 20 20 20 20 20 20 20 20 68 69 74 20 3d 20 74 72 75 65 3b 00 end.=.x;............hit.=.true;.
825e0 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 0e 20 20 20 20 69 66 20 28 68 .........}........}........if.(h
82600 69 74 29 20 7b 00 00 00 16 20 20 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 74 20 3c 20 30 29 00 it).{..........if.(x_start.<.0).
82620 00 00 14 20 20 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 30 3b 00 00 00 15 20 20 20 20 20 ...........x_start.=.0;.........
82640 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 00 00 00 16 20 20 20 20 20 20 20 20 78 5f 65 6e .if.(x_end.>=.w)............x_en
82660 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 2c 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d d.=.w.-.1;...,......for.(int.x.=
82680 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b 29 00 00 00 1a 20 20 .x_start;.x.<=.x_end;.x++)......
826a0 20 20 20 20 20 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 05 20 20 20 20 ......px[y.*.w.+.x].=.c;........
826c0 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 }......}....}.......#static.void
826e0 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 .render(struct.app.*a).{.../..if
82700 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c .(!a->configured.||.a->w.<=.0.||
82720 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 .a->h.<=.0)........return;......
82740 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 if.(!a->buf)........alloc_buf(a)
82760 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b ;......uint32_t.*px.=.a->pixels;
82780 00 00 00 45 20 20 6d 65 6d 73 65 74 28 70 78 2c 20 28 43 4f 4c 4f 52 5f 42 47 20 3e 3e 20 31 36 ...E..memset(px,.(COLOR_BG.>>.16
827a0 29 20 26 20 30 78 46 46 2c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 29 3b 20 2f 2f 20 42 ).&.0xFF,.a->w.*.a->h.*.4);.//.B
827c0 61 73 69 63 20 66 69 6c 6c 00 00 00 27 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 asic.fill...'..for.(int.i.=.0;.i
827e0 20 3c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 3b 20 69 2b 2b 29 00 00 00 29 20 20 20 20 70 78 5b 69 .<.a->w.*.a->h;.i++)...)....px[i
82800 5d 20 3d 20 43 4f 4c 4f 52 5f 42 47 3b 20 2f 2f 20 46 75 6c 6c 20 33 32 2d 62 69 74 20 66 69 6c ].=.COLOR_BG;.//.Full.32-bit.fil
82820 6c 00 00 00 00 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c l..........time_t.tt.=.time(NULL
82840 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 );......struct.tm.tmv;......loca
82860 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 ltime_r(&tt,.&tmv);...#..int.cx.
82880 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 =.a->w./.2,.cy.=.a->h./.2;.../..
828a0 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d int.r.=.(a->w.<.a->h.?.a->w.:.a-
828c0 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 66 20 28 72 20 3c 20 35 29 00 00 00 >h)./.2.-.10;......if.(r.<.5)...
828e0 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 0f 20 20 2f 2f 20 44 69 61 6c 20 54 69 63 .....r.=.5;..........//.Dial.Tic
82900 6b 73 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 ks......for.(int.i.=.0;.i.<.60;.
82920 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 i++).{........double.ang.=.i./.6
82940 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 31 20 20 20 20 0.0.*.2.*.M_PI.-.M_PI_2;...1....
82960 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 20 2a 20 30 2e 31 int.len.=.(i.%.5.==.0).?.r.*.0.1
82980 32 20 3a 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 64 6f 75 62 6c 65 20 74 5f 61 6e 2.:.r.*.0.04;...0....double.t_an
829a0 67 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 32 20 3a 20 30 2e 30 30 35 g.=.(i.%.5.==.0).?.0.012.:.0.005
829c0 3b 00 00 00 37 20 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 ;...7....fill_tri(px,.a->w,.a->h
829e0 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 20 2d 20 74 5f 61 6e 67 29 20 2a 20 72 2c 00 00 00 42 ,.cx.+.cos(ang.-.t_ang).*.r,...B
82a00 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2d 20 74 5f 61 6e .............cy.+.sin(ang.-.t_an
82a20 67 29 20 2a 20 72 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 20 2b 20 74 5f 61 6e 67 29 20 2a 20 g).*.r,.cx.+.cos(ang.+.t_ang).*.
82a40 72 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 r,...B.............cy.+.sin(ang.
82a60 2b 20 74 5f 61 6e 67 29 20 2a 20 72 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 +.t_ang).*.r,.cx.+.cos(ang).*.(r
82a80 20 2d 20 6c 65 6e 29 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 .-.len),...4.............cy.+.si
82aa0 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 20 43 4f 4c 4f 52 5f 44 49 41 4c 29 3b n(ang).*.(r.-.len),.COLOR_DIAL);
82ac0 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 ......}.......4..double.sa.=.tmv
82ae0 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 .tm_sec./.60.0.*.2.*.M_PI.-.M_PI
82b00 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e _2;...J..double.ma.=.(tmv.tm_min
82b20 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 .+.tmv.tm_sec./.60.0)./.60.0.*.2
82b40 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 .*.M_PI.-.M_PI_2;......double.ha
82b60 20 3d 00 00 00 4c 20 20 20 20 20 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 .=...L......((tmv.tm_hour.%.12).
82b80 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 +.(tmv.tm_min./.60.0))./.12.0.*.
82ba0 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 0e 20 20 2f 2f 20 48 2.*.M_PI.-.M_PI_2;..........//.H
82bc0 6f 75 72 20 48 61 6e 64 00 00 00 42 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c our.Hand...B..fill_tri(px,.a->w,
82be0 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2d 20 30 2e 31 32 29 20 2a 20 72 20 2a .a->h,.cx.+.cos(ha.-.0.12).*.r.*
82c00 20 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 79 20 .HAND_THICK_H,...2...........cy.
82c20 2b 20 73 69 6e 28 68 61 20 2d 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 +.sin(ha.-.0.12).*.r.*.HAND_THIC
82c40 4b 5f 48 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2b K_H,...2...........cx.+.cos(ha.+
82c60 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 00 00 00 32 20 20 .0.12).*.r.*.HAND_THICK_H,...2..
82c80 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2b 20 30 2e 31 32 29 20 2a 20 72 .........cy.+.sin(ha.+.0.12).*.r
82ca0 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 63 .*.HAND_THICK_H,...H...........c
82cc0 78 20 2b 20 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 48 2c 20 63 79 x.+.cos(ha).*.r.*.HAND_LEN_H,.cy
82ce0 20 2b 20 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 48 2c 00 00 00 17 .+.sin(ha).*.r.*.HAND_LEN_H,....
82d00 20 20 20 20 20 20 20 20 20 20 20 43 4f 4c 4f 52 5f 48 4f 55 52 29 3b 00 00 00 10 20 20 2f 2f 20 ...........COLOR_HOUR);......//.
82d20 4d 69 6e 75 74 65 20 48 61 6e 64 00 00 00 42 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d Minute.Hand...B..fill_tri(px,.a-
82d40 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2d 20 30 2e 30 38 29 20 2a 20 >w,.a->h,.cx.+.cos(ma.-.0.08).*.
82d60 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 r.*.HAND_THICK_M,...2...........
82d80 63 79 20 2b 20 73 69 6e 28 6d 61 20 2d 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 cy.+.sin(ma.-.0.08).*.r.*.HAND_T
82da0 48 49 43 4b 5f 4d 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d HICK_M,...2...........cx.+.cos(m
82dc0 61 20 2b 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 00 00 00 a.+.0.08).*.r.*.HAND_THICK_M,...
82de0 32 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2b 20 30 2e 30 38 29 20 2...........cy.+.sin(ma.+.0.08).
82e00 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 *.r.*.HAND_THICK_M,...H.........
82e20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 4d 2c ..cx.+.cos(ma).*.r.*.HAND_LEN_M,
82e40 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 4d 2c 00 .cy.+.sin(ma).*.r.*.HAND_LEN_M,.
82e60 00 00 16 20 20 20 20 20 20 20 20 20 20 20 43 4f 4c 4f 52 5f 4d 49 4e 29 3b 00 00 00 10 20 20 2f ..............COLOR_MIN);....../
82e80 2f 20 53 65 63 6f 6e 64 20 48 61 6e 64 00 00 00 42 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 /.Second.Hand...B..fill_tri(px,.
82ea0 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 20 2d 20 30 2e 30 35 29 20 a->w,.a->h,.cx.+.cos(sa.-.0.05).
82ec0 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 *.r.*.HAND_THICK_S,...2.........
82ee0 20 20 63 79 20 2b 20 73 69 6e 28 73 61 20 2d 20 30 2e 30 35 29 20 2a 20 72 20 2a 20 48 41 4e 44 ..cy.+.sin(sa.-.0.05).*.r.*.HAND
82f00 5f 54 48 49 43 4b 5f 53 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 _THICK_S,...2...........cx.+.cos
82f20 28 73 61 20 2b 20 30 2e 30 35 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 (sa.+.0.05).*.r.*.HAND_THICK_S,.
82f40 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 73 61 20 2b 20 30 2e 30 35 ..2...........cy.+.sin(sa.+.0.05
82f60 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 00 00 48 20 20 20 20 20 20 20 ).*.r.*.HAND_THICK_S,...H.......
82f80 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f ....cx.+.cos(sa).*.r.*.HAND_LEN_
82fa0 53 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 53 S,.cy.+.sin(sa).*.r.*.HAND_LEN_S
82fc0 2c 00 00 00 16 20 20 20 20 20 20 20 20 20 20 20 43 4f 4c 4f 52 5f 53 45 43 29 3b 00 00 00 00 00 ,...............COLOR_SEC);.....
82fe0 00 00 17 20 20 69 6e 74 20 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 10 20 20 .....int.hub_r.=.r.*.0.04;......
83000 69 66 20 28 68 75 62 5f 72 20 3c 20 34 29 00 00 00 0e 20 20 20 20 68 75 62 5f 72 20 3d 20 34 3b if.(hub_r.<.4)........hub_r.=.4;
83020 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 72 20 3c 20 68 75 62 5f ...(..for.(int.ir.=.0;.ir.<.hub_
83040 72 20 2d 20 32 3b 20 69 72 2b 2b 29 00 00 00 31 20 20 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 r.-.2;.ir++)...1....circle(px,.a
83060 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 43 4f 4c 4f 52 5f 42 47 29 ->w,.a->h,.cx,.cy,.ir,.COLOR_BG)
83080 3b 00 00 00 33 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 ;...3..circle(px,.a->w,.a->h,.cx
830a0 2c 20 63 79 2c 20 68 75 62 5f 72 2c 20 43 4f 4c 4f 52 5f 48 55 42 29 3b 00 00 00 00 00 00 00 29 ,.cy,.hub_r,.COLOR_HUB);.......)
830c0 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 ..wl_surface_attach(a->ws,.a->bu
830e0 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 f,.0,.0);...4..wl_surface_damage
83100 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 _buffer(a->ws,.0,.0,.a->w,.a->h)
83120 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b ;......wl_surface_commit(a->ws);
83140 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 ......a->redraw.=.false;....}...
83160 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a ....Gstatic.void.xt_close(void.*
83180 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 72 75 d,.struct.xdg_toplevel.*xt).{.ru
831a0 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 nning.=.0;.}...Jstatic.void.xt_c
831c0 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 fg(void.*d,.struct.xdg_toplevel.
831e0 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 28 20 20 *xt,.int32_t.w,.int32_t.h,...(..
83200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 .................struct.wl_array
83220 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 .*s).{......struct.app.*a.=.d;..
83240 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 .3..if.(w.>.0.&&.h.>.0.&&.(w.!=.
83260 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e a->w.||.h.!=.a->h)).{........a->
83280 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 13 20 20 20 20 64 w.=.w;........a->h.=.h;........d
832a0 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 15 20 20 20 20 61 2d 3e 72 65 64 72 61 77 20 estroy_buf(a);........a->redraw.
832c0 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 46 73 74 61 74 69 63 20 76 6f =.true;......}....}...Fstatic.vo
832e0 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 id.xs_cfg(void.*d,.struct.xdg_su
83300 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 rface.*xs,.uint32_t.serial).{...
83320 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 28 20 20 78 64 67 5f 73 ...struct.app.*a.=.d;...(..xdg_s
83340 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 urface_ack_configure(xs,.serial)
83360 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 13 ;......a->configured.=.true;....
83380 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 43 73 74 61 74 ..a->redraw.=.true;....}...Cstat
833a0 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 ic.void.reg_global(void.*d,.stru
833c0 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 ct.wl_registry.*r,.uint32_t.id,.
833e0 00 00 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 ..3.......................const.
83400 63 68 61 72 20 2a 69 2c 20 75 69 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 char.*i,.uint32_t.v).{......stru
83420 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 22 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 ct.app.*a.=.d;..."..if.(!strcmp(
83440 69 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 43 20 20 20 20 61 2d 3e 63 i,."wl_compositor"))...C....a->c
83460 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 omp.=.wl_registry_bind(r,.id,.&w
83480 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 20 20 l_compositor_interface,.4);.....
834a0 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 .else.if.(!strcmp(i,."wl_shm")).
834c0 00 00 3b 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 ..;....a->shm.=.wl_registry_bind
834e0 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 (r,.id,.&wl_shm_interface,.1);..
83500 00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d 5f .'..else.if.(!strcmp(i,."xdg_wm_
83520 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 base")).{...?....a->wm.=.wl_regi
83540 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e stry_bind(r,.id,.&xdg_wm_base_in
83560 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 terface,.1);...C....static.const
83580 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 20 3d .struct.xdg_wm_base_listener.l.=
835a0 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f 77 .{.ping.=.wm_ping};...+....xdg_w
835c0 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 m_base_add_listener(a->wm,.&l,.a
835e0 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 );......}....}........int.main(v
83600 6f 69 64 29 20 7b 00 00 00 15 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 oid).{......struct.app.a.=.{0};.
83620 00 00 0c 20 20 61 2e 77 20 3d 20 34 30 30 3b 00 00 00 0c 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 .....a.w.=.400;......a.h.=.400;.
83640 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 .....signal(SIGINT,.on_sig);...!
83660 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 ..a.d.=.wl_display_connect(NULL)
83680 3b 00 00 00 0b 20 20 69 66 20 28 21 61 2e 64 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 ;......if.(!a.d)........return.1
836a0 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 ;...'..a.reg.=.wl_display_get_re
836c0 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 gistry(a.d);...G..static.const.s
836e0 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 truct.wl_registry_listener.rl.=.
83700 7b 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f {.global.=.reg_global};...+..wl_
83720 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c registry_add_listener(a.reg,.&rl
83740 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 ,.&a);......wl_display_roundtrip
83760 28 61 2e 64 29 3b 00 00 00 21 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 (a.d);...!..if.(!a.comp.||.!a.sh
83780 6d 20 7c 7c 20 21 61 2e 77 6d 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e m.||.!a.wm)........return.1;....
837a0 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 ..a.ws.=.wl_compositor_create_su
837c0 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 rface(a.comp);...1..a.xs.=.xdg_w
837e0 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 m_base_get_xdg_surface(a.wm,.a.w
83800 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 s);...G..static.const.struct.xdg
83820 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 _surface_listener.xsl.=.{.config
83840 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f ure.=.xs_cfg};...+..xdg_surface_
83860 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 add_listener(a.xs,.&xsl,.&a);...
83880 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 (..a.xt.=.xdg_surface_get_toplev
838a0 65 6c 28 61 2e 78 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 el(a.xs);...G..static.const.stru
838c0 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b ct.xdg_toplevel_listener.xtl.=.{
838e0 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 00 00 00 46 20 20 20 20 20 20 20 20 .configure.=.xt_cfg,...F........
83900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
83920 20 20 20 20 20 20 20 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 ............close.=.xt_close};..
83940 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e .,..xdg_toplevel_add_listener(a.
83960 78 74 2c 20 26 78 74 6c 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c xt,.&xtl,.&a);...*..xdg_toplevel
83980 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a _set_title(a.xt,."wlclock");....
839a0 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 17 20 20 ..wl_surface_commit(a.ws);......
839c0 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 1d 20 20 20 20 77 6c 5f while.(!a.configured)........wl_
839e0 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 36 20 20 70 72 69 6e display_dispatch(a.d);...6..prin
83a00 74 66 28 22 57 61 79 6c 61 6e 64 20 73 75 72 66 61 63 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 tf("Wayland.surface.successfully
83a20 20 63 6f 6e 66 69 67 75 72 65 64 5c 6e 22 29 3b 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 .configured\n");......render(&a)
83a40 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 ;...9..int.tfd.=.timerfd_create(
83a60 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 CLOCK_MONOTONIC,.TFD_CLOEXEC);..
83a80 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 .F..timerfd_settime(tfd,.0,.&(st
83aa0 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d ruct.itimerspec){{1,.0},.{1,.0}}
83ac0 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 ,.NULL);......char.buffer[100];.
83ae0 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 .....while.(running).{...-....wh
83b00 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 ile.(wl_display_prepare_read(a.d
83b20 29 20 21 3d 20 30 29 00 00 00 27 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 ).!=.0)...'......wl_display_disp
83b40 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 atch_pending(a.d);........wl_dis
83b60 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 play_flush(a.d);...M....struct.p
83b80 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f ollfd.fds[2].=.{{wl_display_get_
83ba0 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d fd(a.d),.POLLIN},.{tfd,.POLLIN}}
83bc0 3b 00 00 00 1f 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 ;........if.(poll(fds,.2,.-1).<.
83be0 30 29 20 7b 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 0).{..."......wl_display_cancel_
83c00 72 65 61 64 28 61 2e 64 29 3b 00 00 00 0f 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 read(a.d);..........continue;...
83c20 05 20 20 20 20 7d 00 00 00 20 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 .....}........if.(fds[0].revents
83c40 20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 .&.POLLIN)..."......wl_display_r
83c60 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 00 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 ead_events(a.d);........else..."
83c80 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 ......wl_display_cancel_read(a.d
83ca0 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 );...%....wl_display_dispatch_pe
83cc0 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 nding(a.d);..."....if.(fds[1].re
83ce0 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 vents.&.POLLIN).{..........uint6
83d00 34 5f 74 20 74 5f 65 78 70 3b 00 00 00 27 20 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 4_t.t_exp;...'......read(tfd,.&t
83d20 5f 65 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 78 70 29 29 3b 00 00 00 1e 20 20 20 20 20 20 74 _exp,.sizeof(t_exp));..........t
83d40 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 20 ime_t.cli.=.time(NULL);...,.....
83d60 20 73 74 72 75 63 74 20 74 6d 20 2a 74 5f 73 74 72 75 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 .struct.tm.*t_struct.=.localtime
83d80 28 26 63 6c 69 29 3b 00 00 00 49 20 20 20 20 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 (&cli);...I......strftime(buffer
83da0 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 ,.sizeof(buffer),."%d-%m-%Y.%I:%
83dc0 4d 3a 25 53 20 25 70 22 2c 20 74 5f 73 74 72 75 63 74 29 3b 00 00 00 25 20 20 20 20 20 20 70 72 M:%S.%p",.t_struct);...%......pr
83de0 69 6e 74 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 73 22 2c 20 62 75 66 66 65 72 29 3b 00 00 00 intf("\rTime.is.%s",.buffer);...
83e00 15 20 20 20 20 20 20 66 66 6c 75 73 68 28 73 74 64 6f 75 74 29 3b 00 00 00 16 20 20 20 20 20 20 .......fflush(stdout);..........
83e20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 11 20 20 20 a.redraw.=.true;........}.......
83e40 20 69 66 20 28 61 2e 72 65 64 72 61 77 29 00 00 00 11 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 .if.(a.redraw)..........render(&
83e60 61 29 3b 00 00 00 03 20 20 7d 00 00 00 0f 20 20 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b 00 00 00 a);......}......printf("\n");...
83e80 0d 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 12 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 ...close(tfd);......destroy_buf(
83ea0 26 61 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 &a);......wl_display_disconnect(
83ec0 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 a.d);......return.0;....}5......
83ee0 00 00 00 00 00 00 00 00 00 42 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........B......................
83f00 00 a9 26 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 b5 00 00 00 b7 00 00 00 ..&..............5._............
83f20 00 00 00 00 00 00 00 00 b6 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 ................................
83f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d ab 7e 04 01 00 00 00 .......................i..~.....
840a0 00 00 f5 18 00 00 00 f4 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 f5 00 ........................}.......
840c0 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 ec 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................................
840e0 46 20 20 20 20 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 F......strftime(buffer,.sizeof(b
84100 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c 20 uffer),."%d-%m-%Y.%I:%M:%S.%p",.
84120 74 5f 73 74 72 75 63 f5 18 00 00 00 ed 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 d6 00 t_struc.........................
84140 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0a 20 20 78 64 67 5f 74 6f 70 6c f5 18 00 00 00 d7 00 .................xdg_topl.......
84160 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 d2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................................
84180 03 20 20 73 f5 18 00 00 00 d3 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 c2 00 00 00 00 ...s............................
841a0 00 00 00 00 00 00 00 01 00 00 00 0b 20 20 20 20 78 64 67 5f 77 6d 5f f5 18 00 00 00 c3 00 00 00 ................xdg_wm_.........
841c0 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 b3 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0c 20 ................................
841e0 20 69 66 20 28 77 20 3e 20 30 20 f5 18 00 00 00 b4 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 .if.(w.>.0......................
84200 00 00 ab 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 33 20 20 77 6c 5f 73 75 72 66 61 63 65 5f ..................3..wl_surface_
84220 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c damage_buffer(a->ws,.0,.0,.a->w,
84240 20 61 2d 3e 68 29 f5 18 00 00 00 ac 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 a6 00 00 .a->h)..........................
84260 00 00 00 00 00 00 00 00 00 01 00 00 00 1b 20 20 69 6e 74 20 68 75 62 5f 72 20 3d 20 72 20 2a 20 ................int.hub_r.=.r.*.
84280 30 2e 30 34 3b 20 69 66 20 f5 18 00 00 00 a7 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 0.04;.if........................
842a0 95 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 35 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 ................5.............cx
842c0 20 2b 20 63 6f 73 28 61 6e 67 29 2a 28 72 2d 6c 65 6e 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e .+.cos(ang)*(r-len),.cy.+.sin(an
842e0 67 29 2a 28 72 2d f5 18 00 00 00 96 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 76 00 00 g)*(r-.......................v..
84300 00 00 00 00 00 00 00 00 00 01 00 00 00 33 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 .............3........int.x.=.xs
84320 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b [i].+.(y.-.ys[i]).*.(xs[j].-.xs[
84340 69 f5 18 00 00 00 77 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 i.....w.........................
84360 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 ...........................5....
84380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 76 00 00 00 33 00 00 00 00 00 00 00 00 ...................v...3........
843a0 00 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 f5 18 00 00 00 00 76 00 00 00 33 00 00 .........................v...3..
843c0 00 00 00 00 00 00 00 00 00 1f 00 00 00 35 00 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 .............5..................
843e0 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 95 00 00 00 35 00 00 00 00 00 00 00 00 00 00 00 11 ...................5............
84400 00 00 00 1b 00 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 ................................
84420 18 00 00 00 00 a6 00 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 33 00 00 00 00 17 00 .........................3......
84440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 ab 00 00 00 33 ...............................3
84460 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 0c 00 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 ................................
84480 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 b3 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 ................................
844a0 00 0f 00 00 00 0b 00 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ................................
844c0 00 f5 18 00 00 00 00 c2 00 00 00 0b 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 03 00 00 00 00 ................................
844e0 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 d2 00 00 ................................
84500 00 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 0a 00 00 00 00 1e 00 00 00 00 00 00 00 00 00 ................................
84520 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 d6 00 00 00 0a 00 00 00 00 00 00 00 00 ................................
84540 00 00 00 16 00 00 00 46 00 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 .......F........................
84560 00 00 00 f5 18 00 00 00 00 ec 00 00 00 46 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 01 00 00 .............F..................
84580 00 00 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cf 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 ..#......................5._....
845a0 b6 00 00 00 b8 00 00 00 00 00 00 00 00 00 00 00 b7 00 00 00 f5 00 00 00 00 00 00 00 00 ff ff ff ................................
845c0 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
845e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
846a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
846c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
846e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 ...............................i
84720 9d ab 7f 04 01 00 00 00 41 00 f5 18 00 00 00 12 00 00 01 3e 00 00 00 f5 00 00 00 e1 00 00 00 35 ........A..........>...........5
84740 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 42 47 20 20 20 20 20 20 30 78 46 46 31 41 31 41 31 41 #define.COLOR_BG......0xFF1A1A1A
84760 20 20 2f 2a 20 44 61 72 6b 20 43 68 61 72 63 6f 61 6c 20 2a 2f 00 00 00 33 23 64 65 66 69 6e 65 ../*.Dark.Charcoal.*/...3#define
84780 20 43 4f 4c 4f 52 5f 44 49 41 4c 20 20 20 20 30 78 46 46 46 46 46 46 46 46 20 20 2f 2a 20 57 68 .COLOR_DIAL....0xFFFFFFFF../*.Wh
847a0 69 74 65 20 54 69 63 6b 73 20 2a 2f 00 00 00 31 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 48 4f ite.Ticks.*/...1#define.COLOR_HO
847c0 55 52 20 20 20 20 30 78 46 46 45 45 45 45 45 45 20 20 2f 2a 20 4f 66 66 2d 77 68 69 74 65 20 2a UR....0xFFEEEEEE../*.Off-white.*
847e0 2f 00 00 00 32 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 4d 49 4e 20 20 20 20 20 30 78 46 46 43 /...2#define.COLOR_MIN.....0xFFC
84800 43 43 43 43 43 20 20 2f 2a 20 4c 69 67 68 74 20 47 72 65 79 20 2a 2f 00 00 00 32 23 64 65 66 69 CCCCC../*.Light.Grey.*/...2#defi
84820 6e 65 20 43 4f 4c 4f 52 5f 53 45 43 20 20 20 20 20 30 78 46 46 46 46 30 30 30 30 20 20 2f 2a 20 ne.COLOR_SEC.....0xFFFF0000../*.
84840 42 72 69 67 68 74 20 52 65 64 20 2a 2f 00 00 00 34 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 48 Bright.Red.*/...4#define.COLOR_H
84860 55 42 20 20 20 20 20 30 78 46 46 34 34 34 34 34 34 20 20 2f 2a 20 48 75 62 20 43 61 70 20 47 72 UB.....0xFF444444../*.Hub.Cap.Gr
84880 65 79 20 2a 2f 00 00 00 00 00 00 00 42 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 54 48 49 43 4b 5f ey.*/.......B#define.HAND_THICK_
848a0 48 20 20 30 2e 30 35 20 20 20 20 20 20 20 20 2f 2a 20 48 6f 75 72 20 68 61 6e 64 20 74 68 69 63 H..0.05......../*.Hour.hand.thic
848c0 6b 6e 65 73 73 20 66 61 63 74 6f 72 20 2a 2f 00 00 00 44 23 64 65 66 69 6e 65 20 48 41 4e 44 5f kness.factor.*/...D#define.HAND_
848e0 54 48 49 43 4b 5f 4d 20 20 30 2e 30 33 35 20 20 20 20 20 20 20 2f 2a 20 4d 69 6e 75 74 65 20 68 THICK_M..0.035......./*.Minute.h
84900 61 6e 64 20 74 68 69 63 6b 6e 65 73 73 20 66 61 63 74 6f 72 20 2a 2f 00 00 00 44 23 64 65 66 69 and.thickness.factor.*/...D#defi
84920 6e 65 20 48 41 4e 44 5f 54 48 49 43 4b 5f 53 20 20 30 2e 30 34 20 20 20 20 20 20 20 20 2f 2a 20 ne.HAND_THICK_S..0.04......../*.
84940 53 65 63 6f 6e 64 20 68 61 6e 64 20 74 68 69 63 6b 6e 65 73 73 20 66 61 63 74 6f 72 20 2a 2f 00 Second.hand.thickness.factor.*/.
84960 00 00 00 00 00 00 4d 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 4c 45 4e 5f 48 20 20 20 20 30 2e 35 ......M#define.HAND_LEN_H....0.5
84980 35 20 20 20 20 20 20 20 20 2f 2a 20 48 6f 75 72 20 68 61 6e 64 20 6c 65 6e 67 74 68 20 28 66 72 5......../*.Hour.hand.length.(fr
849a0 61 63 74 69 6f 6e 20 6f 66 20 72 61 64 69 75 73 29 20 2a 2f 00 00 00 3a 23 64 65 66 69 6e 65 20 action.of.radius).*/...:#define.
849c0 48 41 4e 44 5f 4c 45 4e 5f 4d 20 20 20 20 30 2e 38 30 20 20 20 20 20 20 20 20 2f 2a 20 4d 69 6e HAND_LEN_M....0.80......../*.Min
849e0 75 74 65 20 68 61 6e 64 20 6c 65 6e 67 74 68 20 2a 2f 00 00 00 3a 23 64 65 66 69 6e 65 20 48 41 ute.hand.length.*/...:#define.HA
84a00 4e 44 5f 4c 45 4e 5f 53 20 20 20 20 30 2e 38 30 20 20 20 20 20 20 20 20 2f 2a 20 53 65 63 6f 6e ND_LEN_S....0.80......../*.Secon
84a20 64 20 68 61 6e 64 20 6c 65 6e 67 74 68 20 2a 2f 00 00 00 1c 2f 2a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d d.hand.length.*/..../*.---------
84a40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 2a 2f 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 -------------.*/........#ifndef.
84a60 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 M_PI...##define.M_PI.3.141592653
84a80 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 58979323846....#endif....#ifndef
84aa0 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 .M_PI_2...%#define.M_PI_2.1.5707
84ac0 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 9632679489661923....#endif......
84ae0 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 .)static.volatile.sig_atomic_t.r
84b00 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 33 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 unning.=.1;...3static.void.on_si
84b20 67 28 69 6e 74 20 73 29 20 7b 20 28 76 6f 69 64 29 73 3b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b g(int.s).{.(void)s;.running.=.0;
84b40 20 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 .}........struct.app.{......stru
84b60 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c ct.wl_display.*d;......struct.wl
84b80 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 _registry.*reg;......struct.wl_c
84ba0 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f ompositor.*comp;......struct.wl_
84bc0 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 shm.*shm;......struct.xdg_wm_bas
84be0 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 e.*wm;......struct.wl_surface.*w
84c00 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 s;......struct.xdg_surface.*xs;.
84c20 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 .....struct.xdg_toplevel.*xt;...
84c40 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f ...void.*pixels;......struct.wl_
84c60 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 buffer.*buf;......int.w,.h;.....
84c80 20 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 .int.bw,.bh;......bool.configure
84ca0 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 d;......bool.redraw;....};......
84cc0 00 6a 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 .jstatic.void.wm_ping(void.*data
84ce0 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 ,.struct.xdg_wm_base.*wm,.uint32
84d00 5f 74 20 73 65 72 69 61 6c 29 20 7b 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d _t.serial).{.xdg_wm_base_pong(wm
84d20 2c 20 73 65 72 69 61 6c 29 3b 20 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 69 6e 74 20 63 ,.serial);.}.......$static.int.c
84d40 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 20 63 68 reate_shm(size_t.size).{...#..ch
84d60 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 ar.t[].=."/tmp/wlclock-XXXXXX";.
84d80 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 16 20 20 69 .....int.fd.=.mkstemp(t);......i
84da0 66 20 28 66 64 20 3c 20 30 29 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 f.(fd.<.0).exit(1);......unlink(
84dc0 74 29 3b 00 00 00 27 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 t);...'..if.(ftruncate(fd,.size)
84de0 20 3c 20 30 29 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 .<.0).exit(1);......return.fd;..
84e00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 ..}.......(static.void.destroy_b
84e20 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 16 20 20 69 66 20 28 21 61 2d uf(struct.app.*a).{......if.(!a-
84e40 3e 62 75 66 29 20 72 65 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d >buf).return;...*..size_t.size.=
84e60 20 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 .(size_t)a->bw.*.a->bh.*.4;.....
84e80 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 .wl_buffer_destroy(a->buf);.....
84ea0 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 22 20 20 61 .munmap(a->pixels,.size);..."..a
84ec0 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 ->buf.=.NULL;.a->pixels.=.NULL;.
84ee0 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 ...}.......&static.void.alloc_bu
84f00 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f f(struct.app.*a).{......destroy_
84f20 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 buf(a);...(..size_t.size.=.(size
84f40 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 20 _t)a->w.*.a->h.*.4;......int.fd.
84f60 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 =.create_shm(size);...J..a->pixe
84f80 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 ls.=.mmap(NULL,.size,.PROT_READ.
84fa0 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 |.PROT_WRITE,.MAP_SHARED,.fd,.0)
84fc0 3b 00 00 00 27 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c ;...'..if.(a->pixels.==.MAP_FAIL
84fe0 45 44 29 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f ED).exit(1);...B..struct.wl_shm_
85000 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 pool.*pool.=.wl_shm_create_pool(
85020 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 5c 20 20 61 2d 3e 62 75 66 20 3d a->shm,.fd,.size);...\..a->buf.=
85040 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c .wl_shm_pool_create_buffer(pool,
85060 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 20 57 4c 5f 53 48 4d .0,.a->w,.a->h,.a->w.*.4,.WL_SHM
85080 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 _FORMAT_ARGB8888);......wl_shm_p
850a0 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 ool_destroy(pool);......close(fd
850c0 29 3b 00 00 00 1d 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b 20 61 2d 3e 62 68 20 3d 20 61 2d );......a->bw.=.a->w;.a->bh.=.a-
850e0 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 53 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 >h;....}.......Sstatic.void.circ
85100 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 le(uint32_t.*px,.int.w,.int.h,.i
85120 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 nt.cx,.int.cy,.int.r,.uint32_t.c
85140 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 ).{..."..int.x.=.0,.y.=.r,.d.=.3
85160 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 .-.2.*.r;......while.(y.>=.x).{.
85180 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 ..H....int.p[8][2].=.{{cx.+.x,.c
851a0 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 y.+.y},.{cx.-.x,.cy.+.y},.{cx.+.
851c0 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 x,.cy.-.y},...H.................
851e0 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 ..{cx.-.x,.cy.-.y},.{cx.+.y,.cy.
85200 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 +.x},.{cx.-.y,.cy.+.x},...7.....
85220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 ..............{cx.+.y,.cy.-.x},.
85240 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 {cx.-.y,.cy.-.x}};........for.(i
85260 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 nt.i.=.0;.i.<.8;.i++)...E......i
85280 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 f.(p[i][0].>=.0.&&.p[i][0].<.w.&
852a0 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 &.p[i][1].>=.0.&&.p[i][1].<.h)..
852c0 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b .&........px[p[i][1].*.w.+.p[i][
852e0 30 5d 5d 20 3d 20 63 3b 00 00 00 43 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 20 64 20 2b 0]].=.c;...C....if.(d.>.0).{.d.+
85300 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 20 79 2d 2d 3b 20 7d 20 65 6c 73 65 20 =.4.*.(x.-.y).+.10;.y--;.}.else.
85320 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 d.+=.4.*.x.+.6;........x++;.....
85340 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 6e 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f .}....}.......nstatic.void.fill_
85360 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 tri(uint32_t.*px,.int.w,.int.h,.
85380 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 int.x0,.int.y0,.int.x1,.int.y1,.
853a0 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 int.x2,.int.y2,.uint32_t.c).{...
853c0 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 B..int.min_y.=.y0.<.y1.?.(y0.<.y
853e0 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 2.?.y0.:.y2).:.(y1.<.y2.?.y1.:.y
85400 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 2);...B..int.max_y.=.y0.>.y1.?.(
85420 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 y0.>.y2.?.y0.:.y2).:.(y1.>.y2.?.
85440 79 31 20 3a 20 79 32 29 3b 00 00 00 3a 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 20 6d 69 y1.:.y2);...:..if.(min_y.<.0).mi
85460 6e 5f 79 20 3d 20 30 3b 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 20 6d 61 78 5f 79 20 3d n_y.=.0;.if.(max_y.>=.h).max_y.=
85480 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b .h.-.1;...(..for.(int.y.=.min_y;
854a0 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 .y.<=.max_y;.y++).{........int.x
854c0 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e _start.=.w,.x_end.=.0;...3....in
854e0 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 t.xs[3].=.{x0,.x1,.x2},.ys[3].=.
85500 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 15 20 20 20 20 62 6f 6f 6c 20 68 69 74 20 3d 20 {y0,.y1,.y2};........bool.hit.=.
85520 66 61 6c 73 65 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 false;...!....for.(int.i.=.0;.i.
85540 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 <.3;.i++).{..........int.j.=.(i.
85560 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d +.1).%.3;...C......if.((ys[i].<=
85580 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 .y.&&.ys[j].>.y).||.(ys[j].<=.y.
855a0 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 48 20 20 20 20 20 20 20 20 69 6e 74 20 &&.ys[i].>.y)).{...H........int.
855c0 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d x.=.xs[i].+.(y.-.ys[i]).*.(xs[j]
855e0 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b 00 00 00 3f .-.xs[i])./.(ys[j].-.ys[i]);...?
85600 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 74 61 72 74 29 20 78 5f 73 74 61 72 74 ........if.(x.<.x_start).x_start
85620 20 3d 20 78 3b 20 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 20 78 5f 65 6e 64 20 3d 20 78 3b 00 .=.x;.if.(x.>.x_end).x_end.=.x;.
85640 00 00 13 20 20 20 20 20 20 20 20 68 69 74 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 ...........hit.=.true;..........
85660 7d 00 00 00 05 20 20 20 20 7d 00 00 00 0e 20 20 20 20 69 66 20 28 68 69 74 29 20 7b 00 00 00 42 }........}........if.(hit).{...B
85680 20 20 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 74 20 3c 20 30 29 20 78 5f 73 74 61 72 74 20 3d ......if.(x_start.<.0).x_start.=
856a0 20 30 3b 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 .0;.if.(x_end.>=.w).x_end.=.w.-.
856c0 31 3b 00 00 00 3f 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 1;...?......for.(int.x.=.x_start
856e0 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b 29 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d ;.x.<=.x_end;.x++).px[y.*.w.+.x]
85700 20 3d 20 63 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 .=.c;........}......}....}......
85720 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 .#static.void.render(struct.app.
85740 2a 61 29 20 7b 00 00 00 37 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c *a).{...7..if.(!a->configured.||
85760 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 20 72 65 74 75 72 6e 3b .a->w.<=.0.||.a->h.<=.0).return;
85780 00 00 00 1c 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b ......if.(!a->buf).alloc_buf(a);
857a0 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 ......uint32_t.*px.=.a->pixels;.
857c0 00 00 36 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 20 69 20 3c 20 61 2d 3e 77 20 2a 20 61 2d 3e ..6..for(int.i=0;.i.<.a->w.*.a->
857e0 68 3b 20 69 2b 2b 29 20 70 78 5b 69 5d 20 3d 20 43 4f 4c 4f 52 5f 42 47 3b 00 00 00 00 00 00 00 h;.i++).px[i].=.COLOR_BG;.......
85800 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 ...time_t.tt.=.time(NULL);......
85820 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 struct.tm.tmv;......localtime_r(
85840 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f &tt,.&tmv);...#..int.cx.=.a->w./
85860 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 .2,.cy.=.a->h./.2;.../..int.r.=.
85880 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 (a->w.<.a->h.?.a->w.:.a->h)./.2.
858a0 2d 20 31 30 3b 00 00 00 13 20 20 69 66 20 28 72 20 3c 20 35 29 20 72 20 3d 20 35 3b 00 00 00 00 -.10;......if.(r.<.5).r.=.5;....
858c0 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b ......for.(int.i.=.0;.i.<.60;.i+
858e0 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e +).{........double.ang.=.i./.60.
85900 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 31 20 20 20 20 69 6e 0.*.2.*.M_PI.-.M_PI_2;...1....in
85920 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 20 2a 20 30 2e 31 32 20 t.len.=.(i.%.5.==.0).?.r.*.0.12.
85940 3a 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 64 6f 75 62 6c 65 20 74 5f 61 6e 67 20 :.r.*.0.04;...0....double.t_ang.
85960 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 32 20 3a 20 30 2e 30 30 35 3b 00 =.(i.%.5.==.0).?.0.012.:.0.005;.
85980 00 00 4a 20 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 ..J....fill_tri(px,.a->w,.a->h,.
859a0 63 78 20 2b 20 63 6f 73 28 61 6e 67 2d 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 cx.+.cos(ang-t_ang)*r,.cy.+.sin(
859c0 61 6e 67 2d 74 5f 61 6e 67 29 2a 72 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 ang-t_ang)*r,...:.............cx
859e0 20 2b 20 63 6f 73 28 61 6e 67 2b 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e .+.cos(ang+t_ang)*r,.cy.+.sin(an
85a00 67 2b 74 5f 61 6e 67 29 2a 72 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b g+t_ang)*r,...G.............cx.+
85a20 20 63 6f 73 28 61 6e 67 29 2a 28 72 2d 6c 65 6e 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 .cos(ang)*(r-len),.cy.+.sin(ang)
85a40 2a 28 72 2d 6c 65 6e 29 2c 20 43 4f 4c 4f 52 5f 44 49 41 4c 29 3b 00 00 00 03 20 20 7d 00 00 00 *(r-len),.COLOR_DIAL);......}...
85a60 00 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 ....4..double.sa.=.tmv.tm_sec./.
85a80 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 60.0.*.2.*.M_PI.-.M_PI_2;...J..d
85aa0 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f ouble.ma.=.(tmv.tm_min.+.tmv.tm_
85ac0 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 sec./.60.0)./.60.0.*.2.*.M_PI.-.
85ae0 4d 5f 50 49 5f 32 3b 00 00 00 54 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 76 2e 74 M_PI_2;...T..double.ha.=.((tmv.t
85b00 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e m_hour.%.12).+.(tmv.tm_min./.60.
85b20 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 0))./.12.0.*.2.*.M_PI.-.M_PI_2;.
85b40 00 00 00 00 00 00 5f 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 ......_..fill_tri(px,.a->w,.a->h
85b60 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 2d 30 2e 31 32 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b ,.cx.+.cos(ha-0.12)*r*HAND_THICK
85b80 5f 48 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 2d 30 2e 31 32 29 2a 72 2a 48 41 4e 44 5f 54 48 49 _H,.cy.+.sin(ha-0.12)*r*HAND_THI
85ba0 43 4b 5f 48 2c 20 00 00 00 4f 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 CK_H,....O...........cx.+.cos(ha
85bc0 2b 30 2e 31 32 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 20 63 79 20 2b 20 73 69 6e 28 +0.12)*r*HAND_THICK_H,.cy.+.sin(
85be0 68 61 2b 30 2e 31 32 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 20 00 00 00 4d 20 20 20 ha+0.12)*r*HAND_THICK_H,....M...
85c00 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f ........cx.+.cos(ha)*r*HAND_LEN_
85c20 48 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 48 2c 20 43 4f H,.cy.+.sin(ha)*r*HAND_LEN_H,.CO
85c40 4c 4f 52 5f 48 4f 55 52 29 3b 00 00 00 5f 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e LOR_HOUR);..._..fill_tri(px,.a->
85c60 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 2d 30 2e 30 38 29 2a 72 2a 48 41 4e w,.a->h,.cx.+.cos(ma-0.08)*r*HAN
85c80 44 5f 54 48 49 43 4b 5f 4d 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 2d 30 2e 30 38 29 2a 72 2a 48 D_THICK_M,.cy.+.sin(ma-0.08)*r*H
85ca0 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 20 00 00 00 4f 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b AND_THICK_M,....O...........cx.+
85cc0 20 63 6f 73 28 6d 61 2b 30 2e 30 38 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 20 63 79 .cos(ma+0.08)*r*HAND_THICK_M,.cy
85ce0 20 2b 20 73 69 6e 28 6d 61 2b 30 2e 30 38 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 20 .+.sin(ma+0.08)*r*HAND_THICK_M,.
85d00 00 00 00 4c 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 2a 72 2a 48 41 ...L...........cx.+.cos(ma)*r*HA
85d20 4e 44 5f 4c 45 4e 5f 4d 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 ND_LEN_M,.cy.+.sin(ma)*r*HAND_LE
85d40 4e 5f 4d 2c 20 43 4f 4c 4f 52 5f 4d 49 4e 29 3b 00 00 00 5e 20 20 66 69 6c 6c 5f 74 72 69 28 70 N_M,.COLOR_MIN);...^..fill_tri(p
85d60 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 2d 30 2e 30 35 29 x,.a->w,.a->h,.cx.+.cos(sa-0.05)
85d80 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 2d 30 2e 30 *r*HAND_THICK_S,.cy.+.sin(sa-0.0
85da0 35 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 5)*r*HAND_THICK_S,...N..........
85dc0 20 63 78 20 2b 20 63 6f 73 28 73 61 2b 30 2e 30 35 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f .cx.+.cos(sa+0.05)*r*HAND_THICK_
85de0 53 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 2b 30 2e 30 35 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 S,.cy.+.sin(sa+0.05)*r*HAND_THIC
85e00 4b 5f 53 2c 00 00 00 4c 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 29 2a K_S,...L...........cx.+.cos(sa)*
85e20 72 2a 48 41 4e 44 5f 4c 45 4e 5f 53 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 29 2a 72 2a 48 41 4e r*HAND_LEN_S,.cy.+.sin(sa)*r*HAN
85e40 44 5f 4c 45 4e 5f 53 2c 20 43 4f 4c 4f 52 5f 53 45 43 29 3b 00 00 00 00 00 00 00 31 20 20 69 6e D_LEN_S,.COLOR_SEC);.......1..in
85e60 74 20 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e 30 34 3b 20 69 66 20 28 68 75 62 5f 72 20 3c 20 t.hub_r.=.r.*.0.04;.if.(hub_r.<.
85e80 34 29 20 68 75 62 5f 72 20 3d 20 34 3b 00 00 00 56 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 4).hub_r.=.4;...V..for.(int.ir.=
85ea0 20 30 3b 20 69 72 20 3c 20 68 75 62 5f 72 20 2d 20 32 3b 20 69 72 2b 2b 29 20 63 69 72 63 6c 65 .0;.ir.<.hub_r.-.2;.ir++).circle
85ec0 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 43 4f 4c (px,.a->w,.a->h,.cx,.cy,.ir,.COL
85ee0 4f 52 5f 42 47 29 3b 00 00 00 33 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d OR_BG);...3..circle(px,.a->w,.a-
85f00 3e 68 2c 20 63 78 2c 20 63 79 2c 20 68 75 62 5f 72 2c 20 43 4f 4c 4f 52 5f 48 55 42 29 3b 00 00 >h,.cx,.cy,.hub_r,.COLOR_HUB);..
85f20 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c .....)..wl_surface_attach(a->ws,
85f40 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 63 65 5f .a->buf,.0,.0);...4..wl_surface_
85f60 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c damage_buffer(a->ws,.0,.0,.a->w,
85f80 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 .a->h);......wl_surface_commit(a
85fa0 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 ->ws);......a->redraw.=.false;..
85fc0 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 ..}.......Gstatic.void.xt_close(
85fe0 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 void.*d,.struct.xdg_toplevel.*xt
86000 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 60 73 74 61 74 69 63 20 76 6f 69 ).{.running.=.0;.}...`static.voi
86020 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 d.xt_cfg(void.*d,.struct.xdg_top
86040 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c level.*xt,.int32_t.w,.int32_t.h,
86060 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 .struct.wl_array.*s).{......stru
86080 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 ct.app.*a.=.d;...3..if.(w.>.0.&&
860a0 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e .h.>.0.&&.(w.!=.a->w.||.h.!=.a->
860c0 68 29 29 20 7b 00 00 00 39 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 20 61 2d 3e 68 20 3d 20 68 3b h)).{...9....a->w.=.w;.a->h.=.h;
860e0 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 .destroy_buf(a);.a->redraw.=.tru
86100 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 e;......}....}...Fstatic.void.xs
86120 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 _cfg(void.*d,.struct.xdg_surface
86140 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 3b 20 20 73 74 .*xs,.uint32_t.serial).{...;..st
86160 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b ruct.app.*a.=.d;.xdg_surface_ack
86180 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 29 20 20 61 2d 3e _configure(xs,.serial);...)..a->
861a0 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 configured.=.true;.a->redraw.=.t
861c0 72 75 65 3b 00 00 00 01 7d 00 00 00 60 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f rue;....}...`static.void.reg_glo
861e0 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 bal(void.*d,.struct.wl_registry.
86200 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c 20 *r,.uint32_t.id,.const.char.*i,.
86220 75 69 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 uint32_t.v).{......struct.app.*a
86240 20 3d 20 64 3b 00 00 00 62 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f .=.d;...b..if.(!strcmp(i,."wl_co
86260 6d 70 6f 73 69 74 6f 72 22 29 29 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 mpositor")).a->comp.=.wl_registr
86280 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 y_bind(r,.id,.&wl_compositor_int
862a0 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 58 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d erface,.4);...X..else.if.(!strcm
862c0 70 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 p(i,."wl_shm")).a->shm.=.wl_regi
862e0 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 stry_bind(r,.id,.&wl_shm_interfa
86300 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c ce,.1);...'..else.if.(!strcmp(i,
86320 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 ."xdg_wm_base")).{...?....a->wm.
86340 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 =.wl_registry_bind(r,.id,.&xdg_w
86360 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 73 74 61 m_base_interface,.1);...C....sta
86380 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 tic.const.struct.xdg_wm_base_lis
863a0 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b tener.l.=.{.ping.=.wm_ping};...+
863c0 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e ....xdg_wm_base_add_listener(a->
863e0 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 wm,.&l,.a);......}....}........i
86400 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 2b 20 20 73 74 72 75 63 74 20 61 70 70 20 nt.main(void).{...+..struct.app.
86420 61 20 3d 20 7b 30 7d 3b 20 61 2e 77 20 3d 20 34 30 30 3b 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 a.=.{0};.a.w.=.400;.a.h.=.400;..
86440 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 ....signal(SIGINT,.on_sig);...!.
86460 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b .a.d.=.wl_display_connect(NULL);
86480 00 00 00 15 20 20 69 66 20 28 21 61 2e 64 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 ......if.(!a.d).return.1;...'..a
864a0 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 .reg.=.wl_display_get_registry(a
864c0 2e 64 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c .d);...G..static.const.struct.wl
864e0 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c _registry_listener.rl.=.{.global
86500 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 .=.reg_global};...+..wl_registry
86520 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 _add_listener(a.reg,.&rl,.&a);..
86540 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 ....wl_display_roundtrip(a.d);..
86560 00 2b 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e .+..if.(!a.comp.||.!a.shm.||.!a.
86580 77 6d 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d wm).return.1;......a.ws.=.wl_com
865a0 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 positor_create_surface(a.comp);.
865c0 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f ..1..a.xs.=.xdg_wm_base_get_xdg_
865e0 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 surface(a.wm,.a.ws);...G..static
86600 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e .const.struct.xdg_surface_listen
86620 65 72 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 er.xsl.=.{.configure.=.xs_cfg};.
86640 00 00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e ..+..xdg_surface_add_listener(a.
86660 78 73 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 xs,.&xsl,.&a);...(..a.xt.=.xdg_s
86680 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 5b 20 20 urface_get_toplevel(a.xs);...[..
866a0 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c static.const.struct.xdg_toplevel
866c0 5f 6c 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 _listener.xtl.=.{.configure.=.xt
866e0 5f 63 66 67 2c 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 _cfg,..close.=.xt_close};...,..x
86700 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 dg_toplevel_add_listener(a.xt,.&
86720 78 74 6c 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f xtl,.&a);...*..xdg_toplevel_set_
86740 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f title(a.xt,."wlclock");......wl_
86760 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 31 20 20 77 68 69 6c 65 surface_commit(a.ws);...1..while
86780 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 .(!a.configured).wl_display_disp
867a0 61 74 63 68 28 61 2e 64 29 3b 00 00 00 02 20 20 00 00 00 32 20 20 70 75 74 73 28 22 77 61 79 6c atch(a.d);.........2..puts("wayl
867c0 61 6e 64 20 73 75 72 66 61 63 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 63 6f 6e 66 69 67 75 and.surface.successfully.configu
867e0 72 65 64 22 29 3b 00 00 00 02 20 20 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 red");............render(&a);...
86800 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 9..int.tfd.=.timerfd_create(CLOC
86820 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 K_MONOTONIC,.TFD_CLOEXEC);...F..
86840 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 timerfd_settime(tfd,.0,.&(struct
86860 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 .itimerspec){{1,.0},.{1,.0}},.NU
86880 4c 4c 29 3b 00 00 00 13 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 13 20 LL);......char.buffer[100];.....
868a0 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 4f 20 20 20 20 77 68 69 6c 65 20 .while.(running).{...O....while.
868c0 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d (wl_display_prepare_read(a.d).!=
868e0 20 30 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 .0).wl_display_dispatch_pending(
86900 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e a.d);........wl_display_flush(a.
86920 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 20 d);...M....struct.pollfd.fds[2].
86940 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c =.{{wl_display_get_fd(a.d),.POLL
86960 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 48 20 20 20 20 69 66 20 28 IN},.{tfd,.POLLIN}};...H....if.(
86980 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 20 77 6c 5f 64 69 73 70 6c poll(fds,.2,.-1).<.0).{.wl_displ
869a0 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 20 63 6f 6e 74 69 6e 75 65 3b 20 7d ay_cancel_read(a.d);.continue;.}
869c0 00 00 00 5f 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c ..._....if.(fds[0].revents.&.POL
869e0 4c 49 4e 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 LIN).wl_display_read_events(a.d)
86a00 3b 20 65 6c 73 65 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e ;.else.wl_display_cancel_read(a.
86a20 64 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 d);...%....wl_display_dispatch_p
86a40 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 ending(a.d);..."....if.(fds[1].r
86a60 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 37 20 20 20 20 20 20 75 69 6e 74 events.&.POLLIN).{...7......uint
86a80 36 34 5f 74 20 74 5f 65 78 70 3b 20 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 70 2c 20 73 69 64_t.t_exp;.read(tfd,.&t_exp,.si
86aa0 7a 65 6f 66 28 74 5f 65 78 70 29 29 3b 00 00 00 1e 20 20 20 20 20 20 74 69 6d 65 5f 74 20 63 6c zeof(t_exp));..........time_t.cl
86ac0 69 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 20 20 73 74 72 75 63 74 20 i.=.time(NULL);...,......struct.
86ae0 74 6d 20 2a 74 5f 73 74 72 75 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 3b 00 tm.*t_struct.=.localtime(&cli);.
86b00 00 00 49 20 20 20 20 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 ..I......strftime(buffer,.sizeof
86b20 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 (buffer),."%d-%m-%Y.%I:%M:%S.%p"
86b40 2c 20 74 5f 73 74 72 75 63 74 29 3b 00 00 00 35 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 5c 72 ,.t_struct);...5......printf("\r
86b60 54 69 6d 65 20 69 73 20 25 73 22 2c 20 62 75 66 66 65 72 29 3b 20 66 66 6c 75 73 68 28 73 74 64 Time.is.%s",.buffer);.fflush(std
86b80 6f 75 74 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 out);..........a.redraw.=.true;.
86ba0 00 00 05 20 20 20 20 7d 00 00 00 1d 20 20 20 20 69 66 20 28 61 2e 72 65 64 72 61 77 29 20 72 65 .......}........if.(a.redraw).re
86bc0 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 48 20 20 70 72 69 6e 74 66 28 22 5c 6e nder(&a);......}...H..printf("\n
86be0 22 29 3b 20 63 6c 6f 73 65 28 74 66 64 29 3b 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b ");.close(tfd);.destroy_buf(&a);
86c00 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 35 81 f5 18 .wl_display_disconnect(a.d);5...
86c20 00 00 00 00 12 00 00 00 11 00 00 00 e0 00 00 00 2c 00 00 00 2a 01 00 00 01 00 00 00 96 01 00 00 ................,...*...........
86c40 00 00 00 00 0f 22 00 00 00 00 00 00 4b 24 00 00 00 00 00 00 35 81 5f d0 00 00 00 b7 00 00 00 b9 ....."......K$......5._.........
86c60 00 00 00 00 00 00 00 00 00 00 00 b8 00 00 00 13 00 00 00 1d 00 00 00 00 ff ff ff ff 00 01 00 00 ................................
86c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 1d 00 00 ................................
86dc0 00 00 00 00 00 18 00 00 00 1d 00 00 00 00 00 00 00 16 7f ff ff ff 00 00 00 00 69 9d ac 70 04 01 ..........................i..p..
86de0 00 00 00 00 00 f5 18 00 00 00 12 00 00 00 19 00 00 01 3f 00 00 00 06 00 00 00 31 23 64 65 66 69 ..................?.......1#defi
86e00 6e 65 20 43 4f 4c 4f 52 5f 42 47 20 30 78 46 46 31 41 31 41 31 41 20 20 20 2f 2a 20 44 61 72 6b ne.COLOR_BG.0xFF1A1A1A.../*.Dark
86e20 20 43 68 61 72 63 6f 61 6c 20 2a 2f 00 00 00 2f 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 44 49 .Charcoal.*/.../#define.COLOR_DI
86e40 41 4c 20 30 78 46 46 46 46 46 46 46 46 20 2f 2a 20 57 68 69 74 65 20 54 69 63 6b 73 20 2a 2f 00 AL.0xFFFFFFFF./*.White.Ticks.*/.
86e60 00 00 2d 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 48 4f 55 52 20 30 78 46 46 45 45 45 45 45 45 ..-#define.COLOR_HOUR.0xFFEEEEEE
86e80 20 2f 2a 20 4f 66 66 2d 77 68 69 74 65 20 2a 2f 00 00 00 2e 23 64 65 66 69 6e 65 20 43 4f 4c 4f ./*.Off-white.*/....#define.COLO
86ea0 52 5f 4d 49 4e 20 30 78 46 46 43 43 43 43 43 43 20 20 2f 2a 20 4c 69 67 68 74 20 47 72 65 79 20 R_MIN.0xFFCCCCCC../*.Light.Grey.
86ec0 2a 2f 00 00 00 2e 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 53 45 43 20 30 78 46 46 46 46 30 30 */....#define.COLOR_SEC.0xFFFF00
86ee0 30 30 20 20 2f 2a 20 42 72 69 67 68 74 20 52 65 64 20 2a 2f 00 00 00 30 23 64 65 66 69 6e 65 20 00../*.Bright.Red.*/...0#define.
86f00 43 4f 4c 4f 52 5f 48 55 42 20 30 78 46 46 34 34 34 34 34 34 20 20 2f 2a 20 48 75 62 20 43 61 70 COLOR_HUB.0xFF444444../*.Hub.Cap
86f20 20 47 72 65 79 20 2a 2f 35 81 f5 18 00 00 00 00 12 00 00 00 1d 00 00 00 00 00 00 00 14 00 00 00 .Grey.*/5.......................
86f40 00 00 00 00 00 00 00 00 a2 01 00 00 00 00 00 00 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86f60 f5 18 00 00 00 00 13 00 00 00 1d 00 00 00 00 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 c0 01 ................................
86f80 00 00 00 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 14 00 00 00 ................................
86fa0 1d 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 de 01 00 00 00 00 00 00 10 00 00 00 ................................
86fc0 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 15 00 00 00 1d 00 00 00 00 00 00 00 11 00 ................................
86fe0 00 00 00 00 00 00 00 00 00 00 fc 01 00 00 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87000 00 00 f5 18 00 00 00 00 16 00 00 00 1d 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 ................................
87020 1a 02 00 00 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 17 00 ................................
87040 00 00 1d 00 00 00 00 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 38 02 00 00 00 00 00 00 13 00 ......................8.........
87060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 b8 00 00 00 ba 00 00 00 00 00 00 ..............5._...............
87080 00 00 00 00 00 b9 00 00 00 13 00 00 00 1b 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 ................................
870a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
870c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
870e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
871a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
871c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 1d 00 00 00 00 00 00 00 18 ................................
871e0 00 00 00 1d 00 00 00 00 00 00 00 16 7f ff ff ff 00 00 00 00 69 9d ac 72 04 01 00 00 00 00 00 f5 ....................i..r........
87200 18 00 00 00 12 00 00 00 14 00 00 01 3f 00 00 00 01 00 00 00 1d 23 64 65 66 69 6e 65 20 43 4f 4c ............?........#define.COL
87220 4f 52 5f 42 47 20 30 78 46 46 31 41 31 41 31 41 20 20 35 81 f5 18 00 00 00 00 12 00 00 00 1b 00 OR_BG.0xFF1A1A1A..5.............
87240 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 a0 01 00 00 00 00 00 00 02 00 00 00 00 00 ................................
87260 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 b9 00 00 00 bb 00 00 00 00 00 00 00 00 00 00 ..........5._...................
87280 00 ba 00 00 00 16 00 00 00 1c 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ................................
872a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
872c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
872e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
873a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
873c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 1d 00 00 00 00 00 00 00 18 00 00 00 1d ................................
873e0 00 00 00 00 00 00 00 16 7f ff ff ff 00 00 00 00 69 9d ac 74 04 01 00 00 00 00 00 f5 18 00 00 00 ................i..t............
87400 15 00 00 00 17 00 00 01 3f 00 00 00 01 00 00 00 1d 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 4d ........?........#define.COLOR_M
87420 49 4e 20 30 78 46 46 43 43 43 43 43 43 20 35 81 f5 18 00 00 00 00 15 00 00 00 1c 00 00 00 00 00 IN.0xFFCCCCCC.5.................
87440 00 00 01 00 00 00 00 00 00 00 00 00 00 00 f9 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................................
87460 00 00 00 00 00 00 35 81 5f d0 00 00 00 ba 00 00 00 bc 00 00 00 00 00 00 00 00 00 00 00 bb 00 00 ......5._.......................
87480 00 17 00 00 00 1c 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
874a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
874c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
874e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
875a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
875c0 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 1d 00 00 00 00 00 00 00 18 00 00 00 1d 00 00 00 00 ................................
875e0 00 00 00 16 7f ff ff ff 00 00 00 00 69 9d ac 75 04 01 00 00 00 00 00 f5 18 00 00 00 16 00 00 00 ............i..u................
87600 18 00 00 01 3f 00 00 00 01 00 00 00 1d 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 53 45 43 20 30 ....?........#define.COLOR_SEC.0
87620 78 46 46 46 46 30 30 30 30 20 35 81 f5 18 00 00 00 00 16 00 00 00 1c 00 00 00 00 00 00 00 01 00 xFFFF0000.5.....................
87640 00 00 00 00 00 00 00 00 00 00 16 02 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87660 00 00 35 81 5f d0 00 00 00 bb 00 00 00 bd 00 00 00 00 00 00 00 00 00 00 00 bc 00 00 00 18 00 00 ..5._...........................
87680 00 1c 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
876a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
876c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
876e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
877a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
877c0 00 00 00 00 00 00 00 13 00 00 00 1d 00 00 00 00 00 00 00 18 00 00 00 1d 00 00 00 00 00 00 00 16 ................................
877e0 7f ff ff ff 00 00 00 00 69 9d ac 75 04 01 00 00 00 00 00 f5 18 00 00 00 17 00 00 00 19 00 00 01 ........i..u....................
87800 3f 00 00 00 01 00 00 00 1d 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 48 55 42 20 30 78 46 46 34 ?........#define.COLOR_HUB.0xFF4
87820 34 34 34 34 34 20 35 81 f5 18 00 00 00 00 17 00 00 00 1c 00 00 00 00 00 00 00 01 00 00 00 00 00 44444.5.........................
87840 00 00 00 00 00 00 33 02 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 ......3.......................5.
87860 5f d0 00 00 00 bc 00 00 00 be 00 00 00 00 00 00 00 00 00 00 00 bd 00 00 00 01 00 00 00 19 00 00 _...............................
87880 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
878a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
878c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
878e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
879a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
879c0 00 00 00 13 00 00 00 1d 00 00 00 00 00 00 00 18 00 00 00 1d 00 00 00 00 00 00 00 16 7f ff ff ff ................................
879e0 00 00 00 00 69 9d ac 7a 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 ....i..z........................
87a00 3f 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 ?....#define._POSIX_C_SOURCE.200
87a20 38 30 39 4c 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 809L...&#include."xdg-shell-clie
87a40 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 nt-protocol.h"....#include.<fcnt
87a60 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e l.h>....#include.<math.h>....#in
87a80 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e clude.<poll.h>....#include.<sign
87aa0 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 al.h>....#include.<stdbool.h>...
87ac0 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 .#include.<stdint.h>....#include
87ae0 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 .<stdio.h>....#include.<stdlib.h
87b00 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 >....#include.<string.h>....#inc
87b20 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 lude.<sys/mman.h>....#include.<s
87b40 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e ys/timerfd.h>....#include.<time.
87b60 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e h>....#include.<unistd.h>....#in
87b80 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 1c clude.<wayland-client.h>........
87ba0 2f 2a 20 2d 2d 2d 20 54 48 45 4d 45 20 53 45 54 54 49 4e 47 53 20 2d 2d 2d 20 2a 2f 00 00 00 1b /*.---.THEME.SETTINGS.---.*/....
87bc0 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 42 47 20 30 78 46 46 31 41 31 41 31 41 00 00 00 1d 23 #define.COLOR_BG.0xFF1A1A1A....#
87be0 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 44 49 41 4c 20 30 78 46 46 46 46 46 46 46 46 00 00 00 1d define.COLOR_DIAL.0xFFFFFFFF....
87c00 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 48 4f 55 52 20 30 78 46 46 45 45 45 45 45 45 00 00 00 #define.COLOR_HOUR.0xFFEEEEEE...
87c20 1c 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 4d 49 4e 20 30 78 46 46 43 43 43 43 43 43 00 00 00 .#define.COLOR_MIN.0xFFCCCCCC...
87c40 1c 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 53 45 43 20 30 78 46 46 46 46 30 30 30 30 00 00 00 .#define.COLOR_SEC.0xFFFF0000...
87c60 1c 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 48 55 42 20 30 78 46 46 34 34 34 34 34 34 00 00 00 .#define.COLOR_HUB.0xFF444444...
87c80 00 00 00 00 3b 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 54 48 49 43 4b 5f 48 20 30 2e 30 35 20 20 ....;#define.HAND_THICK_H.0.05..
87ca0 2f 2a 20 48 6f 75 72 20 68 61 6e 64 20 74 68 69 63 6b 6e 65 73 73 20 66 61 63 74 6f 72 20 2a 2f /*.Hour.hand.thickness.factor.*/
87cc0 00 00 00 3d 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 20 30 2e 30 33 35 20 2f ...=#define.HAND_THICK_M.0.035./
87ce0 2a 20 4d 69 6e 75 74 65 20 68 61 6e 64 20 74 68 69 63 6b 6e 65 73 73 20 66 61 63 74 6f 72 20 2a *.Minute.hand.thickness.factor.*
87d00 2f 00 00 00 3d 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 54 48 49 43 4b 5f 53 20 30 2e 30 34 20 20 /...=#define.HAND_THICK_S.0.04..
87d20 2f 2a 20 53 65 63 6f 6e 64 20 68 61 6e 64 20 74 68 69 63 6b 6e 65 73 73 20 66 61 63 74 6f 72 20 /*.Second.hand.thickness.factor.
87d40 2a 2f 00 00 00 00 00 00 00 43 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 4c 45 4e 5f 48 20 30 2e 35 */.......C#define.HAND_LEN_H.0.5
87d60 35 20 2f 2a 20 48 6f 75 72 20 68 61 6e 64 20 6c 65 6e 67 74 68 20 28 66 72 61 63 74 69 6f 6e 20 5./*.Hour.hand.length.(fraction.
87d80 6f 66 20 72 61 64 69 75 73 29 20 2a 2f 00 00 00 30 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 4c 45 of.radius).*/...0#define.HAND_LE
87da0 4e 5f 4d 20 30 2e 38 30 20 2f 2a 20 4d 69 6e 75 74 65 20 68 61 6e 64 20 6c 65 6e 67 74 68 20 2a N_M.0.80./*.Minute.hand.length.*
87dc0 2f 00 00 00 30 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 4c 45 4e 5f 53 20 30 2e 38 30 20 2f 2a 20 /...0#define.HAND_LEN_S.0.80./*.
87de0 53 65 63 6f 6e 64 20 68 61 6e 64 20 6c 65 6e 67 74 68 20 2a 2f 00 00 00 1c 2f 2a 20 2d 2d 2d 2d Second.hand.length.*/..../*.----
87e00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 2a 2f 00 00 00 00 00 00 00 0c 23 69 66 ------------------.*/........#if
87e20 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 ndef.M_PI...##define.M_PI.3.1415
87e40 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 9265358979323846....#endif....#i
87e60 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 fndef.M_PI_2...%#define.M_PI_2.1
87e80 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 .57079632679489661923....#endif.
87ea0 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 ......)static.volatile.sig_atomi
87ec0 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 c_t.running.=.1;....static.void.
87ee0 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 on_sig(int.s).{......(void)s;...
87f00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 ...running.=.0;....}........stru
87f20 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 ct.app.{......struct.wl_display.
87f40 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 *d;......struct.wl_registry.*reg
87f60 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d ;......struct.wl_compositor.*com
87f80 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 p;......struct.wl_shm.*shm;.....
87fa0 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 .struct.xdg_wm_base.*wm;......st
87fc0 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 ruct.wl_surface.*ws;......struct
87fe0 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 .xdg_surface.*xs;......struct.xd
88000 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c g_toplevel.*xt;......void.*pixel
88020 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 s;......struct.wl_buffer.*buf;..
88040 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 ....int.w,.h;......int.bw,.bh;..
88060 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 ....bool.configured;......bool.r
88080 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 edraw;....};.......Jstatic.void.
880a0 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 wm_ping(void.*data,.struct.xdg_w
880c0 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 m_base.*wm,.uint32_t.serial).{..
880e0 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 ....xdg_wm_base_pong(wm,.serial)
88100 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f ;....}.......$static.int.create_
88120 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d shm(size_t.size).{...#..char.t[]
88140 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 .=."/tmp/wlclock-XXXXXX";......i
88160 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 nt.fd.=.mkstemp(t);......if.(fd.
88180 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b <.0)........exit(1);......unlink
881a0 28 74 29 3b 00 00 00 1e 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 (t);......if.(ftruncate(fd,.size
881c0 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 ).<.0)........exit(1);......retu
881e0 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 rn.fd;....}.......(static.void.d
88200 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0e 20 estroy_buf(struct.app.*a).{.....
88220 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 2a .if.(!a->buf)........return;...*
88240 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 ..size_t.size.=.(size_t)a->bw.*.
88260 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f a->bh.*.4;......wl_buffer_destro
88280 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 y(a->buf);......munmap(a->pixels
882a0 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 ,.size);......a->buf.=.NULL;....
882c0 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 ..a->pixels.=.NULL;....}.......&
882e0 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 static.void.alloc_buf(struct.app
88300 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 28 20 .*a).{......destroy_buf(a);...(.
88320 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d .size_t.size.=.(size_t)a->w.*.a-
88340 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d >h.*.4;......int.fd.=.create_shm
88360 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 (size);...J..a->pixels.=.mmap(NU
88380 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 LL,.size,.PROT_READ.|.PROT_WRITE
883a0 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1e 20 20 69 66 20 28 61 ,.MAP_SHARED,.fd,.0);......if.(a
883c0 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 00 00 00 0c 20 20 20 20 65 ->pixels.==.MAP_FAILED)........e
883e0 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 xit(1);...B..struct.wl_shm_pool.
88400 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 *pool.=.wl_shm_create_pool(a->sh
88420 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 43 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 m,.fd,.size);...C..a->buf.=.wl_s
88440 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 hm_pool_create_buffer(pool,.0,.a
88460 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 00 00 00 3d 20 20 20 20 20 20 20 20 ->w,.a->h,.a->w.*.4,...=........
88480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f .............................WL_
884a0 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 SHM_FORMAT_ARGB8888);......wl_sh
884c0 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 m_pool_destroy(pool);......close
884e0 28 66 64 29 3b 00 00 00 0f 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b 00 00 00 0f 20 20 61 2d (fd);......a->bw.=.a->w;......a-
88500 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 45 73 74 61 74 69 63 20 76 >bh.=.a->h;....}.......Estatic.v
88520 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 oid.circle(uint32_t.*px,.int.w,.
88540 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 int.h,.int.cx,.int.cy,.int.r,...
88560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 ....................uint32_t.c).
88580 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d {..."..int.x.=.0,.y.=.r,.d.=.3.-
885a0 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 .2.*.r;......while.(y.>=.x).{...
885c0 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 H....int.p[8][2].=.{{cx.+.x,.cy.
885e0 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c +.y},.{cx.-.x,.cy.+.y},.{cx.+.x,
88600 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .cy.-.y},...H...................
88620 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 {cx.-.x,.cy.-.y},.{cx.+.y,.cy.+.
88640 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 x},.{cx.-.y,.cy.+.x},...7.......
88660 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 ............{cx.+.y,.cy.-.x},.{c
88680 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 x.-.y,.cy.-.x}};........for.(int
886a0 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 66 20 .i.=.0;.i.<.8;.i++)...E......if.
886c0 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 (p[i][0].>=.0.&&.p[i][0].<.w.&&.
886e0 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 p[i][1].>=.0.&&.p[i][1].<.h)...&
88700 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d ........px[p[i][1].*.w.+.p[i][0]
88720 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 ].=.c;........if.(d.>.0).{......
88740 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 ....d.+=.4.*.(x.-.y).+.10;......
88760 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 ....y--;........}.else..........
88780 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 d.+=.4.*.x.+.6;........x++;.....
887a0 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f .}....}.......Pstatic.void.fill_
887c0 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 tri(uint32_t.*px,.int.w,.int.h,.
887e0 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 int.x0,.int.y0,.int.x1,.int.y1,.
88800 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 78 32 2c 20 ..2.....................int.x2,.
88820 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 6e 74 20 6d int.y2,.uint32_t.c).{...B..int.m
88840 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 79 30 20 3a in_y.=.y0.<.y1.?.(y0.<.y2.?.y0.:
88860 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 42 20 .y2).:.(y1.<.y2.?.y1.:.y2);...B.
88880 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e 20 79 32 20 .int.max_y.=.y0.>.y1.?.(y0.>.y2.
888a0 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 ?.y0.:.y2).:.(y1.>.y2.?.y1.:.y2)
888c0 3b 00 00 00 10 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 00 00 00 0e 20 20 20 20 6d 69 6e ;......if.(min_y.<.0)........min
888e0 5f 79 20 3d 20 30 3b 00 00 00 11 20 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 00 00 00 12 _y.=.0;......if.(max_y.>=.h)....
88900 20 20 20 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 ....max_y.=.h.-.1;...(..for.(int
88920 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 .y.=.min_y;.y.<=.max_y;.y++).{..
88940 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 ......int.x_start.=.w,.x_end.=.0
88960 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 ;...3....int.xs[3].=.{x0,.x1,.x2
88980 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 15 20 20 20 20 },.ys[3].=.{y0,.y1,.y2};........
889a0 62 6f 6f 6c 20 68 69 74 20 3d 20 66 61 6c 73 65 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e bool.hit.=.false;...!....for.(in
889c0 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 20 20 t.i.=.0;.i.<.3;.i++).{..........
889e0 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 69 66 int.j.=.(i.+.1).%.3;...C......if
88a00 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 .((ys[i].<=.y.&&.ys[j].>.y).||.(
88a20 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 48 20 ys[j].<=.y.&&.ys[i].>.y)).{...H.
88a40 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 5b 69 .......int.x.=.xs[i].+.(y.-.ys[i
88a60 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 ]).*.(xs[j].-.xs[i])./.(ys[j].-.
88a80 79 73 5b 69 5d 29 3b 00 00 00 18 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 74 61 ys[i]);............if.(x.<.x_sta
88aa0 72 74 29 00 00 00 16 20 20 20 20 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 00 00 rt)..............x_start.=.x;...
88ac0 16 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 00 00 00 14 20 20 20 20 20 .........if.(x.>.x_end).........
88ae0 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 13 20 20 20 20 20 20 20 20 68 69 74 20 3d .....x_end.=.x;............hit.=
88b00 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 0e 20 20 .true;..........}........}......
88b20 20 20 69 66 20 28 68 69 74 29 20 7b 00 00 00 16 20 20 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 ..if.(hit).{..........if.(x_star
88b40 74 20 3c 20 30 29 00 00 00 14 20 20 20 20 20 20 20 20 78 5f 73 74 61 72 74 20 3d 20 30 3b 00 00 t.<.0)............x_start.=.0;..
88b60 00 15 20 20 20 20 20 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 00 00 00 16 20 20 20 20 20 ........if.(x_end.>=.w).........
88b80 20 20 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 2c 20 20 20 20 20 20 66 6f 72 20 28 ...x_end.=.w.-.1;...,......for.(
88ba0 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b int.x.=.x_start;.x.<=.x_end;.x++
88bc0 29 00 00 00 1a 20 20 20 20 20 20 20 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 )............px[y.*.w.+.x].=.c;.
88be0 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 .......}......}....}.......#stat
88c00 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 ic.void.render(struct.app.*a).{.
88c20 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 ../..if.(!a->configured.||.a->w.
88c40 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e <=.0.||.a->h.<=.0)........return
88c60 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 11 20 20 20 20 61 6c 6c 6f 63 ;......if.(!a->buf)........alloc
88c80 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e _buf(a);......uint32_t.*px.=.a->
88ca0 70 69 78 65 6c 73 3b 00 00 00 27 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c pixels;...'..for.(int.i.=.0;.i.<
88cc0 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 3b 20 69 2b 2b 29 00 00 00 15 20 20 20 20 70 78 5b 69 5d 20 .a->w.*.a->h;.i++)........px[i].
88ce0 3d 20 43 4f 4c 4f 52 5f 42 47 3b 00 00 00 00 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d =.COLOR_BG;..........time_t.tt.=
88d00 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b .time(NULL);......struct.tm.tmv;
88d20 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 ......localtime_r(&tt,.&tmv);...
88d40 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 #..int.cx.=.a->w./.2,.cy.=.a->h.
88d60 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f /.2;.../..int.r.=.(a->w.<.a->h.?
88d80 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 0c 20 20 69 66 20 .a->w.:.a->h)./.2.-.10;......if.
88da0 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 20 20 20 66 (r.<.5)........r.=.5;..........f
88dc0 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 or.(int.i.=.0;.i.<.60;.i++).{...
88de0 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a .....double.ang.=.i./.60.0.*.2.*
88e00 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 31 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d .M_PI.-.M_PI_2;...1....int.len.=
88e20 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 20 2a 20 30 2e 31 32 20 3a 20 72 20 2a 20 30 .(i.%.5.==.0).?.r.*.0.12.:.r.*.0
88e40 2e 30 34 3b 00 00 00 30 20 20 20 20 64 6f 75 62 6c 65 20 74 5f 61 6e 67 20 3d 20 28 69 20 25 20 .04;...0....double.t_ang.=.(i.%.
88e60 35 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 32 20 3a 20 30 2e 30 30 35 3b 00 00 00 37 20 20 20 20 5.==.0).?.0.012.:.0.005;...7....
88e80 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f fill_tri(px,.a->w,.a->h,.cx.+.co
88ea0 73 28 61 6e 67 20 2d 20 74 5f 61 6e 67 29 20 2a 20 72 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 s(ang.-.t_ang).*.r,...B.........
88ec0 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2d 20 74 5f 61 6e 67 29 20 2a 20 72 2c 20 63 ....cy.+.sin(ang.-.t_ang).*.r,.c
88ee0 78 20 2b 20 63 6f 73 28 61 6e 67 20 2b 20 74 5f 61 6e 67 29 20 2a 20 72 2c 00 00 00 42 20 20 20 x.+.cos(ang.+.t_ang).*.r,...B...
88f00 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2b 20 74 5f 61 6e 67 29 20 ..........cy.+.sin(ang.+.t_ang).
88f20 2a 20 72 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 00 *.r,.cx.+.cos(ang).*.(r.-.len),.
88f40 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 ..4.............cy.+.sin(ang).*.
88f60 28 72 20 2d 20 6c 65 6e 29 2c 20 43 4f 4c 4f 52 5f 44 49 41 4c 29 3b 00 00 00 03 20 20 7d 00 00 (r.-.len),.COLOR_DIAL);......}..
88f80 00 00 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f .....4..double.sa.=.tmv.tm_sec./
88fa0 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 .60.0.*.2.*.M_PI.-.M_PI_2;...J..
88fc0 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d double.ma.=.(tmv.tm_min.+.tmv.tm
88fe0 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d _sec./.60.0)./.60.0.*.2.*.M_PI.-
89000 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 4c 20 20 20 .M_PI_2;......double.ha.=...L...
89020 20 20 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d ...((tmv.tm_hour.%.12).+.(tmv.tm
89040 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 _min./.60.0))./.12.0.*.2.*.M_PI.
89060 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 42 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 -.M_PI_2;.......B..fill_tri(px,.
89080 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2d 20 30 2e 31 32 29 20 a->w,.a->h,.cx.+.cos(ha.-.0.12).
890a0 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 *.r.*.HAND_THICK_H,...2.........
890c0 20 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2d 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 48 41 4e 44 ..cy.+.sin(ha.-.0.12).*.r.*.HAND
890e0 5f 54 48 49 43 4b 5f 48 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 _THICK_H,...2...........cx.+.cos
89100 28 68 61 20 2b 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 00 (ha.+.0.12).*.r.*.HAND_THICK_H,.
89120 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2b 20 30 2e 31 32 ..2...........cy.+.sin(ha.+.0.12
89140 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 00 00 00 48 20 20 20 20 20 20 20 ).*.r.*.HAND_THICK_H,...H.......
89160 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f ....cx.+.cos(ha).*.r.*.HAND_LEN_
89180 48 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 48 H,.cy.+.sin(ha).*.r.*.HAND_LEN_H
891a0 2c 00 00 00 17 20 20 20 20 20 20 20 20 20 20 20 43 4f 4c 4f 52 5f 48 4f 55 52 29 3b 00 00 00 42 ,...............COLOR_HOUR);...B
891c0 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 ..fill_tri(px,.a->w,.a->h,.cx.+.
891e0 63 6f 73 28 6d 61 20 2d 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f cos(ma.-.0.08).*.r.*.HAND_THICK_
89200 4d 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2d 20 30 M,...2...........cy.+.sin(ma.-.0
89220 2e 30 38 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 00 00 00 32 20 20 20 20 .08).*.r.*.HAND_THICK_M,...2....
89240 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2b 20 30 2e 30 38 29 20 2a 20 72 20 2a .......cx.+.cos(ma.+.0.08).*.r.*
89260 20 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 79 20 .HAND_THICK_M,...2...........cy.
89280 2b 20 73 69 6e 28 6d 61 20 2b 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 +.sin(ma.+.0.08).*.r.*.HAND_THIC
892a0 4b 5f 4d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 20 K_M,...H...........cx.+.cos(ma).
892c0 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 4d 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 20 2a *.r.*.HAND_LEN_M,.cy.+.sin(ma).*
892e0 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 4d 2c 00 00 00 16 20 20 20 20 20 20 20 20 20 20 20 43 .r.*.HAND_LEN_M,...............C
89300 4f 4c 4f 52 5f 4d 49 4e 29 3b 00 00 00 42 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e OLOR_MIN);...B..fill_tri(px,.a->
89320 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 20 2d 20 30 2e 30 35 29 20 2a 20 72 w,.a->h,.cx.+.cos(sa.-.0.05).*.r
89340 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 .*.HAND_THICK_S,...2...........c
89360 79 20 2b 20 73 69 6e 28 73 61 20 2d 20 30 2e 30 35 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 y.+.sin(sa.-.0.05).*.r.*.HAND_TH
89380 49 43 4b 5f 53 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 ICK_S,...2...........cx.+.cos(sa
893a0 20 2b 20 30 2e 30 35 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 00 00 32 .+.0.05).*.r.*.HAND_THICK_S,...2
893c0 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 73 61 20 2b 20 30 2e 30 35 29 20 2a ...........cy.+.sin(sa.+.0.05).*
893e0 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 .r.*.HAND_THICK_S,...H..........
89400 20 63 78 20 2b 20 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 53 2c 20 .cx.+.cos(sa).*.r.*.HAND_LEN_S,.
89420 63 79 20 2b 20 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 53 2c 00 00 cy.+.sin(sa).*.r.*.HAND_LEN_S,..
89440 00 16 20 20 20 20 20 20 20 20 20 20 20 43 4f 4c 4f 52 5f 53 45 43 29 3b 00 00 00 00 00 00 00 17 .............COLOR_SEC);........
89460 20 20 69 6e 74 20 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 10 20 20 69 66 20 ..int.hub_r.=.r.*.0.04;......if.
89480 28 68 75 62 5f 72 20 3c 20 34 29 00 00 00 0e 20 20 20 20 68 75 62 5f 72 20 3d 20 34 3b 00 00 00 (hub_r.<.4)........hub_r.=.4;...
894a0 28 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 72 20 3c 20 68 75 62 5f 72 20 2d (..for.(int.ir.=.0;.ir.<.hub_r.-
894c0 20 32 3b 20 69 72 2b 2b 29 00 00 00 31 20 20 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 .2;.ir++)...1....circle(px,.a->w
894e0 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 43 4f 4c 4f 52 5f 42 47 29 3b 00 00 ,.a->h,.cx,.cy,.ir,.COLOR_BG);..
89500 00 33 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 .3..circle(px,.a->w,.a->h,.cx,.c
89520 79 2c 20 68 75 62 5f 72 2c 20 43 4f 4c 4f 52 5f 48 55 42 29 3b 00 00 00 00 00 00 00 29 20 20 77 y,.hub_r,.COLOR_HUB);.......)..w
89540 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 l_surface_attach(a->ws,.a->buf,.
89560 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 0,.0);...4..wl_surface_damage_bu
89580 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 ffer(a->ws,.0,.0,.a->w,.a->h);..
895a0 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 ....wl_surface_commit(a->ws);...
895c0 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 ...a->redraw.=.false;....}......
895e0 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 .Gstatic.void.xt_close(void.*d,.
89600 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 72 75 6e 6e 69 struct.xdg_toplevel.*xt).{.runni
89620 6e 67 20 3d 20 30 3b 20 7d 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 ng.=.0;.}...Jstatic.void.xt_cfg(
89640 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 void.*d,.struct.xdg_toplevel.*xt
89660 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 28 20 20 20 20 20 ,.int32_t.w,.int32_t.h,...(.....
89680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 ..............struct.wl_array.*s
896a0 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 ).{......struct.app.*a.=.d;...3.
896c0 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e .if.(w.>.0.&&.h.>.0.&&.(w.!=.a->
896e0 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d w.||.h.!=.a->h)).{........a->w.=
89700 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 13 20 20 20 20 64 65 73 74 .w;........a->h.=.h;........dest
89720 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 15 20 20 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 roy_buf(a);........a->redraw.=.t
89740 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 rue;......}....}...Fstatic.void.
89760 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 xs_cfg(void.*d,.struct.xdg_surfa
89780 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 ce.*xs,.uint32_t.serial).{......
897a0 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 struct.app.*a.=.d;...(..xdg_surf
897c0 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 ace_ack_configure(xs,.serial);..
897e0 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 13 20 20 61 ....a->configured.=.true;......a
89800 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 43 73 74 61 74 69 63 20 ->redraw.=.true;....}...Cstatic.
89820 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 void.reg_global(void.*d,.struct.
89840 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 33 wl_registry.*r,.uint32_t.id,...3
89860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 .......................const.cha
89880 72 20 2a 69 2c 20 75 69 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 r.*i,.uint32_t.v).{......struct.
898a0 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 22 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 app.*a.=.d;..."..if.(!strcmp(i,.
898c0 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 "wl_compositor"))...C....a->comp
898e0 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 .=.wl_registry_bind(r,.id,.&wl_c
89900 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 20 20 20 65 6c ompositor_interface,.4);......el
89920 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b se.if.(!strcmp(i,."wl_shm"))...;
89940 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c ....a->shm.=.wl_registry_bind(r,
89960 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 27 20 .id,.&wl_shm_interface,.1);...'.
89980 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 .else.if.(!strcmp(i,."xdg_wm_bas
899a0 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 e")).{...?....a->wm.=.wl_registr
899c0 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 y_bind(r,.id,.&xdg_wm_base_inter
899e0 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 face,.1);...C....static.const.st
89a00 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e ruct.xdg_wm_base_listener.l.=.{.
89a20 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 ping.=.wm_ping};...+....xdg_wm_b
89a40 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 ase_add_listener(a->wm,.&l,.a);.
89a60 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 .....}....}........int.main(void
89a80 29 20 7b 00 00 00 15 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c ).{......struct.app.a.=.{0};....
89aa0 20 20 61 2e 77 20 3d 20 34 30 30 3b 00 00 00 0c 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 ..a.w.=.400;......a.h.=.400;....
89ac0 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 ..signal(SIGINT,.on_sig);...!..a
89ae0 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 .d.=.wl_display_connect(NULL);..
89b00 00 0b 20 20 69 66 20 28 21 61 2e 64 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 ....if.(!a.d)........return.1;..
89b20 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 .'..a.reg.=.wl_display_get_regis
89b40 74 72 79 28 61 2e 64 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 try(a.d);...G..static.const.stru
89b60 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 ct.wl_registry_listener.rl.=.{.g
89b80 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 lobal.=.reg_global};...+..wl_reg
89ba0 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 istry_add_listener(a.reg,.&rl,.&
89bc0 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e a);......wl_display_roundtrip(a.
89be0 64 29 3b 00 00 00 21 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c d);...!..if.(!a.comp.||.!a.shm.|
89c00 7c 20 21 61 2e 77 6d 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 |.!a.wm)........return.1;......a
89c20 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 .ws.=.wl_compositor_create_surfa
89c40 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 ce(a.comp);...1..a.xs.=.xdg_wm_b
89c60 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b ase_get_xdg_surface(a.wm,.a.ws);
89c80 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 ...G..static.const.struct.xdg_su
89ca0 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 rface_listener.xsl.=.{.configure
89cc0 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 .=.xs_cfg};...+..xdg_surface_add
89ce0 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 _listener(a.xs,.&xsl,.&a);...(..
89d00 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 a.xt.=.xdg_surface_get_toplevel(
89d20 61 2e 78 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 a.xs);...G..static.const.struct.
89d40 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f xdg_toplevel_listener.xtl.=.{.co
89d60 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 00 00 00 46 20 20 20 20 20 20 20 20 20 20 20 nfigure.=.xt_cfg,...F...........
89d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
89da0 20 20 20 20 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 .........close.=.xt_close};...,.
89dc0 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c .xdg_toplevel_add_listener(a.xt,
89de0 20 26 78 74 6c 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 .&xtl,.&a);...*..xdg_toplevel_se
89e00 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 t_title(a.xt,."wlclock");......w
89e20 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 17 20 20 77 68 69 l_surface_commit(a.ws);......whi
89e40 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 1d 20 20 20 20 77 6c 5f 64 69 73 le.(!a.configured)........wl_dis
89e60 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 00 00 00 00 32 20 20 70 75 74 play_dispatch(a.d);.......2..put
89e80 73 28 22 77 61 79 6c 61 6e 64 20 73 75 72 66 61 63 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 s("wayland.surface.successfully.
89ea0 63 6f 6e 66 69 67 75 72 65 64 22 29 3b 00 00 00 00 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 configured");..........render(&a
89ec0 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 );...9..int.tfd.=.timerfd_create
89ee0 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 (CLOCK_MONOTONIC,.TFD_CLOEXEC);.
89f00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 ..F..timerfd_settime(tfd,.0,.&(s
89f20 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d truct.itimerspec){{1,.0},.{1,.0}
89f40 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b },.NULL);......char.buffer[100];
89f60 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 77 ......while.(running).{...-....w
89f80 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e hile.(wl_display_prepare_read(a.
89fa0 64 29 20 21 3d 20 30 29 00 00 00 27 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 d).!=.0)...'......wl_display_dis
89fc0 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 patch_pending(a.d);........wl_di
89fe0 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 splay_flush(a.d);...M....struct.
8a000 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 pollfd.fds[2].=.{{wl_display_get
8a020 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d _fd(a.d),.POLLIN},.{tfd,.POLLIN}
8a040 7d 3b 00 00 00 1f 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c };........if.(poll(fds,.2,.-1).<
8a060 20 30 29 20 7b 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c .0).{..."......wl_display_cancel
8a080 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 0f 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 _read(a.d);..........continue;..
8a0a0 00 05 20 20 20 20 7d 00 00 00 20 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 ......}........if.(fds[0].revent
8a0c0 73 20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f s.&.POLLIN)..."......wl_display_
8a0e0 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 00 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 read_events(a.d);........else...
8a100 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e "......wl_display_cancel_read(a.
8a120 64 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 d);...%....wl_display_dispatch_p
8a140 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 ending(a.d);..."....if.(fds[1].r
8a160 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 events.&.POLLIN).{..........uint
8a180 36 34 5f 74 20 74 5f 65 78 70 3b 00 00 00 27 20 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 64_t.t_exp;...'......read(tfd,.&
8a1a0 74 5f 65 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 78 70 29 29 3b 00 00 00 1e 20 20 20 20 20 20 t_exp,.sizeof(t_exp));..........
8a1c0 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 time_t.cli.=.time(NULL);...,....
8a1e0 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 5f 73 74 72 75 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d ..struct.tm.*t_struct.=.localtim
8a200 65 28 26 63 6c 69 29 3b 00 00 00 49 20 20 20 20 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 e(&cli);...I......strftime(buffe
8a220 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a r,.sizeof(buffer),."%d-%m-%Y.%I:
8a240 25 4d 3a 25 53 20 25 70 22 2c 20 74 5f 73 74 72 75 63 74 29 3b 00 00 00 25 20 20 20 20 20 20 70 %M:%S.%p",.t_struct);...%......p
8a260 72 69 6e 74 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 73 22 2c 20 62 75 66 66 65 72 29 3b 00 00 rintf("\rTime.is.%s",.buffer);..
8a280 00 15 20 20 20 20 20 20 66 66 6c 75 73 68 28 73 74 64 6f 75 74 29 3b 00 00 00 16 20 20 20 20 20 ........fflush(stdout);.........
8a2a0 20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 11 20 20 .a.redraw.=.true;........}......
8a2c0 20 20 69 66 20 28 61 2e 72 65 64 72 61 77 29 00 00 00 11 20 20 20 20 20 20 72 65 6e 64 65 72 28 ..if.(a.redraw)..........render(
8a2e0 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 0f 20 20 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b 00 00 &a);......}......printf("\n");..
8a300 00 0d 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 12 20 20 64 65 73 74 72 6f 79 5f 62 75 66 ....close(tfd);......destroy_buf
8a320 28 26 61 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 (&a);......wl_display_disconnect
8a340 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 (a.d);......return.0;....}5.....
8a360 00 00 00 00 00 00 00 00 00 00 3f 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ..........?.....................
8a380 00 00 9c 25 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 bd 00 00 00 bf 00 00 ...%..............5._...........
8a3a0 00 00 00 00 00 00 00 00 00 be 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 ................................
8a3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1d 00 00 00 00 ................................
8a500 00 00 00 01 00 00 00 1d 00 00 00 00 00 00 00 16 7f ff ff ff 00 00 00 00 69 9d ac 7a 04 01 00 00 ........................i..z....
8a520 00 00 00 f5 18 00 00 00 f4 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 f5 .........................}......
8a540 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 ec 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ................................
8a560 00 46 20 20 20 20 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 .F......strftime(buffer,.sizeof(
8a580 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c buffer),."%d-%m-%Y.%I:%M:%S.%p",
8a5a0 20 74 5f 73 74 72 75 63 f5 18 00 00 00 ed 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 e4 .t_struc........................
8a5c0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0a 20 20 20 20 73 74 72 75 63 74 f5 18 00 00 00 e5 ....................struct......
8a5e0 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 d2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ................................
8a600 00 03 20 20 73 f5 18 00 00 00 d3 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 cc 00 00 00 ....s...........................
8a620 00 00 00 00 00 00 00 00 01 00 00 00 21 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 ............!..static.const.stru
8a640 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 f5 18 00 00 00 cd 00 00 00 00 00 00 00 00 00 00 00 00 ct.wl_registry..................
8a660 f5 18 00 00 00 be 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 10 20 20 65 6c 73 65 20 69 66 20 ........................else.if.
8a680 28 21 73 74 72 63 f5 18 00 00 00 bf 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 b3 00 00 (!strc..........................
8a6a0 00 00 00 00 00 00 00 00 00 01 00 00 00 0c 20 20 69 66 20 28 77 20 3e 20 30 20 f5 18 00 00 00 b4 ................if.(w.>.0.......
8a6c0 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 9f 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ................................
8a6e0 00 14 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c f5 18 00 00 00 a0 00 00 00 00 ....fill_tri(px,.a->w,..........
8a700 00 00 00 00 00 00 00 00 f5 18 00 00 00 9c 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 12 20 20 ................................
8a720 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e f5 18 00 00 00 9d 00 00 00 00 00 00 00 00 00 00 fill_tri(px,.a->................
8a740 00 00 f5 18 00 00 00 89 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 00 8a ................................
8a760 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 76 00 00 00 00 00 00 00 00 00 00 00 01 00 00 .................v..............
8a780 00 33 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 .3........int.x.=.xs[i].+.(y.-.y
8a7a0 73 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 f5 18 00 00 00 77 00 00 00 00 00 s[i]).*.(xs[j].-.xs[i.....w.....
8a7c0 00 00 00 00 00 00 00 f5 18 00 00 00 6c 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 08 20 20 69 ............l..................i
8a7e0 6e 74 20 6d 69 f5 18 00 00 00 6d 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 64 00 00 00 nt.mi.....m.................d...
8a800 00 00 00 00 00 00 00 00 01 00 00 00 38 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e ............8......if.(p[i][0].>
8a820 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d =.0.&&.p[i][0].<.w.&&.p[i][1].>=
8a840 20 30 20 26 26 f5 18 00 00 00 65 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 57 00 00 00 .0.&&.....e.................W...
8a860 00 00 00 00 00 00 00 00 01 00 00 00 54 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 ............T..a->buf.=.wl_shm_p
8a880 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c ool_create_buffer(pool,.0,.a->w,
8a8a0 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 .a->h,.a->w.*.4,.WL_SHM_FORMAT_A
8a8c0 52 f5 18 00 00 00 58 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 54 00 00 00 00 00 00 00 R.....X.................T.......
8a8e0 00 00 00 00 01 00 00 00 0a 20 20 61 2d 3e 70 69 78 65 6c f5 18 00 00 00 55 00 00 00 00 00 00 00 ...........a->pixel.....U.......
8a900 00 00 00 00 00 f5 18 00 00 00 4a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 12 20 20 73 69 7a ..........J..................siz
8a920 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 f5 18 00 00 00 4b 00 00 00 00 00 00 00 00 00 00 00 00 f5 e_t.size.=.(s.....K.............
8a940 18 00 00 00 3f 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0e 73 74 61 74 69 63 20 69 6e 74 20 ....?................static.int.
8a960 63 72 65 f5 18 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 29 00 00 00 00 00 cre.....@.................).....
8a980 00 00 00 00 00 00 01 00 00 00 1e 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 ...........static.volatile.sig_a
8a9a0 74 6f 6d 69 63 5f 74 20 72 f5 18 00 00 00 2a 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 tomic_t.r.....*.................
8a9c0 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 ................................
8a9e0 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 29 00 00 00 1e ...5.......................)....
8aa00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 f5 18 00 00 00 ................................
8aa20 00 29 00 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 16 00 00 00 0e 00 00 00 00 05 00 00 00 00 00 .)..............................
8aa40 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 3f 00 00 00 0e 00 00 00 00 .......................?........
8aa60 00 00 00 00 00 00 00 0b 00 00 00 12 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8aa80 01 00 00 00 00 00 00 f5 18 00 00 00 00 4a 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 .............J..................
8aaa0 00 0a 00 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 ................................
8aac0 00 00 00 54 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 54 00 00 00 00 09 00 00 00 ...T...................T........
8aae0 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 57 00 00 00 54 00 00 .........................W...T..
8ab00 00 00 00 00 00 00 00 00 00 0d 00 00 00 38 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 .............8..................
8ab20 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 64 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 08 ...............d...8............
8ab40 00 00 00 08 00 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 ................................
8ab60 18 00 00 00 00 6c 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 33 00 00 00 00 0d 00 .....l...................3......
8ab80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 76 00 00 00 33 ...........................v...3
8aba0 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 02 00 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 ................................
8abc0 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 89 00 00 00 02 00 00 00 00 00 00 00 00 00 00 ................................
8abe0 00 13 00 00 00 12 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ................................
8ac00 00 f5 18 00 00 00 00 9c 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 14 00 00 00 00 ................................
8ac20 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 9f 00 00 ................................
8ac40 00 14 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 0c 00 00 00 00 15 00 00 00 00 00 00 00 00 00 ................................
8ac60 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 b3 00 00 00 0c 00 00 00 00 00 00 00 00 ................................
8ac80 00 00 00 0b 00 00 00 10 00 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 ................................
8aca0 00 00 00 f5 18 00 00 00 00 be 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 21 00 00 .............................!..
8acc0 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 cc ................................
8ace0 00 00 00 21 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 03 00 00 00 00 1d 00 00 00 00 00 00 00 ...!............................
8ad00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 d2 00 00 00 03 00 00 00 00 00 00 ................................
8ad20 00 00 00 00 00 12 00 00 00 0a 00 00 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 ................................
8ad40 00 00 00 00 00 f5 18 00 00 00 00 e4 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 46 ...............................F
8ad60 00 00 00 00 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 ....!...........................
8ad80 00 ec 00 00 00 46 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 01 00 00 00 00 23 00 00 00 00 00 .....F....................#.....
8ada0 00 00 00 00 00 00 00 00 00 cf 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 be 00 00 00 00 00 00 00 .................5._............
8adc0 00 00 00 00 00 00 00 00 bf 00 00 00 f5 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 ................................
8ade0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ae00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ae20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ae40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ae60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ae80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8aea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8aec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8aee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8af00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1d 00 00 00 00 00 ................................
8af20 00 00 01 00 00 00 1d 00 00 00 00 00 00 00 16 7f ff ff ff 00 00 00 00 69 9d ac db 04 01 00 00 00 .......................i........
8af40 42 00 f5 18 00 00 00 12 00 00 01 3e 00 00 00 f5 00 00 00 e1 00 00 00 35 23 64 65 66 69 6e 65 20 B..........>...........5#define.
8af60 43 4f 4c 4f 52 5f 42 47 20 20 20 20 20 20 30 78 46 46 31 41 31 41 31 41 20 20 2f 2a 20 44 61 72 COLOR_BG......0xFF1A1A1A../*.Dar
8af80 6b 20 43 68 61 72 63 6f 61 6c 20 2a 2f 00 00 00 33 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 44 k.Charcoal.*/...3#define.COLOR_D
8afa0 49 41 4c 20 20 20 20 30 78 46 46 46 46 46 46 46 46 20 20 2f 2a 20 57 68 69 74 65 20 54 69 63 6b IAL....0xFFFFFFFF../*.White.Tick
8afc0 73 20 2a 2f 00 00 00 31 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 48 4f 55 52 20 20 20 20 30 78 s.*/...1#define.COLOR_HOUR....0x
8afe0 46 46 45 45 45 45 45 45 20 20 2f 2a 20 4f 66 66 2d 77 68 69 74 65 20 2a 2f 00 00 00 32 23 64 65 FFEEEEEE../*.Off-white.*/...2#de
8b000 66 69 6e 65 20 43 4f 4c 4f 52 5f 4d 49 4e 20 20 20 20 20 30 78 46 46 43 43 43 43 43 43 20 20 2f fine.COLOR_MIN.....0xFFCCCCCC../
8b020 2a 20 4c 69 67 68 74 20 47 72 65 79 20 2a 2f 00 00 00 32 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 *.Light.Grey.*/...2#define.COLOR
8b040 5f 53 45 43 20 20 20 20 20 30 78 46 46 46 46 30 30 30 30 20 20 2f 2a 20 42 72 69 67 68 74 20 52 _SEC.....0xFFFF0000../*.Bright.R
8b060 65 64 20 2a 2f 00 00 00 34 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 48 55 42 20 20 20 20 20 30 ed.*/...4#define.COLOR_HUB.....0
8b080 78 46 46 34 34 34 34 34 34 20 20 2f 2a 20 48 75 62 20 43 61 70 20 47 72 65 79 20 2a 2f 00 00 00 xFF444444../*.Hub.Cap.Grey.*/...
8b0a0 00 00 00 00 42 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 54 48 49 43 4b 5f 48 20 20 30 2e 30 35 20 ....B#define.HAND_THICK_H..0.05.
8b0c0 20 20 20 20 20 20 20 2f 2a 20 48 6f 75 72 20 68 61 6e 64 20 74 68 69 63 6b 6e 65 73 73 20 66 61 ......./*.Hour.hand.thickness.fa
8b0e0 63 74 6f 72 20 2a 2f 00 00 00 44 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 20 ctor.*/...D#define.HAND_THICK_M.
8b100 20 30 2e 30 33 35 20 20 20 20 20 20 20 2f 2a 20 4d 69 6e 75 74 65 20 68 61 6e 64 20 74 68 69 63 .0.035......./*.Minute.hand.thic
8b120 6b 6e 65 73 73 20 66 61 63 74 6f 72 20 2a 2f 00 00 00 44 23 64 65 66 69 6e 65 20 48 41 4e 44 5f kness.factor.*/...D#define.HAND_
8b140 54 48 49 43 4b 5f 53 20 20 30 2e 30 34 20 20 20 20 20 20 20 20 2f 2a 20 53 65 63 6f 6e 64 20 68 THICK_S..0.04......../*.Second.h
8b160 61 6e 64 20 74 68 69 63 6b 6e 65 73 73 20 66 61 63 74 6f 72 20 2a 2f 00 00 00 00 00 00 00 4d 23 and.thickness.factor.*/.......M#
8b180 64 65 66 69 6e 65 20 48 41 4e 44 5f 4c 45 4e 5f 48 20 20 20 20 30 2e 35 35 20 20 20 20 20 20 20 define.HAND_LEN_H....0.55.......
8b1a0 20 2f 2a 20 48 6f 75 72 20 68 61 6e 64 20 6c 65 6e 67 74 68 20 28 66 72 61 63 74 69 6f 6e 20 6f ./*.Hour.hand.length.(fraction.o
8b1c0 66 20 72 61 64 69 75 73 29 20 2a 2f 00 00 00 3a 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 4c 45 4e f.radius).*/...:#define.HAND_LEN
8b1e0 5f 4d 20 20 20 20 30 2e 38 30 20 20 20 20 20 20 20 20 2f 2a 20 4d 69 6e 75 74 65 20 68 61 6e 64 _M....0.80......../*.Minute.hand
8b200 20 6c 65 6e 67 74 68 20 2a 2f 00 00 00 3a 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 4c 45 4e 5f 53 .length.*/...:#define.HAND_LEN_S
8b220 20 20 20 20 30 2e 38 30 20 20 20 20 20 20 20 20 2f 2a 20 53 65 63 6f 6e 64 20 68 61 6e 64 20 6c ....0.80......../*.Second.hand.l
8b240 65 6e 67 74 68 20 2a 2f 00 00 00 1c 2f 2a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ength.*/..../*.-----------------
8b260 2d 2d 2d 2d 2d 20 2a 2f 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 -----.*/........#ifndef.M_PI...#
8b280 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 #define.M_PI.3.14159265358979323
8b2a0 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 846....#endif....#ifndef.M_PI_2.
8b2c0 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 ..%#define.M_PI_2.1.570796326794
8b2e0 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 89661923....#endif.......)static
8b300 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d .volatile.sig_atomic_t.running.=
8b320 20 31 3b 00 00 00 33 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 .1;...3static.void.on_sig(int.s)
8b340 20 7b 20 28 76 6f 69 64 29 73 3b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 .{.(void)s;.running.=.0;.}......
8b360 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 ..struct.app.{......struct.wl_di
8b380 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 splay.*d;......struct.wl_registr
8b3a0 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f y.*reg;......struct.wl_composito
8b3c0 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d r.*comp;......struct.wl_shm.*shm
8b3e0 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 ;......struct.xdg_wm_base.*wm;..
8b400 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 ....struct.wl_surface.*ws;......
8b420 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 struct.xdg_surface.*xs;......str
8b440 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 uct.xdg_toplevel.*xt;......void.
8b460 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a *pixels;......struct.wl_buffer.*
8b480 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 62 77 2c buf;......int.w,.h;......int.bw,
8b4a0 20 62 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 .bh;......bool.configured;......
8b4c0 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 6a 73 74 61 74 69 63 bool.redraw;....};.......jstatic
8b4e0 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 .void.wm_ping(void.*data,.struct
8b500 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 .xdg_wm_base.*wm,.uint32_t.seria
8b520 6c 29 20 7b 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c l).{.xdg_wm_base_pong(wm,.serial
8b540 29 3b 20 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 );.}.......$static.int.create_sh
8b560 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d m(size_t.size).{...#..char.t[].=
8b580 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 6e 74 ."/tmp/wlclock-XXXXXX";......int
8b5a0 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 16 20 20 69 66 20 28 66 64 20 3c 20 .fd.=.mkstemp(t);......if.(fd.<.
8b5c0 30 29 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 27 20 0).exit(1);......unlink(t);...'.
8b5e0 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 65 78 .if.(ftruncate(fd,.size).<.0).ex
8b600 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 it(1);......return.fd;....}.....
8b620 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 ..(static.void.destroy_buf(struc
8b640 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 16 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 20 72 65 t.app.*a).{......if.(!a->buf).re
8b660 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 turn;...*..size_t.size.=.(size_t
8b680 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 )a->bw.*.a->bh.*.4;......wl_buff
8b6a0 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 er_destroy(a->buf);......munmap(
8b6c0 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 22 20 20 61 2d 3e 62 75 66 20 3d 20 a->pixels,.size);..."..a->buf.=.
8b6e0 4e 55 4c 4c 3b 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 NULL;.a->pixels.=.NULL;....}....
8b700 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 ...&static.void.alloc_buf(struct
8b720 20 61 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 .app.*a).{......destroy_buf(a);.
8b740 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 77 20 ..(..size_t.size.=.(size_t)a->w.
8b760 2a 20 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 *.a->h.*.4;......int.fd.=.create
8b780 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 _shm(size);...J..a->pixels.=.mma
8b7a0 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 p(NULL,.size,.PROT_READ.|.PROT_W
8b7c0 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 27 20 20 69 RITE,.MAP_SHARED,.fd,.0);...'..i
8b7e0 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 65 78 69 74 f.(a->pixels.==.MAP_FAILED).exit
8b800 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f (1);...B..struct.wl_shm_pool.*po
8b820 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 ol.=.wl_shm_create_pool(a->shm,.
8b840 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 5c 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f fd,.size);...\..a->buf.=.wl_shm_
8b860 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 pool_create_buffer(pool,.0,.a->w
8b880 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f ,.a->h,.a->w.*.4,.WL_SHM_FORMAT_
8b8a0 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 ARGB8888);......wl_shm_pool_dest
8b8c0 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 1d 20 20 roy(pool);......close(fd);......
8b8e0 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b 20 61 2d 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d a->bw.=.a->w;.a->bh.=.a->h;....}
8b900 00 00 00 00 00 00 00 53 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 .......Sstatic.void.circle(uint3
8b920 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 2_t.*px,.int.w,.int.h,.int.cx,.i
8b940 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 nt.cy,.int.r,.uint32_t.c).{...".
8b960 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 .int.x.=.0,.y.=.r,.d.=.3.-.2.*.r
8b980 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 ;......while.(y.>=.x).{...H....i
8b9a0 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 nt.p[8][2].=.{{cx.+.x,.cy.+.y},.
8b9c0 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 {cx.-.x,.cy.+.y},.{cx.+.x,.cy.-.
8b9e0 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 y},...H...................{cx.-.
8ba00 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 x,.cy.-.y},.{cx.+.y,.cy.+.x},.{c
8ba20 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 x.-.y,.cy.+.x},...7.............
8ba40 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c ......{cx.+.y,.cy.-.x},.{cx.-.y,
8ba60 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 .cy.-.x}};........for.(int.i.=.0
8ba80 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b ;.i.<.8;.i++)...E......if.(p[i][
8baa0 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 0].>=.0.&&.p[i][0].<.w.&&.p[i][1
8bac0 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 ].>=.0.&&.p[i][1].<.h)...&......
8bae0 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b ..px[p[i][1].*.w.+.p[i][0]].=.c;
8bb00 00 00 00 43 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b 20 64 20 2b 3d 20 34 20 2a 20 28 78 ...C....if.(d.>.0).{.d.+=.4.*.(x
8bb20 20 2d 20 79 29 20 2b 20 31 30 3b 20 79 2d 2d 3b 20 7d 20 65 6c 73 65 20 64 20 2b 3d 20 34 20 2a .-.y).+.10;.y--;.}.else.d.+=.4.*
8bb40 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 .x.+.6;........x++;......}....}.
8bb60 00 00 00 00 00 00 6e 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e 74 ......nstatic.void.fill_tri(uint
8bb80 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 32_t.*px,.int.w,.int.h,.int.x0,.
8bba0 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 69 6e 74 20 78 32 2c 20 int.y0,.int.x1,.int.y1,.int.x2,.
8bbc0 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 6e 74 20 6d int.y2,.uint32_t.c).{...B..int.m
8bbe0 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 79 30 20 3a in_y.=.y0.<.y1.?.(y0.<.y2.?.y0.:
8bc00 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 42 20 .y2).:.(y1.<.y2.?.y1.:.y2);...B.
8bc20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e 20 79 32 20 .int.max_y.=.y0.>.y1.?.(y0.>.y2.
8bc40 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 ?.y0.:.y2).:.(y1.>.y2.?.y1.:.y2)
8bc60 3b 00 00 00 3a 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 29 20 6d 69 6e 5f 79 20 3d 20 30 3b ;...:..if.(min_y.<.0).min_y.=.0;
8bc80 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 .if.(max_y.>=.h).max_y.=.h.-.1;.
8bca0 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 ..(..for.(int.y.=.min_y;.y.<=.ma
8bcc0 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d x_y;.y++).{........int.x_start.=
8bce0 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 .w,.x_end.=.0;...3....int.xs[3].
8bd00 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c =.{x0,.x1,.x2},.ys[3].=.{y0,.y1,
8bd20 20 79 32 7d 3b 00 00 00 15 20 20 20 20 62 6f 6f 6c 20 68 69 74 20 3d 20 66 61 6c 73 65 3b 00 00 .y2};........bool.hit.=.false;..
8bd40 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b .!....for.(int.i.=.0;.i.<.3;.i++
8bd60 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 20 33 ).{..........int.j.=.(i.+.1).%.3
8bd80 3b 00 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 ;...C......if.((ys[i].<=.y.&&.ys
8bda0 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d [j].>.y).||.(ys[j].<=.y.&&.ys[i]
8bdc0 20 3e 20 79 29 29 20 7b 00 00 00 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 .>.y)).{...H........int.x.=.xs[i
8bde0 5d 20 2b 20 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d ].+.(y.-.ys[i]).*.(xs[j].-.xs[i]
8be00 29 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b 00 00 00 3f 20 20 20 20 20 20 20 20 )./.(ys[j].-.ys[i]);...?........
8be20 69 66 20 28 78 20 3c 20 78 5f 73 74 61 72 74 29 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 20 69 66 if.(x.<.x_start).x_start.=.x;.if
8be40 20 28 78 20 3e 20 78 5f 65 6e 64 29 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 13 20 20 20 20 20 .(x.>.x_end).x_end.=.x;.........
8be60 20 20 20 68 69 74 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 ...hit.=.true;..........}.......
8be80 20 7d 00 00 00 0e 20 20 20 20 69 66 20 28 68 69 74 29 20 7b 00 00 00 42 20 20 20 20 20 20 69 66 .}........if.(hit).{...B......if
8bea0 20 28 78 5f 73 74 61 72 74 20 3c 20 30 29 20 78 5f 73 74 61 72 74 20 3d 20 30 3b 20 69 66 20 28 .(x_start.<.0).x_start.=.0;.if.(
8bec0 78 5f 65 6e 64 20 3e 3d 20 77 29 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 3f 20 20 x_end.>=.w).x_end.=.w.-.1;...?..
8bee0 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 ....for.(int.x.=.x_start;.x.<=.x
8bf00 5f 65 6e 64 3b 20 78 2b 2b 29 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 _end;.x++).px[y.*.w.+.x].=.c;...
8bf20 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 .....}......}....}.......#static
8bf40 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 .void.render(struct.app.*a).{...
8bf60 37 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 7..if.(!a->configured.||.a->w.<=
8bf80 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 20 72 65 74 75 72 6e 3b 00 00 00 1c 20 20 69 66 .0.||.a->h.<=.0).return;......if
8bfa0 20 28 21 61 2d 3e 62 75 66 29 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 .(!a->buf).alloc_buf(a);......ui
8bfc0 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 36 20 20 66 6f 72 nt32_t.*px.=.a->pixels;...6..for
8bfe0 28 69 6e 74 20 69 3d 30 3b 20 69 20 3c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 3b 20 69 2b 2b 29 20 (int.i=0;.i.<.a->w.*.a->h;.i++).
8c000 70 78 5b 69 5d 20 3d 20 43 4f 4c 4f 52 5f 42 47 3b 00 00 00 00 00 00 00 19 20 20 74 69 6d 65 5f px[i].=.COLOR_BG;..........time_
8c020 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 t.tt.=.time(NULL);......struct.t
8c040 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d m.tmv;......localtime_r(&tt,.&tm
8c060 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d v);...#..int.cx.=.a->w./.2,.cy.=
8c080 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 .a->h./.2;.../..int.r.=.(a->w.<.
8c0a0 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 a->h.?.a->w.:.a->h)./.2.-.10;...
8c0c0 13 20 20 69 66 20 28 72 20 3c 20 35 29 20 72 20 3d 20 35 3b 00 00 00 00 00 00 00 20 20 20 66 6f ...if.(r.<.5).r.=.5;..........fo
8c0e0 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 2e r.(int.i.=.0;.i.<.60;.i++).{....
8c100 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 ....double.ang.=.i./.60.0.*.2.*.
8c120 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 31 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 M_PI.-.M_PI_2;...1....int.len.=.
8c140 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 20 2a 20 30 2e 31 32 20 3a 20 72 20 2a 20 30 2e (i.%.5.==.0).?.r.*.0.12.:.r.*.0.
8c160 30 34 3b 00 00 00 30 20 20 20 20 64 6f 75 62 6c 65 20 74 5f 61 6e 67 20 3d 20 28 69 20 25 20 35 04;...0....double.t_ang.=.(i.%.5
8c180 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 32 20 3a 20 30 2e 30 30 35 3b 00 00 00 4a 20 20 20 20 66 .==.0).?.0.012.:.0.005;...J....f
8c1a0 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 ill_tri(px,.a->w,.a->h,.cx.+.cos
8c1c0 28 61 6e 67 2d 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 2d 74 5f 61 6e (ang-t_ang)*r,.cy.+.sin(ang-t_an
8c1e0 67 29 2a 72 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 g)*r,...:.............cx.+.cos(a
8c200 6e 67 2b 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 2b 74 5f 61 6e 67 29 ng+t_ang)*r,.cy.+.sin(ang+t_ang)
8c220 2a 72 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 *r,...G.............cx.+.cos(ang
8c240 29 2a 28 72 2d 6c 65 6e 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 2a 28 72 2d 6c 65 6e 29 )*(r-len),.cy.+.sin(ang)*(r-len)
8c260 2c 20 43 4f 4c 4f 52 5f 44 49 41 4c 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 34 20 20 64 ,.COLOR_DIAL);......}.......4..d
8c280 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 ouble.sa.=.tmv.tm_sec./.60.0.*.2
8c2a0 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 6c 65 20 6d 61 .*.M_PI.-.M_PI_2;...J..double.ma
8c2c0 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 .=.(tmv.tm_min.+.tmv.tm_sec./.60
8c2e0 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 .0)./.60.0.*.2.*.M_PI.-.M_PI_2;.
8c300 00 00 54 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 ..T..double.ha.=.((tmv.tm_hour.%
8c320 20 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 .12).+.(tmv.tm_min./.60.0))./.12
8c340 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 5f 20 .0.*.2.*.M_PI.-.M_PI_2;......._.
8c360 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 .fill_tri(px,.a->w,.a->h,.cx.+.c
8c380 6f 73 28 68 61 2d 30 2e 31 32 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 20 63 79 20 2b os(ha-0.12)*r*HAND_THICK_H,.cy.+
8c3a0 20 73 69 6e 28 68 61 2d 30 2e 31 32 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 20 00 00 .sin(ha-0.12)*r*HAND_THICK_H,...
8c3c0 00 4f 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 2b 30 2e 31 32 29 2a 72 .O...........cx.+.cos(ha+0.12)*r
8c3e0 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 2b 30 2e 31 32 29 *HAND_THICK_H,.cy.+.sin(ha+0.12)
8c400 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 20 00 00 00 4d 20 20 20 20 20 20 20 20 20 20 20 *r*HAND_THICK_H,....M...........
8c420 63 78 20 2b 20 63 6f 73 28 68 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 48 2c 20 63 79 20 2b 20 cx.+.cos(ha)*r*HAND_LEN_H,.cy.+.
8c440 73 69 6e 28 68 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 48 2c 20 43 4f 4c 4f 52 5f 48 4f 55 52 sin(ha)*r*HAND_LEN_H,.COLOR_HOUR
8c460 29 3b 00 00 00 5f 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c );..._..fill_tri(px,.a->w,.a->h,
8c480 20 63 78 20 2b 20 63 6f 73 28 6d 61 2d 30 2e 30 38 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f .cx.+.cos(ma-0.08)*r*HAND_THICK_
8c4a0 4d 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 2d 30 2e 30 38 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 M,.cy.+.sin(ma-0.08)*r*HAND_THIC
8c4c0 4b 5f 4d 2c 20 00 00 00 4f 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 2b K_M,....O...........cx.+.cos(ma+
8c4e0 30 2e 30 38 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 20 63 79 20 2b 20 73 69 6e 28 6d 0.08)*r*HAND_THICK_M,.cy.+.sin(m
8c500 61 2b 30 2e 30 38 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 20 00 00 00 4c 20 20 20 20 a+0.08)*r*HAND_THICK_M,....L....
8c520 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 4d .......cx.+.cos(ma)*r*HAND_LEN_M
8c540 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 4d 2c 20 43 4f 4c ,.cy.+.sin(ma)*r*HAND_LEN_M,.COL
8c560 4f 52 5f 4d 49 4e 29 3b 00 00 00 5e 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c OR_MIN);...^..fill_tri(px,.a->w,
8c580 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 2d 30 2e 30 35 29 2a 72 2a 48 41 4e 44 5f .a->h,.cx.+.cos(sa-0.05)*r*HAND_
8c5a0 54 48 49 43 4b 5f 53 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 2d 30 2e 30 35 29 2a 72 2a 48 41 4e THICK_S,.cy.+.sin(sa-0.05)*r*HAN
8c5c0 44 5f 54 48 49 43 4b 5f 53 2c 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f D_THICK_S,...N...........cx.+.co
8c5e0 73 28 73 61 2b 30 2e 30 35 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 20 63 79 20 2b 20 s(sa+0.05)*r*HAND_THICK_S,.cy.+.
8c600 73 69 6e 28 73 61 2b 30 2e 30 35 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 00 00 4c sin(sa+0.05)*r*HAND_THICK_S,...L
8c620 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 29 2a 72 2a 48 41 4e 44 5f 4c ...........cx.+.cos(sa)*r*HAND_L
8c640 45 4e 5f 53 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 53 2c EN_S,.cy.+.sin(sa)*r*HAND_LEN_S,
8c660 20 43 4f 4c 4f 52 5f 53 45 43 29 3b 00 00 00 00 00 00 00 31 20 20 69 6e 74 20 68 75 62 5f 72 20 .COLOR_SEC);.......1..int.hub_r.
8c680 3d 20 72 20 2a 20 30 2e 30 34 3b 20 69 66 20 28 68 75 62 5f 72 20 3c 20 34 29 20 68 75 62 5f 72 =.r.*.0.04;.if.(hub_r.<.4).hub_r
8c6a0 20 3d 20 34 3b 00 00 00 56 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 72 20 3c .=.4;...V..for.(int.ir.=.0;.ir.<
8c6c0 20 68 75 62 5f 72 20 2d 20 32 3b 20 69 72 2b 2b 29 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e .hub_r.-.2;.ir++).circle(px,.a->
8c6e0 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 43 4f 4c 4f 52 5f 42 47 29 3b 00 w,.a->h,.cx,.cy,.ir,.COLOR_BG);.
8c700 00 00 33 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 ..3..circle(px,.a->w,.a->h,.cx,.
8c720 63 79 2c 20 68 75 62 5f 72 2c 20 43 4f 4c 4f 52 5f 48 55 42 29 3b 00 00 00 00 00 00 00 29 20 20 cy,.hub_r,.COLOR_HUB);.......)..
8c740 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c wl_surface_attach(a->ws,.a->buf,
8c760 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 .0,.0);...4..wl_surface_damage_b
8c780 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 uffer(a->ws,.0,.0,.a->w,.a->h);.
8c7a0 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 .....wl_surface_commit(a->ws);..
8c7c0 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 ....a->redraw.=.false;....}.....
8c7e0 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c ..Gstatic.void.xt_close(void.*d,
8c800 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 72 75 6e 6e .struct.xdg_toplevel.*xt).{.runn
8c820 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 60 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 ing.=.0;.}...`static.void.xt_cfg
8c840 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 (void.*d,.struct.xdg_toplevel.*x
8c860 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 20 73 74 72 75 63 74 20 t,.int32_t.w,.int32_t.h,.struct.
8c880 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a wl_array.*s).{......struct.app.*
8c8a0 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 a.=.d;...3..if.(w.>.0.&&.h.>.0.&
8c8c0 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 &.(w.!=.a->w.||.h.!=.a->h)).{...
8c8e0 39 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 20 61 2d 3e 68 20 3d 20 68 3b 20 64 65 73 74 72 6f 79 9....a->w.=.w;.a->h.=.h;.destroy
8c900 5f 62 75 66 28 61 29 3b 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 _buf(a);.a->redraw.=.true;......
8c920 7d 00 00 00 01 7d 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 }....}...Fstatic.void.xs_cfg(voi
8c940 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 d.*d,.struct.xdg_surface.*xs,.ui
8c960 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 3b 20 20 73 74 72 75 63 74 20 61 70 70 nt32_t.serial).{...;..struct.app
8c980 20 2a 61 20 3d 20 64 3b 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 .*a.=.d;.xdg_surface_ack_configu
8c9a0 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 29 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 re(xs,.serial);...)..a->configur
8c9c0 65 64 20 3d 20 74 72 75 65 3b 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 ed.=.true;.a->redraw.=.true;....
8c9e0 7d 00 00 00 60 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 }...`static.void.reg_global(void
8ca00 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 .*d,.struct.wl_registry.*r,.uint
8ca20 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c 20 75 69 6e 74 33 32 5f 74 32_t.id,.const.char.*i,.uint32_t
8ca40 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 .v).{......struct.app.*a.=.d;...
8ca60 62 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 b..if.(!strcmp(i,."wl_compositor
8ca80 22 29 29 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 ")).a->comp.=.wl_registry_bind(r
8caa0 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 ,.id,.&wl_compositor_interface,.
8cac0 34 29 3b 00 00 00 58 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 4);...X..else.if.(!strcmp(i,."wl
8cae0 5f 73 68 6d 22 29 29 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e _shm")).a->shm.=.wl_registry_bin
8cb00 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 d(r,.id,.&wl_shm_interface,.1);.
8cb20 00 00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d ..'..else.if.(!strcmp(i,."xdg_wm
8cb40 5f 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 _base")).{...?....a->wm.=.wl_reg
8cb60 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 istry_bind(r,.id,.&xdg_wm_base_i
8cb80 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 nterface,.1);...C....static.cons
8cba0 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 20 t.struct.xdg_wm_base_listener.l.
8cbc0 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f =.{.ping.=.wm_ping};...+....xdg_
8cbe0 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 wm_base_add_listener(a->wm,.&l,.
8cc00 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 a);......}....}........int.main(
8cc20 76 6f 69 64 29 20 7b 00 00 00 2b 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b void).{...+..struct.app.a.=.{0};
8cc40 20 61 2e 77 20 3d 20 34 30 30 3b 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e .a.w.=.400;.a.h.=.400;......sign
8cc60 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 al(SIGINT,.on_sig);...!..a.d.=.w
8cc80 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 15 20 20 69 66 l_display_connect(NULL);......if
8cca0 20 28 21 61 2e 64 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 .(!a.d).return.1;...'..a.reg.=.w
8ccc0 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 47 l_display_get_registry(a.d);...G
8cce0 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 ..static.const.struct.wl_registr
8cd00 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 y_listener.rl.=.{.global.=.reg_g
8cd20 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 lobal};...+..wl_registry_add_lis
8cd40 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 tener(a.reg,.&rl,.&a);......wl_d
8cd60 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 2b 20 20 69 66 20 28 isplay_roundtrip(a.d);...+..if.(
8cd80 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 20 72 65 74 75 !a.comp.||.!a.shm.||.!a.wm).retu
8cda0 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f rn.1;......a.ws.=.wl_compositor_
8cdc0 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 create_surface(a.comp);...1..a.x
8cde0 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 s.=.xdg_wm_base_get_xdg_surface(
8ce00 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 a.wm,.a.ws);...G..static.const.s
8ce20 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 6c 20 3d truct.xdg_surface_listener.xsl.=
8ce40 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 2b 20 20 78 64 67 .{.configure.=.xs_cfg};...+..xdg
8ce60 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 6c _surface_add_listener(a.xs,.&xsl
8ce80 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 ,.&a);...(..a.xt.=.xdg_surface_g
8cea0 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 5b 20 20 73 74 61 74 69 63 20 63 et_toplevel(a.xs);...[..static.c
8cec0 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 onst.struct.xdg_toplevel_listene
8cee0 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 20 2e 63 r.xtl.=.{.configure.=.xt_cfg,..c
8cf00 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 lose.=.xt_close};...,..xdg_tople
8cf20 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 26 61 29 vel_add_listener(a.xt,.&xtl,.&a)
8cf40 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e ;...*..xdg_toplevel_set_title(a.
8cf60 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f xt,."wlclock");......wl_surface_
8cf80 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 31 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e commit(a.ws);...1..while.(!a.con
8cfa0 66 69 67 75 72 65 64 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 figured).wl_display_dispatch(a.d
8cfc0 29 3b 00 00 00 02 20 20 00 00 00 32 20 20 70 75 74 73 28 22 77 61 79 6c 61 6e 64 20 73 75 72 66 );.........2..puts("wayland.surf
8cfe0 61 63 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 63 6f 6e 66 69 67 75 72 65 64 22 29 3b 00 00 ace.successfully.configured");..
8d000 00 02 20 20 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 ..........render(&a);...9..int.t
8d020 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f fd.=.timerfd_create(CLOCK_MONOTO
8d040 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f NIC,.TFD_CLOEXEC);...F..timerfd_
8d060 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 settime(tfd,.0,.&(struct.itimers
8d080 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 pec){{1,.0},.{1,.0}},.NULL);....
8d0a0 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 ..char.buffer[100];......while.(
8d0c0 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 4f 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 running).{...O....while.(wl_disp
8d0e0 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 20 77 6c 5f 64 lay_prepare_read(a.d).!=.0).wl_d
8d100 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 isplay_dispatch_pending(a.d);...
8d120 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 4d 20 .....wl_display_flush(a.d);...M.
8d140 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 6c 5f 64 ...struct.pollfd.fds[2].=.{{wl_d
8d160 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 7b 74 66 isplay_get_fd(a.d),.POLLIN},.{tf
8d180 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 48 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 66 64 73 d,.POLLIN}};...H....if.(poll(fds
8d1a0 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 ,.2,.-1).<.0).{.wl_display_cance
8d1c0 6c 5f 72 65 61 64 28 61 2e 64 29 3b 20 63 6f 6e 74 69 6e 75 65 3b 20 7d 00 00 00 5f 20 20 20 20 l_read(a.d);.continue;.}..._....
8d1e0 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 77 6c 5f if.(fds[0].revents.&.POLLIN).wl_
8d200 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 20 65 6c 73 65 20 77 display_read_events(a.d);.else.w
8d220 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 l_display_cancel_read(a.d);...%.
8d240 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 ...wl_display_dispatch_pending(a
8d260 2e 64 29 3b 00 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 .d);..."....if.(fds[1].revents.&
8d280 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 37 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 5f 65 .POLLIN).{...7......uint64_t.t_e
8d2a0 78 70 3b 20 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 xp;.read(tfd,.&t_exp,.sizeof(t_e
8d2c0 78 70 29 29 3b 00 00 00 1e 20 20 20 20 20 20 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 xp));..........time_t.cli.=.time
8d2e0 28 4e 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 5f 73 74 (NULL);...,......struct.tm.*t_st
8d300 72 75 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 3b 00 00 00 49 20 20 20 20 20 ruct.=.localtime(&cli);...I.....
8d320 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 .strftime(buffer,.sizeof(buffer)
8d340 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c 20 74 5f 73 74 72 75 ,."%d-%m-%Y.%I:%M:%S.%p",.t_stru
8d360 63 74 29 3b 00 00 00 35 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 5c 72 54 69 6d 65 20 69 73 20 ct);...5......printf("\rTime.is.
8d380 25 73 22 2c 20 62 75 66 66 65 72 29 3b 20 66 66 6c 75 73 68 28 73 74 64 6f 75 74 29 3b 00 00 00 %s",.buffer);.fflush(stdout);...
8d3a0 16 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d .......a.redraw.=.true;........}
8d3c0 00 00 00 1d 20 20 20 20 69 66 20 28 61 2e 72 65 64 72 61 77 29 20 72 65 6e 64 65 72 28 26 61 29 ........if.(a.redraw).render(&a)
8d3e0 3b 00 00 00 03 20 20 7d 00 00 00 48 20 20 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b 20 63 6c 6f 73 ;......}...H..printf("\n");.clos
8d400 65 28 74 66 64 29 3b 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b 20 77 6c 5f 64 69 73 70 e(tfd);.destroy_buf(&a);.wl_disp
8d420 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 35 81 f5 18 00 00 00 00 12 00 00 00 lay_disconnect(a.d);5...........
8d440 11 00 00 00 e0 00 00 00 2c 00 00 00 2a 01 00 00 01 00 00 00 96 01 00 00 00 00 00 00 0f 22 00 00 ........,...*................"..
8d460 00 00 00 00 4b 24 00 00 00 00 00 00 35 81 5f d0 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 52 ....K$......5._....P...........R
8d480 00 00 00 51 00 00 00 cc 00 00 00 36 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 ...Q.......6....................
8d4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 ................................
8d5e0 00 0e 00 00 00 00 00 00 00 56 00 00 00 0e 00 00 00 00 69 9d a4 4a 04 01 00 00 00 17 00 f5 18 00 .........V........i..J..........
8d600 00 00 c8 00 00 00 ce 00 00 01 03 00 00 00 04 00 00 00 1a 20 20 74 69 6d 65 5f 74 20 63 6c 69 20 .....................time_t.cli.
8d620 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 21 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 20 =.time(NULL);...!..struct.tm.*t.
8d640 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 6e 6f 77 29 3b 00 00 00 13 20 20 63 68 61 72 20 62 75 66 =.localtime(&now);......char.buf
8d660 66 65 72 5b 31 30 30 5d 3b 00 00 00 4e 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 fer[100];...N..strftime(buffer,.
8d680 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a sizeof(buffer),."%d-%m-%Y.%I:%M:
8d6a0 25 53 20 25 70 22 29 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 35 81 f5 18 00 %S.%p").struct.app.a.=.{0};5....
8d6c0 00 00 00 c8 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 03 00 00 00 3a 00 00 00 51 15 00 00 00 .......................:...Q....
8d6e0 00 00 00 89 00 00 00 00 00 00 00 8b 00 00 00 00 00 00 00 35 81 e7 aa ...................5...