{"payload":{"allShortcutsEnabled":false,"fileTree":{"Xcode-iOS/Demos/src":{"items":[{"name":"accelerometer.c","path":"Xcode-iOS/Demos/src/accelerometer.c","contentType":"file"},{"name":"common.c","path":"Xcode-iOS/Demos/src/common.c","contentType":"file"},{"name":"common.h","path":"Xcode-iOS/Demos/src/common.h","contentType":"file"},{"name":"fireworks.c","path":"Xcode-iOS/Demos/src/fireworks.c","contentType":"file"},{"name":"happy.c","path":"Xcode-iOS/Demos/src/happy.c","contentType":"file"},{"name":"keyboard.c","path":"Xcode-iOS/Demos/src/keyboard.c","contentType":"file"},{"name":"mixer.c","path":"Xcode-iOS/Demos/src/mixer.c","contentType":"file"},{"name":"rectangles.c","path":"Xcode-iOS/Demos/src/rectangles.c","contentType":"file"},{"name":"touch.c","path":"Xcode-iOS/Demos/src/touch.c","contentType":"file"}],"totalCount":9},"Xcode-iOS/Demos":{"items":[{"name":"Demos.xcodeproj","path":"Xcode-iOS/Demos/Demos.xcodeproj","contentType":"directory"},{"name":"data","path":"Xcode-iOS/Demos/data","contentType":"directory"},{"name":"src","path":"Xcode-iOS/Demos/src","contentType":"directory"},{"name":"Default.png","path":"Xcode-iOS/Demos/Default.png","contentType":"file"},{"name":"Icon.png","path":"Xcode-iOS/Demos/Icon.png","contentType":"file"},{"name":"Info.plist","path":"Xcode-iOS/Demos/Info.plist","contentType":"file"},{"name":"README","path":"Xcode-iOS/Demos/README","contentType":"file"},{"name":"iOS Launch Screen.storyboard","path":"Xcode-iOS/Demos/iOS Launch Screen.storyboard","contentType":"file"}],"totalCount":8},"Xcode-iOS":{"items":[{"name":"Demos","path":"Xcode-iOS/Demos","contentType":"directory"},{"name":"SDL","path":"Xcode-iOS/SDL","contentType":"directory"},{"name":"SDLtest","path":"Xcode-iOS/SDLtest","contentType":"directory"},{"name":"Template","path":"Xcode-iOS/Template","contentType":"directory"},{"name":"Test","path":"Xcode-iOS/Test","contentType":"directory"}],"totalCount":5},"":{"items":[{"name":"VisualC-WinRT","path":"VisualC-WinRT","contentType":"directory"},{"name":"VisualC","path":"VisualC","contentType":"directory"},{"name":"Xcode-iOS","path":"Xcode-iOS","contentType":"directory"},{"name":"Xcode","path":"Xcode","contentType":"directory"},{"name":"acinclude","path":"acinclude","contentType":"directory"},{"name":"android-project","path":"android-project","contentType":"directory"},{"name":"build-scripts","path":"build-scripts","contentType":"directory"},{"name":"cmake","path":"cmake","contentType":"directory"},{"name":"debian","path":"debian","contentType":"directory"},{"name":"docs","path":"docs","contentType":"directory"},{"name":"include","path":"include","contentType":"directory"},{"name":"src","path":"src","contentType":"directory"},{"name":"test","path":"test","contentType":"directory"},{"name":"visualtest","path":"visualtest","contentType":"directory"},{"name":".hgignore","path":".hgignore","contentType":"file"},{"name":"Android.mk","path":"Android.mk","contentType":"file"},{"name":"BUGS.txt","path":"BUGS.txt","contentType":"file"},{"name":"CMakeLists.txt","path":"CMakeLists.txt","contentType":"file"},{"name":"COPYING.txt","path":"COPYING.txt","contentType":"file"},{"name":"CREDITS.txt","path":"CREDITS.txt","contentType":"file"},{"name":"INSTALL.txt","path":"INSTALL.txt","contentType":"file"},{"name":"Makefile.in","path":"Makefile.in","contentType":"file"},{"name":"Makefile.minimal","path":"Makefile.minimal","contentType":"file"},{"name":"Makefile.pandora","path":"Makefile.pandora","contentType":"file"},{"name":"Makefile.psp","path":"Makefile.psp","contentType":"file"},{"name":"Makefile.wiz","path":"Makefile.wiz","contentType":"file"},{"name":"README-SDL.txt","path":"README-SDL.txt","contentType":"file"},{"name":"README.txt","path":"README.txt","contentType":"file"},{"name":"SDL2.spec.in","path":"SDL2.spec.in","contentType":"file"},{"name":"TODO.txt","path":"TODO.txt","contentType":"file"},{"name":"VisualC.html","path":"VisualC.html","contentType":"file"},{"name":"WhatsNew.txt","path":"WhatsNew.txt","contentType":"file"},{"name":"autogen.sh","path":"autogen.sh","contentType":"file"},{"name":"cmake_uninstall.cmake.in","path":"cmake_uninstall.cmake.in","contentType":"file"},{"name":"configure","path":"configure","contentType":"file"},{"name":"configure.in","path":"configure.in","contentType":"file"},{"name":"sdl2-config.cmake.in","path":"sdl2-config.cmake.in","contentType":"file"},{"name":"sdl2-config.in","path":"sdl2-config.in","contentType":"file"},{"name":"sdl2.m4","path":"sdl2.m4","contentType":"file"},{"name":"sdl2.pc.in","path":"sdl2.pc.in","contentType":"file"}],"totalCount":40}},"fileTreeProcessingTime":5.745249,"foldersToFetch":[],"repo":{"id":330008801,"defaultBranch":"main","name":"SDL","ownerLogin":"libsdl-org","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-01-15T19:55:54.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/77683370?v=4","public":true,"private":false,"isOrgOwned":true},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"00da0824f5a0a5ca2f8d08e4ab1d169477b973fe","listCacheKey":"v0:1709678518.0","canEdit":false,"refType":"tree","currentOid":"00da0824f5a0a5ca2f8d08e4ab1d169477b973fe"},"path":"Xcode-iOS/Demos/src/keyboard.c","currentUser":null,"blob":{"rawLines":["/*"," * keyboard.c"," * written by Holmes Futrell"," * use however you want"," */","","#include \"SDL.h\"","#include \"common.h\"","","#define GLYPH_SIZE_IMAGE 16 /* size of glyphs (characters) in the bitmap font file */","#define GLYPH_SIZE_SCREEN 32 /* size of glyphs (characters) as shown on the screen */","","static SDL_Texture *texture; /* texture where we'll hold our font */","","/* function declarations */","void cleanup(void);","void drawBlank(int x, int y);","","static SDL_Renderer *renderer;","static int numChars = 0; /* number of characters we've typed so far */","static SDL_bool lastCharWasColon = 0; /* we use this to detect sequences such as :) */","static SDL_Color bg_color = { 50, 50, 100, 255 }; /* color of background */","","/* this structure maps a scancode to an index in our bitmap font."," it also contains data about under which modifiers the mapping is valid"," (for example, we don't want shift + 1 to produce the character '1',"," but rather the character '!')","*/","typedef struct","{"," SDL_Scancode scancode; /* scancode of the key we want to map */"," int allow_no_mod; /* is the map valid if the key has no modifiers? */"," SDL_Keymod mod; /* what modifiers are allowed for the mapping */"," int index; /* what index in the font does the scancode map to */","} fontMapping;","","#define TABLE_SIZE 51 /* size of our table which maps keys and modifiers to font indices */","","/* Below is the table that defines the mapping between scancodes and modifiers to indices in the"," bitmap font. As an example, then line '{ SDL_SCANCODE_A, 1, KMOD_SHIFT, 33 }' means, map"," the key A (which has scancode SDL_SCANCODE_A) to index 33 in the font (which is a picture of an A),"," The '1' means that the mapping is valid even if there are no modifiers, and KMOD_SHIFT means the"," mapping is also valid if the user is holding shift.","*/","fontMapping map[TABLE_SIZE] = {",""," {SDL_SCANCODE_A, 1, KMOD_SHIFT, 33}, /* A */"," {SDL_SCANCODE_B, 1, KMOD_SHIFT, 34}, /* B */"," {SDL_SCANCODE_C, 1, KMOD_SHIFT, 35}, /* C */"," {SDL_SCANCODE_D, 1, KMOD_SHIFT, 36}, /* D */"," {SDL_SCANCODE_E, 1, KMOD_SHIFT, 37}, /* E */"," {SDL_SCANCODE_F, 1, KMOD_SHIFT, 38}, /* F */"," {SDL_SCANCODE_G, 1, KMOD_SHIFT, 39}, /* G */"," {SDL_SCANCODE_H, 1, KMOD_SHIFT, 40}, /* H */"," {SDL_SCANCODE_I, 1, KMOD_SHIFT, 41}, /* I */"," {SDL_SCANCODE_J, 1, KMOD_SHIFT, 42}, /* J */"," {SDL_SCANCODE_K, 1, KMOD_SHIFT, 43}, /* K */"," {SDL_SCANCODE_L, 1, KMOD_SHIFT, 44}, /* L */"," {SDL_SCANCODE_M, 1, KMOD_SHIFT, 45}, /* M */"," {SDL_SCANCODE_N, 1, KMOD_SHIFT, 46}, /* N */"," {SDL_SCANCODE_O, 1, KMOD_SHIFT, 47}, /* O */"," {SDL_SCANCODE_P, 1, KMOD_SHIFT, 48}, /* P */"," {SDL_SCANCODE_Q, 1, KMOD_SHIFT, 49}, /* Q */"," {SDL_SCANCODE_R, 1, KMOD_SHIFT, 50}, /* R */"," {SDL_SCANCODE_S, 1, KMOD_SHIFT, 51}, /* S */"," {SDL_SCANCODE_T, 1, KMOD_SHIFT, 52}, /* T */"," {SDL_SCANCODE_U, 1, KMOD_SHIFT, 53}, /* U */"," {SDL_SCANCODE_V, 1, KMOD_SHIFT, 54}, /* V */"," {SDL_SCANCODE_W, 1, KMOD_SHIFT, 55}, /* W */"," {SDL_SCANCODE_X, 1, KMOD_SHIFT, 56}, /* X */"," {SDL_SCANCODE_Y, 1, KMOD_SHIFT, 57}, /* Y */"," {SDL_SCANCODE_Z, 1, KMOD_SHIFT, 58}, /* Z */"," {SDL_SCANCODE_0, 1, 0, 16}, /* 0 */"," {SDL_SCANCODE_1, 1, 0, 17}, /* 1 */"," {SDL_SCANCODE_2, 1, 0, 18}, /* 2 */"," {SDL_SCANCODE_3, 1, 0, 19}, /* 3 */"," {SDL_SCANCODE_4, 1, 0, 20}, /* 4 */"," {SDL_SCANCODE_5, 1, 0, 21}, /* 5 */"," {SDL_SCANCODE_6, 1, 0, 22}, /* 6 */"," {SDL_SCANCODE_7, 1, 0, 23}, /* 7 */"," {SDL_SCANCODE_8, 1, 0, 24}, /* 8 */"," {SDL_SCANCODE_9, 1, 0, 25}, /* 9 */"," {SDL_SCANCODE_SPACE, 1, 0, 0}, /* ' ' */"," {SDL_SCANCODE_1, 0, KMOD_SHIFT, 1}, /* ! */"," {SDL_SCANCODE_SLASH, 0, KMOD_SHIFT, 31}, /* ? */"," {SDL_SCANCODE_SLASH, 1, 0, 15}, /* / */"," {SDL_SCANCODE_COMMA, 1, 0, 12}, /* , */"," {SDL_SCANCODE_SEMICOLON, 1, 0, 27}, /* ; */"," {SDL_SCANCODE_SEMICOLON, 0, KMOD_SHIFT, 26}, /* : */"," {SDL_SCANCODE_PERIOD, 1, 0, 14}, /* . */"," {SDL_SCANCODE_MINUS, 1, 0, 13}, /* - */"," {SDL_SCANCODE_EQUALS, 0, KMOD_SHIFT, 11}, /* = */"," {SDL_SCANCODE_APOSTROPHE, 1, 0, 7}, /* ' */"," {SDL_SCANCODE_APOSTROPHE, 0, KMOD_SHIFT, 2}, /* \" */"," {SDL_SCANCODE_5, 0, KMOD_SHIFT, 5}, /* % */","","};","","/*"," This function maps an SDL_KeySym to an index in the bitmap font."," It does so by scanning through the font mapping table one entry"," at a time.",""," If a match is found (scancode and allowed modifiers), the proper"," index is returned.",""," If there is no entry for the key, -1 is returned","*/","int","keyToIndex(SDL_Keysym key)","{"," int i, index = -1;"," for (i = 0; i < TABLE_SIZE; i++) {"," fontMapping compare = map[i];"," if (key.scancode == compare.scancode) {"," /* if this entry is valid with no key mod and we have no keymod, or if"," the key's modifiers are allowed modifiers for that mapping */"," if ((compare.allow_no_mod && key.mod == 0)"," || (key.mod & compare.mod)) {"," index = compare.index;"," break;"," }"," }"," }"," return index;","}","","/*"," This function returns and x,y position for a given character number."," It is used for positioning each character of text","*/","void","getPositionForCharNumber(int n, int *x, int *y)","{"," int renderW, renderH;"," SDL_RenderGetLogicalSize(renderer, &renderW, &renderH);",""," int x_padding = 16; /* padding space on left and right side of screen */"," int y_padding = 32; /* padding space at top of screen */"," /* figure out the number of characters that can fit horizontally across the screen */"," int max_x_chars = (renderW - 2 * x_padding) / GLYPH_SIZE_SCREEN;"," int line_separation = 5; /* pixels between each line */"," *x = (n % max_x_chars) * GLYPH_SIZE_SCREEN + x_padding;"," *y = (n / max_x_chars) * (GLYPH_SIZE_SCREEN + line_separation) +"," y_padding;","}","","void","drawIndex(int index)","{"," int x, y;"," getPositionForCharNumber(numChars, &x, &y);"," SDL_Rect srcRect ="," { GLYPH_SIZE_IMAGE * index, 0, GLYPH_SIZE_IMAGE, GLYPH_SIZE_IMAGE };"," SDL_Rect dstRect = { x, y, GLYPH_SIZE_SCREEN, GLYPH_SIZE_SCREEN };"," drawBlank(x, y);"," SDL_RenderCopy(renderer, texture, &srcRect, &dstRect);","}","","/* draws the cursor icon at the current end position of the text */","void","drawCursor(void)","{"," drawIndex(29); /* cursor is at index 29 in the bitmap font */","}","","/* paints over a glyph sized region with the background color"," in effect it erases the area","*/","void","drawBlank(int x, int y)","{"," SDL_Rect rect = { x, y, GLYPH_SIZE_SCREEN, GLYPH_SIZE_SCREEN };"," SDL_SetRenderDrawColor(renderer, bg_color.r, bg_color.g, bg_color.b, bg_color.a);"," SDL_RenderFillRect(renderer, &rect);","}","","/* moves backwards one character, erasing the last one put down */","void","backspace(void)","{"," int x, y;"," if (numChars > 0) {"," getPositionForCharNumber(numChars, &x, &y);"," drawBlank(x, y);"," numChars--;"," getPositionForCharNumber(numChars, &x, &y);"," drawBlank(x, y);"," drawCursor();"," }","}","","/* this function loads our font into an SDL_Texture and returns the SDL_Texture */","SDL_Texture*","loadFont(void)","{",""," SDL_Surface *surface = SDL_LoadBMP(\"kromasky_16x16.bmp\");",""," if (!surface) {"," printf(\"Error loading bitmap: %s\\n\", SDL_GetError());"," return 0;"," } else {"," /* set the transparent color for the bitmap font (hot pink) */"," SDL_SetColorKey(surface, 1, SDL_MapRGB(surface->format, 238, 0, 252));"," /* now we convert the surface to our desired pixel format */"," int format = SDL_PIXELFORMAT_ABGR8888; /* desired texture format */"," Uint32 Rmask, Gmask, Bmask, Amask; /* masks for desired format */"," int bpp; /* bits per pixel for desired format */"," SDL_PixelFormatEnumToMasks(format, &bpp, &Rmask, &Gmask, &Bmask,"," &Amask);"," SDL_Surface *converted ="," SDL_CreateRGBSurface(0, surface->w, surface->h, bpp, Rmask, Gmask,"," Bmask, Amask);"," SDL_BlitSurface(surface, NULL, converted, NULL);"," /* create our texture */"," texture ="," SDL_CreateTextureFromSurface(renderer, converted);"," if (texture == 0) {"," printf(\"texture creation failed: %s\\n\", SDL_GetError());"," } else {"," /* set blend mode for our texture */"," SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);"," }"," SDL_FreeSurface(surface);"," SDL_FreeSurface(converted);"," return texture;"," }","}","","int","main(int argc, char *argv[])","{"," int index; /* index of last key we pushed in the bitmap font */"," SDL_Window *window;"," SDL_Event event; /* last event received */"," SDL_Keymod mod; /* key modifiers of last key we pushed */"," SDL_Scancode scancode; /* scancode of last key we pushed */"," int width;"," int height;",""," if (SDL_Init(SDL_INIT_VIDEO) < 0) {"," printf(\"Error initializing SDL: %s\", SDL_GetError());"," }"," /* create window */"," window = SDL_CreateWindow(\"iPhone keyboard test\", 0, 0, 320, 480, SDL_WINDOW_ALLOW_HIGHDPI);"," /* create renderer */"," renderer = SDL_CreateRenderer(window, -1, 0);",""," SDL_GetWindowSize(window, &width, &height);"," SDL_RenderSetLogicalSize(renderer, width, height);",""," /* load up our font */"," loadFont();",""," /* draw the background, we'll just paint over it */"," SDL_SetRenderDrawColor(renderer, bg_color.r, bg_color.g, bg_color.b, bg_color.a);"," SDL_RenderFillRect(renderer, NULL);"," SDL_RenderPresent(renderer);",""," int done = 0;"," /* loop till we get SDL_Quit */"," while (!done && SDL_WaitEvent(&event)) {"," switch (event.type) {"," case SDL_QUIT:"," done = 1;"," break;"," case SDL_KEYDOWN:"," index = keyToIndex(event.key.keysym);"," scancode = event.key.keysym.scancode;"," mod = event.key.keysym.mod;"," if (scancode == SDL_SCANCODE_DELETE) {"," /* if user hit delete, delete the last character */"," backspace();"," lastCharWasColon = 0;"," } else if (lastCharWasColon && scancode == SDL_SCANCODE_0"," && (mod & KMOD_SHIFT)) {"," /* if our last key was a colon and this one is a close paren, the make a hoppy face */"," backspace();"," drawIndex(32); /* index for happy face */"," numChars++;"," drawCursor();"," lastCharWasColon = 0;"," } else if (index != -1) {"," /* if we aren't doing a happy face, then just draw the normal character */"," drawIndex(index);"," numChars++;"," drawCursor();"," lastCharWasColon ="," (event.key.keysym.scancode == SDL_SCANCODE_SEMICOLON"," && (event.key.keysym.mod & KMOD_SHIFT));"," }"," /* check if the key was a colon */"," /* draw our updates to the screen */"," SDL_RenderPresent(renderer);"," break;"," case SDL_MOUSEBUTTONUP:"," /* mouse up toggles onscreen keyboard visibility */"," if (SDL_IsTextInputActive()) {"," SDL_StopTextInput();"," } else {"," SDL_StartTextInput();"," }"," break;"," }"," }"," cleanup();"," return 0;","}","","/* clean up after ourselves like a good kiddy */","void","cleanup(void)","{"," SDL_DestroyTexture(texture);"," SDL_Quit();","}"],"stylingDirectives":[[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":14,"cssClass":"pl-c"}],[{"start":0,"end":29,"cssClass":"pl-c"}],[{"start":0,"end":24,"cssClass":"pl-c"}],[{"start":0,"end":3,"cssClass":"pl-c"}],[],[{"start":0,"end":8,"cssClass":"pl-k"},{"start":9,"end":16,"cssClass":"pl-s"}],[{"start":0,"end":8,"cssClass":"pl-k"},{"start":9,"end":19,"cssClass":"pl-s"}],[],[{"start":0,"end":7,"cssClass":"pl-k"},{"start":8,"end":24,"cssClass":"pl-c1"}],[{"start":0,"end":7,"cssClass":"pl-k"},{"start":8,"end":25,"cssClass":"pl-c1"}],[],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":18,"cssClass":"pl-smi"},{"start":19,"end":20,"cssClass":"pl-c1"},{"start":20,"end":27,"cssClass":"pl-s1"},{"start":29,"end":68,"cssClass":"pl-c"}],[],[{"start":0,"end":27,"cssClass":"pl-c"}],[{"start":0,"end":4,"cssClass":"pl-smi"},{"start":5,"end":12,"cssClass":"pl-en"},{"start":13,"end":17,"cssClass":"pl-smi"}],[{"start":0,"end":4,"cssClass":"pl-smi"},{"start":5,"end":14,"cssClass":"pl-en"},{"start":15,"end":18,"cssClass":"pl-smi"},{"start":19,"end":20,"cssClass":"pl-s1"},{"start":22,"end":25,"cssClass":"pl-smi"},{"start":26,"end":27,"cssClass":"pl-s1"}],[],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":19,"cssClass":"pl-smi"},{"start":20,"end":21,"cssClass":"pl-c1"},{"start":21,"end":29,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-smi"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":21,"cssClass":"pl-c1"},{"start":22,"end":23,"cssClass":"pl-c1"},{"start":32,"end":77,"cssClass":"pl-c"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":15,"cssClass":"pl-smi"},{"start":16,"end":32,"cssClass":"pl-s1"},{"start":33,"end":34,"cssClass":"pl-c1"},{"start":35,"end":36,"cssClass":"pl-c1"},{"start":40,"end":88,"cssClass":"pl-c"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":16,"cssClass":"pl-smi"},{"start":17,"end":25,"cssClass":"pl-s1"},{"start":26,"end":27,"cssClass":"pl-c1"},{"start":30,"end":32,"cssClass":"pl-c1"},{"start":34,"end":36,"cssClass":"pl-c1"},{"start":38,"end":41,"cssClass":"pl-c1"},{"start":43,"end":46,"cssClass":"pl-c1"},{"start":56,"end":81,"cssClass":"pl-c"}],[],[{"start":0,"end":65,"cssClass":"pl-c"}],[{"start":0,"end":73,"cssClass":"pl-c"}],[{"start":0,"end":70,"cssClass":"pl-c"}],[{"start":0,"end":32,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":7,"cssClass":"pl-k"},{"start":8,"end":14,"cssClass":"pl-k"}],[],[{"start":4,"end":16,"cssClass":"pl-smi"},{"start":17,"end":25,"cssClass":"pl-c1"},{"start":32,"end":72,"cssClass":"pl-c"}],[{"start":4,"end":7,"cssClass":"pl-smi"},{"start":8,"end":20,"cssClass":"pl-c1"},{"start":32,"end":83,"cssClass":"pl-c"}],[{"start":4,"end":14,"cssClass":"pl-smi"},{"start":15,"end":18,"cssClass":"pl-c1"},{"start":32,"end":80,"cssClass":"pl-c"}],[{"start":4,"end":7,"cssClass":"pl-smi"},{"start":8,"end":13,"cssClass":"pl-c1"},{"start":32,"end":85,"cssClass":"pl-c"}],[{"start":2,"end":13,"cssClass":"pl-smi"}],[],[{"start":0,"end":7,"cssClass":"pl-k"},{"start":8,"end":18,"cssClass":"pl-c1"}],[],[{"start":0,"end":96,"cssClass":"pl-c"}],[{"start":0,"end":92,"cssClass":"pl-c"}],[{"start":0,"end":102,"cssClass":"pl-c"}],[{"start":0,"end":99,"cssClass":"pl-c"}],[{"start":0,"end":54,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":11,"cssClass":"pl-smi"},{"start":12,"end":15,"cssClass":"pl-s1"},{"start":16,"end":26,"cssClass":"pl-c1"},{"start":28,"end":29,"cssClass":"pl-c1"}],[],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":27,"end":29,"cssClass":"pl-c1"},{"start":32,"end":39,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":27,"end":29,"cssClass":"pl-c1"},{"start":32,"end":39,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":27,"end":29,"cssClass":"pl-c1"},{"start":32,"end":39,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":27,"end":29,"cssClass":"pl-c1"},{"start":32,"end":39,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":27,"end":29,"cssClass":"pl-c1"},{"start":32,"end":39,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":27,"end":29,"cssClass":"pl-c1"},{"start":32,"end":39,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":27,"end":29,"cssClass":"pl-c1"},{"start":32,"end":39,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":27,"end":29,"cssClass":"pl-c1"},{"start":32,"end":39,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":27,"end":29,"cssClass":"pl-c1"},{"start":32,"end":39,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":27,"end":29,"cssClass":"pl-c1"},{"start":32,"end":39,"cssClass":"pl-c"}],[{"start":5,"end":23,"cssClass":"pl-c1"},{"start":25,"end":26,"cssClass":"pl-c1"},{"start":28,"end":29,"cssClass":"pl-c1"},{"start":31,"end":32,"cssClass":"pl-c1"},{"start":40,"end":49,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":37,"cssClass":"pl-c1"},{"start":40,"end":47,"cssClass":"pl-c"}],[{"start":5,"end":23,"cssClass":"pl-c1"},{"start":25,"end":26,"cssClass":"pl-c1"},{"start":28,"end":38,"cssClass":"pl-c1"},{"start":40,"end":42,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":23,"cssClass":"pl-c1"},{"start":25,"end":26,"cssClass":"pl-c1"},{"start":28,"end":29,"cssClass":"pl-c1"},{"start":31,"end":33,"cssClass":"pl-c1"},{"start":40,"end":47,"cssClass":"pl-c"}],[{"start":5,"end":23,"cssClass":"pl-c1"},{"start":25,"end":26,"cssClass":"pl-c1"},{"start":28,"end":29,"cssClass":"pl-c1"},{"start":31,"end":33,"cssClass":"pl-c1"},{"start":40,"end":47,"cssClass":"pl-c"}],[{"start":5,"end":27,"cssClass":"pl-c1"},{"start":29,"end":30,"cssClass":"pl-c1"},{"start":32,"end":33,"cssClass":"pl-c1"},{"start":35,"end":37,"cssClass":"pl-c1"},{"start":40,"end":47,"cssClass":"pl-c"}],[{"start":5,"end":27,"cssClass":"pl-c1"},{"start":29,"end":30,"cssClass":"pl-c1"},{"start":32,"end":42,"cssClass":"pl-c1"},{"start":44,"end":46,"cssClass":"pl-c1"},{"start":56,"end":63,"cssClass":"pl-c"}],[{"start":5,"end":24,"cssClass":"pl-c1"},{"start":26,"end":27,"cssClass":"pl-c1"},{"start":29,"end":30,"cssClass":"pl-c1"},{"start":32,"end":34,"cssClass":"pl-c1"},{"start":40,"end":47,"cssClass":"pl-c"}],[{"start":5,"end":23,"cssClass":"pl-c1"},{"start":25,"end":26,"cssClass":"pl-c1"},{"start":28,"end":29,"cssClass":"pl-c1"},{"start":31,"end":33,"cssClass":"pl-c1"},{"start":40,"end":47,"cssClass":"pl-c"}],[{"start":5,"end":24,"cssClass":"pl-c1"},{"start":26,"end":27,"cssClass":"pl-c1"},{"start":29,"end":39,"cssClass":"pl-c1"},{"start":41,"end":43,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-c"}],[{"start":5,"end":28,"cssClass":"pl-c1"},{"start":30,"end":31,"cssClass":"pl-c1"},{"start":33,"end":34,"cssClass":"pl-c1"},{"start":36,"end":37,"cssClass":"pl-c1"},{"start":40,"end":47,"cssClass":"pl-c"}],[{"start":5,"end":28,"cssClass":"pl-c1"},{"start":30,"end":31,"cssClass":"pl-c1"},{"start":33,"end":43,"cssClass":"pl-c1"},{"start":45,"end":46,"cssClass":"pl-c1"},{"start":56,"end":63,"cssClass":"pl-c"}],[{"start":5,"end":19,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-c1"},{"start":36,"end":37,"cssClass":"pl-c1"},{"start":40,"end":47,"cssClass":"pl-c"}],[],[],[],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":68,"cssClass":"pl-c"}],[{"start":0,"end":67,"cssClass":"pl-c"}],[{"start":0,"end":14,"cssClass":"pl-c"}],[{"start":0,"end":0,"cssClass":"pl-c"}],[{"start":0,"end":68,"cssClass":"pl-c"}],[{"start":0,"end":22,"cssClass":"pl-c"}],[{"start":0,"end":0,"cssClass":"pl-c"}],[{"start":0,"end":52,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":3,"cssClass":"pl-smi"}],[{"start":0,"end":10,"cssClass":"pl-en"},{"start":11,"end":21,"cssClass":"pl-smi"},{"start":22,"end":25,"cssClass":"pl-s1"}],[],[{"start":4,"end":7,"cssClass":"pl-smi"},{"start":8,"end":9,"cssClass":"pl-s1"},{"start":11,"end":16,"cssClass":"pl-s1"},{"start":17,"end":18,"cssClass":"pl-c1"},{"start":19,"end":21,"cssClass":"pl-c1"}],[{"start":4,"end":7,"cssClass":"pl-k"},{"start":9,"end":10,"cssClass":"pl-s1"},{"start":11,"end":12,"cssClass":"pl-c1"},{"start":13,"end":14,"cssClass":"pl-c1"},{"start":16,"end":17,"cssClass":"pl-s1"},{"start":18,"end":19,"cssClass":"pl-c1"},{"start":20,"end":30,"cssClass":"pl-c1"},{"start":32,"end":33,"cssClass":"pl-s1"},{"start":33,"end":35,"cssClass":"pl-c1"}],[{"start":8,"end":19,"cssClass":"pl-smi"},{"start":20,"end":27,"cssClass":"pl-s1"},{"start":28,"end":29,"cssClass":"pl-c1"},{"start":30,"end":33,"cssClass":"pl-s1"},{"start":34,"end":35,"cssClass":"pl-s1"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":15,"cssClass":"pl-s1"},{"start":16,"end":24,"cssClass":"pl-c1"},{"start":25,"end":27,"cssClass":"pl-c1"},{"start":28,"end":35,"cssClass":"pl-s1"},{"start":36,"end":44,"cssClass":"pl-c1"}],[{"start":12,"end":82,"cssClass":"pl-c"}],[{"start":0,"end":76,"cssClass":"pl-c"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":17,"end":24,"cssClass":"pl-s1"},{"start":25,"end":37,"cssClass":"pl-c1"},{"start":38,"end":40,"cssClass":"pl-c1"},{"start":41,"end":44,"cssClass":"pl-s1"},{"start":45,"end":48,"cssClass":"pl-c1"},{"start":49,"end":51,"cssClass":"pl-c1"},{"start":52,"end":53,"cssClass":"pl-c1"}],[{"start":16,"end":18,"cssClass":"pl-c1"},{"start":20,"end":23,"cssClass":"pl-s1"},{"start":24,"end":27,"cssClass":"pl-c1"},{"start":28,"end":29,"cssClass":"pl-c1"},{"start":30,"end":37,"cssClass":"pl-s1"},{"start":38,"end":41,"cssClass":"pl-c1"}],[{"start":16,"end":21,"cssClass":"pl-s1"},{"start":22,"end":23,"cssClass":"pl-c1"},{"start":24,"end":31,"cssClass":"pl-s1"},{"start":32,"end":37,"cssClass":"pl-c1"}],[{"start":16,"end":21,"cssClass":"pl-k"}],[],[],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":16,"cssClass":"pl-s1"}],[],[],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":72,"cssClass":"pl-c"}],[{"start":0,"end":53,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":4,"cssClass":"pl-smi"}],[{"start":0,"end":24,"cssClass":"pl-en"},{"start":25,"end":28,"cssClass":"pl-smi"},{"start":29,"end":30,"cssClass":"pl-s1"},{"start":32,"end":35,"cssClass":"pl-smi"},{"start":36,"end":37,"cssClass":"pl-c1"},{"start":37,"end":38,"cssClass":"pl-s1"},{"start":40,"end":43,"cssClass":"pl-smi"},{"start":44,"end":45,"cssClass":"pl-c1"},{"start":45,"end":46,"cssClass":"pl-s1"}],[],[{"start":4,"end":7,"cssClass":"pl-smi"},{"start":8,"end":15,"cssClass":"pl-s1"},{"start":17,"end":24,"cssClass":"pl-s1"}],[{"start":4,"end":28,"cssClass":"pl-en"},{"start":29,"end":37,"cssClass":"pl-s1"},{"start":39,"end":40,"cssClass":"pl-c1"},{"start":40,"end":47,"cssClass":"pl-s1"},{"start":49,"end":50,"cssClass":"pl-c1"},{"start":50,"end":57,"cssClass":"pl-s1"}],[],[{"start":4,"end":7,"cssClass":"pl-smi"},{"start":8,"end":17,"cssClass":"pl-s1"},{"start":18,"end":19,"cssClass":"pl-c1"},{"start":20,"end":22,"cssClass":"pl-c1"},{"start":32,"end":84,"cssClass":"pl-c"}],[{"start":4,"end":7,"cssClass":"pl-smi"},{"start":8,"end":17,"cssClass":"pl-s1"},{"start":18,"end":19,"cssClass":"pl-c1"},{"start":20,"end":22,"cssClass":"pl-c1"},{"start":32,"end":68,"cssClass":"pl-c"}],[{"start":4,"end":89,"cssClass":"pl-c"}],[{"start":4,"end":7,"cssClass":"pl-smi"},{"start":8,"end":19,"cssClass":"pl-s1"},{"start":20,"end":21,"cssClass":"pl-c1"},{"start":23,"end":30,"cssClass":"pl-s1"},{"start":31,"end":32,"cssClass":"pl-c1"},{"start":33,"end":34,"cssClass":"pl-c1"},{"start":35,"end":36,"cssClass":"pl-c1"},{"start":37,"end":46,"cssClass":"pl-s1"},{"start":50,"end":67,"cssClass":"pl-c1"}],[{"start":4,"end":7,"cssClass":"pl-smi"},{"start":8,"end":23,"cssClass":"pl-s1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":26,"end":27,"cssClass":"pl-c1"},{"start":32,"end":62,"cssClass":"pl-c"}],[{"start":4,"end":5,"cssClass":"pl-c1"},{"start":5,"end":6,"cssClass":"pl-s1"},{"start":7,"end":8,"cssClass":"pl-c1"},{"start":10,"end":11,"cssClass":"pl-s1"},{"start":14,"end":25,"cssClass":"pl-s1"},{"start":27,"end":28,"cssClass":"pl-c1"},{"start":29,"end":46,"cssClass":"pl-c1"},{"start":47,"end":48,"cssClass":"pl-c1"},{"start":49,"end":58,"cssClass":"pl-s1"}],[{"start":4,"end":5,"cssClass":"pl-c1"},{"start":5,"end":6,"cssClass":"pl-s1"},{"start":7,"end":8,"cssClass":"pl-c1"},{"start":10,"end":11,"cssClass":"pl-s1"},{"start":14,"end":25,"cssClass":"pl-s1"},{"start":27,"end":28,"cssClass":"pl-c1"},{"start":30,"end":47,"cssClass":"pl-c1"},{"start":48,"end":49,"cssClass":"pl-c1"},{"start":50,"end":65,"cssClass":"pl-s1"},{"start":67,"end":68,"cssClass":"pl-c1"}],[{"start":8,"end":17,"cssClass":"pl-s1"}],[],[],[{"start":0,"end":4,"cssClass":"pl-smi"}],[{"start":0,"end":9,"cssClass":"pl-en"},{"start":10,"end":13,"cssClass":"pl-smi"},{"start":14,"end":19,"cssClass":"pl-s1"}],[],[{"start":4,"end":7,"cssClass":"pl-smi"},{"start":8,"end":9,"cssClass":"pl-s1"},{"start":11,"end":12,"cssClass":"pl-s1"}],[{"start":4,"end":28,"cssClass":"pl-en"},{"start":29,"end":37,"cssClass":"pl-s1"},{"start":39,"end":40,"cssClass":"pl-c1"},{"start":40,"end":41,"cssClass":"pl-s1"},{"start":43,"end":44,"cssClass":"pl-c1"},{"start":44,"end":45,"cssClass":"pl-s1"}],[{"start":4,"end":12,"cssClass":"pl-smi"},{"start":13,"end":20,"cssClass":"pl-s1"},{"start":21,"end":22,"cssClass":"pl-c1"}],[{"start":10,"end":26,"cssClass":"pl-c1"},{"start":27,"end":28,"cssClass":"pl-c1"},{"start":29,"end":34,"cssClass":"pl-s1"},{"start":36,"end":37,"cssClass":"pl-c1"},{"start":39,"end":55,"cssClass":"pl-c1"},{"start":57,"end":73,"cssClass":"pl-c1"}],[{"start":4,"end":12,"cssClass":"pl-smi"},{"start":13,"end":20,"cssClass":"pl-s1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":25,"end":26,"cssClass":"pl-s1"},{"start":28,"end":29,"cssClass":"pl-s1"},{"start":31,"end":48,"cssClass":"pl-c1"},{"start":50,"end":67,"cssClass":"pl-c1"}],[{"start":4,"end":13,"cssClass":"pl-en"},{"start":14,"end":15,"cssClass":"pl-s1"},{"start":17,"end":18,"cssClass":"pl-s1"}],[{"start":4,"end":18,"cssClass":"pl-en"},{"start":19,"end":27,"cssClass":"pl-s1"},{"start":29,"end":36,"cssClass":"pl-s1"},{"start":38,"end":39,"cssClass":"pl-c1"},{"start":39,"end":46,"cssClass":"pl-s1"},{"start":48,"end":49,"cssClass":"pl-c1"},{"start":49,"end":56,"cssClass":"pl-s1"}],[],[],[{"start":0,"end":68,"cssClass":"pl-c"}],[{"start":0,"end":4,"cssClass":"pl-smi"}],[{"start":0,"end":10,"cssClass":"pl-en"},{"start":11,"end":15,"cssClass":"pl-smi"}],[],[{"start":4,"end":13,"cssClass":"pl-en"},{"start":14,"end":16,"cssClass":"pl-c1"},{"start":32,"end":78,"cssClass":"pl-c"}],[],[],[{"start":0,"end":61,"cssClass":"pl-c"}],[{"start":0,"end":31,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":4,"cssClass":"pl-smi"}],[{"start":0,"end":9,"cssClass":"pl-en"},{"start":10,"end":13,"cssClass":"pl-smi"},{"start":14,"end":15,"cssClass":"pl-s1"},{"start":17,"end":20,"cssClass":"pl-smi"},{"start":21,"end":22,"cssClass":"pl-s1"}],[],[{"start":4,"end":12,"cssClass":"pl-smi"},{"start":13,"end":17,"cssClass":"pl-s1"},{"start":18,"end":19,"cssClass":"pl-c1"},{"start":22,"end":23,"cssClass":"pl-s1"},{"start":25,"end":26,"cssClass":"pl-s1"},{"start":28,"end":45,"cssClass":"pl-c1"},{"start":47,"end":64,"cssClass":"pl-c1"}],[{"start":4,"end":26,"cssClass":"pl-en"},{"start":27,"end":35,"cssClass":"pl-s1"},{"start":37,"end":45,"cssClass":"pl-s1"},{"start":46,"end":47,"cssClass":"pl-c1"},{"start":49,"end":57,"cssClass":"pl-s1"},{"start":58,"end":59,"cssClass":"pl-c1"},{"start":61,"end":69,"cssClass":"pl-s1"},{"start":70,"end":71,"cssClass":"pl-c1"},{"start":73,"end":81,"cssClass":"pl-s1"},{"start":82,"end":83,"cssClass":"pl-c1"}],[{"start":4,"end":22,"cssClass":"pl-en"},{"start":23,"end":31,"cssClass":"pl-s1"},{"start":33,"end":34,"cssClass":"pl-c1"},{"start":34,"end":38,"cssClass":"pl-s1"}],[],[],[{"start":0,"end":66,"cssClass":"pl-c"}],[{"start":0,"end":4,"cssClass":"pl-smi"}],[{"start":0,"end":9,"cssClass":"pl-en"},{"start":10,"end":14,"cssClass":"pl-smi"}],[],[{"start":4,"end":7,"cssClass":"pl-smi"},{"start":8,"end":9,"cssClass":"pl-s1"},{"start":11,"end":12,"cssClass":"pl-s1"}],[{"start":4,"end":6,"cssClass":"pl-k"},{"start":8,"end":16,"cssClass":"pl-s1"},{"start":17,"end":18,"cssClass":"pl-c1"},{"start":19,"end":20,"cssClass":"pl-c1"}],[{"start":8,"end":32,"cssClass":"pl-en"},{"start":33,"end":41,"cssClass":"pl-s1"},{"start":43,"end":44,"cssClass":"pl-c1"},{"start":44,"end":45,"cssClass":"pl-s1"},{"start":47,"end":48,"cssClass":"pl-c1"},{"start":48,"end":49,"cssClass":"pl-s1"}],[{"start":8,"end":17,"cssClass":"pl-en"},{"start":18,"end":19,"cssClass":"pl-s1"},{"start":21,"end":22,"cssClass":"pl-s1"}],[{"start":8,"end":16,"cssClass":"pl-s1"},{"start":16,"end":18,"cssClass":"pl-c1"}],[{"start":8,"end":32,"cssClass":"pl-en"},{"start":33,"end":41,"cssClass":"pl-s1"},{"start":43,"end":44,"cssClass":"pl-c1"},{"start":44,"end":45,"cssClass":"pl-s1"},{"start":47,"end":48,"cssClass":"pl-c1"},{"start":48,"end":49,"cssClass":"pl-s1"}],[{"start":8,"end":17,"cssClass":"pl-en"},{"start":18,"end":19,"cssClass":"pl-s1"},{"start":21,"end":22,"cssClass":"pl-s1"}],[{"start":8,"end":18,"cssClass":"pl-en"}],[],[],[],[{"start":0,"end":83,"cssClass":"pl-c"}],[{"start":0,"end":11,"cssClass":"pl-smi"},{"start":11,"end":12,"cssClass":"pl-c1"}],[{"start":0,"end":8,"cssClass":"pl-en"},{"start":9,"end":13,"cssClass":"pl-smi"}],[],[],[{"start":4,"end":15,"cssClass":"pl-smi"},{"start":16,"end":17,"cssClass":"pl-c1"},{"start":17,"end":24,"cssClass":"pl-s1"},{"start":25,"end":26,"cssClass":"pl-c1"},{"start":27,"end":38,"cssClass":"pl-en"},{"start":39,"end":59,"cssClass":"pl-s"}],[],[{"start":4,"end":6,"cssClass":"pl-k"},{"start":9,"end":16,"cssClass":"pl-s1"}],[{"start":8,"end":14,"cssClass":"pl-en"},{"start":15,"end":43,"cssClass":"pl-s"},{"start":45,"end":57,"cssClass":"pl-en"}],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":16,"cssClass":"pl-c1"}],[{"start":6,"end":10,"cssClass":"pl-k"}],[{"start":8,"end":70,"cssClass":"pl-c"}],[{"start":8,"end":23,"cssClass":"pl-en"},{"start":24,"end":31,"cssClass":"pl-s1"},{"start":33,"end":34,"cssClass":"pl-c1"},{"start":36,"end":46,"cssClass":"pl-en"},{"start":47,"end":54,"cssClass":"pl-s1"},{"start":54,"end":56,"cssClass":"pl-c1"},{"start":56,"end":62,"cssClass":"pl-c1"},{"start":64,"end":67,"cssClass":"pl-c1"},{"start":69,"end":70,"cssClass":"pl-c1"},{"start":72,"end":75,"cssClass":"pl-c1"}],[{"start":8,"end":68,"cssClass":"pl-c"}],[{"start":8,"end":11,"cssClass":"pl-smi"},{"start":12,"end":18,"cssClass":"pl-s1"},{"start":19,"end":20,"cssClass":"pl-c1"},{"start":21,"end":45,"cssClass":"pl-c1"},{"start":48,"end":76,"cssClass":"pl-c"}],[{"start":8,"end":14,"cssClass":"pl-smi"},{"start":15,"end":20,"cssClass":"pl-s1"},{"start":22,"end":27,"cssClass":"pl-s1"},{"start":29,"end":34,"cssClass":"pl-s1"},{"start":36,"end":41,"cssClass":"pl-s1"},{"start":48,"end":78,"cssClass":"pl-c"}],[{"start":8,"end":11,"cssClass":"pl-smi"},{"start":12,"end":15,"cssClass":"pl-s1"},{"start":32,"end":71,"cssClass":"pl-c"}],[{"start":8,"end":34,"cssClass":"pl-en"},{"start":35,"end":41,"cssClass":"pl-s1"},{"start":43,"end":44,"cssClass":"pl-c1"},{"start":44,"end":47,"cssClass":"pl-s1"},{"start":49,"end":50,"cssClass":"pl-c1"},{"start":50,"end":55,"cssClass":"pl-s1"},{"start":57,"end":58,"cssClass":"pl-c1"},{"start":58,"end":63,"cssClass":"pl-s1"},{"start":65,"end":66,"cssClass":"pl-c1"},{"start":66,"end":71,"cssClass":"pl-s1"}],[{"start":35,"end":36,"cssClass":"pl-c1"},{"start":36,"end":41,"cssClass":"pl-s1"}],[{"start":8,"end":19,"cssClass":"pl-smi"},{"start":20,"end":21,"cssClass":"pl-c1"},{"start":21,"end":30,"cssClass":"pl-s1"},{"start":31,"end":32,"cssClass":"pl-c1"}],[{"start":12,"end":32,"cssClass":"pl-en"},{"start":33,"end":34,"cssClass":"pl-c1"},{"start":36,"end":43,"cssClass":"pl-s1"},{"start":43,"end":45,"cssClass":"pl-c1"},{"start":45,"end":46,"cssClass":"pl-c1"},{"start":48,"end":55,"cssClass":"pl-s1"},{"start":55,"end":57,"cssClass":"pl-c1"},{"start":57,"end":58,"cssClass":"pl-c1"},{"start":60,"end":63,"cssClass":"pl-s1"},{"start":65,"end":70,"cssClass":"pl-s1"},{"start":72,"end":77,"cssClass":"pl-s1"}],[{"start":33,"end":38,"cssClass":"pl-s1"},{"start":40,"end":45,"cssClass":"pl-s1"}],[{"start":8,"end":23,"cssClass":"pl-en"},{"start":24,"end":31,"cssClass":"pl-s1"},{"start":33,"end":37,"cssClass":"pl-c1"},{"start":39,"end":48,"cssClass":"pl-s1"},{"start":50,"end":54,"cssClass":"pl-c1"}],[{"start":8,"end":32,"cssClass":"pl-c"}],[{"start":8,"end":15,"cssClass":"pl-s1"},{"start":16,"end":17,"cssClass":"pl-c1"}],[{"start":12,"end":40,"cssClass":"pl-en"},{"start":41,"end":49,"cssClass":"pl-s1"},{"start":51,"end":60,"cssClass":"pl-s1"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":19,"cssClass":"pl-s1"},{"start":20,"end":22,"cssClass":"pl-c1"},{"start":23,"end":24,"cssClass":"pl-c1"}],[{"start":12,"end":18,"cssClass":"pl-en"},{"start":19,"end":50,"cssClass":"pl-s"},{"start":52,"end":64,"cssClass":"pl-en"}],[{"start":10,"end":14,"cssClass":"pl-k"}],[{"start":12,"end":48,"cssClass":"pl-c"}],[{"start":12,"end":35,"cssClass":"pl-en"},{"start":36,"end":43,"cssClass":"pl-s1"},{"start":45,"end":64,"cssClass":"pl-c1"}],[],[{"start":8,"end":23,"cssClass":"pl-en"},{"start":24,"end":31,"cssClass":"pl-s1"}],[{"start":8,"end":23,"cssClass":"pl-en"},{"start":24,"end":33,"cssClass":"pl-s1"}],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":22,"cssClass":"pl-s1"}],[],[],[],[{"start":0,"end":3,"cssClass":"pl-smi"}],[{"start":0,"end":4,"cssClass":"pl-en"},{"start":5,"end":8,"cssClass":"pl-smi"},{"start":9,"end":13,"cssClass":"pl-s1"},{"start":15,"end":19,"cssClass":"pl-smi"},{"start":20,"end":21,"cssClass":"pl-c1"},{"start":21,"end":25,"cssClass":"pl-s1"}],[],[{"start":4,"end":7,"cssClass":"pl-smi"},{"start":8,"end":13,"cssClass":"pl-s1"},{"start":32,"end":84,"cssClass":"pl-c"}],[{"start":4,"end":14,"cssClass":"pl-smi"},{"start":15,"end":16,"cssClass":"pl-c1"},{"start":16,"end":22,"cssClass":"pl-s1"}],[{"start":4,"end":13,"cssClass":"pl-smi"},{"start":14,"end":19,"cssClass":"pl-s1"},{"start":32,"end":57,"cssClass":"pl-c"}],[{"start":4,"end":14,"cssClass":"pl-smi"},{"start":15,"end":18,"cssClass":"pl-s1"},{"start":32,"end":73,"cssClass":"pl-c"}],[{"start":4,"end":16,"cssClass":"pl-smi"},{"start":17,"end":25,"cssClass":"pl-s1"},{"start":32,"end":68,"cssClass":"pl-c"}],[{"start":4,"end":7,"cssClass":"pl-smi"},{"start":8,"end":13,"cssClass":"pl-s1"}],[{"start":4,"end":7,"cssClass":"pl-smi"},{"start":8,"end":14,"cssClass":"pl-s1"}],[],[{"start":4,"end":6,"cssClass":"pl-k"},{"start":8,"end":16,"cssClass":"pl-en"},{"start":17,"end":31,"cssClass":"pl-c1"},{"start":33,"end":34,"cssClass":"pl-c1"},{"start":35,"end":36,"cssClass":"pl-c1"}],[{"start":8,"end":14,"cssClass":"pl-en"},{"start":15,"end":43,"cssClass":"pl-s"},{"start":45,"end":57,"cssClass":"pl-en"}],[],[{"start":4,"end":23,"cssClass":"pl-c"}],[{"start":4,"end":10,"cssClass":"pl-s1"},{"start":11,"end":12,"cssClass":"pl-c1"},{"start":13,"end":29,"cssClass":"pl-en"},{"start":30,"end":52,"cssClass":"pl-s"},{"start":54,"end":55,"cssClass":"pl-c1"},{"start":57,"end":58,"cssClass":"pl-c1"},{"start":60,"end":63,"cssClass":"pl-c1"},{"start":65,"end":68,"cssClass":"pl-c1"},{"start":70,"end":94,"cssClass":"pl-c1"}],[{"start":4,"end":25,"cssClass":"pl-c"}],[{"start":4,"end":12,"cssClass":"pl-s1"},{"start":13,"end":14,"cssClass":"pl-c1"},{"start":15,"end":33,"cssClass":"pl-en"},{"start":34,"end":40,"cssClass":"pl-s1"},{"start":42,"end":44,"cssClass":"pl-c1"},{"start":46,"end":47,"cssClass":"pl-c1"}],[],[{"start":4,"end":21,"cssClass":"pl-en"},{"start":22,"end":28,"cssClass":"pl-s1"},{"start":30,"end":31,"cssClass":"pl-c1"},{"start":31,"end":36,"cssClass":"pl-s1"},{"start":38,"end":39,"cssClass":"pl-c1"},{"start":39,"end":45,"cssClass":"pl-s1"}],[{"start":4,"end":28,"cssClass":"pl-en"},{"start":29,"end":37,"cssClass":"pl-s1"},{"start":39,"end":44,"cssClass":"pl-s1"},{"start":46,"end":52,"cssClass":"pl-s1"}],[],[{"start":4,"end":26,"cssClass":"pl-c"}],[{"start":4,"end":12,"cssClass":"pl-en"}],[],[{"start":4,"end":55,"cssClass":"pl-c"}],[{"start":4,"end":26,"cssClass":"pl-en"},{"start":27,"end":35,"cssClass":"pl-s1"},{"start":37,"end":45,"cssClass":"pl-s1"},{"start":46,"end":47,"cssClass":"pl-c1"},{"start":49,"end":57,"cssClass":"pl-s1"},{"start":58,"end":59,"cssClass":"pl-c1"},{"start":61,"end":69,"cssClass":"pl-s1"},{"start":70,"end":71,"cssClass":"pl-c1"},{"start":73,"end":81,"cssClass":"pl-s1"},{"start":82,"end":83,"cssClass":"pl-c1"}],[{"start":4,"end":22,"cssClass":"pl-en"},{"start":23,"end":31,"cssClass":"pl-s1"},{"start":33,"end":37,"cssClass":"pl-c1"}],[{"start":4,"end":21,"cssClass":"pl-en"},{"start":22,"end":30,"cssClass":"pl-s1"}],[],[{"start":4,"end":7,"cssClass":"pl-smi"},{"start":8,"end":12,"cssClass":"pl-s1"},{"start":13,"end":14,"cssClass":"pl-c1"},{"start":15,"end":16,"cssClass":"pl-c1"}],[{"start":4,"end":35,"cssClass":"pl-c"}],[{"start":4,"end":9,"cssClass":"pl-k"},{"start":12,"end":16,"cssClass":"pl-s1"},{"start":17,"end":19,"cssClass":"pl-c1"},{"start":20,"end":33,"cssClass":"pl-en"},{"start":34,"end":35,"cssClass":"pl-c1"},{"start":35,"end":40,"cssClass":"pl-s1"}],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":16,"end":21,"cssClass":"pl-s1"},{"start":22,"end":26,"cssClass":"pl-c1"}],[{"start":8,"end":12,"cssClass":"pl-k"},{"start":13,"end":21,"cssClass":"pl-c1"}],[{"start":12,"end":16,"cssClass":"pl-s1"},{"start":17,"end":18,"cssClass":"pl-c1"},{"start":19,"end":20,"cssClass":"pl-c1"}],[{"start":12,"end":17,"cssClass":"pl-k"}],[{"start":8,"end":12,"cssClass":"pl-k"},{"start":13,"end":24,"cssClass":"pl-c1"}],[{"start":12,"end":17,"cssClass":"pl-s1"},{"start":18,"end":19,"cssClass":"pl-c1"},{"start":20,"end":30,"cssClass":"pl-en"},{"start":31,"end":36,"cssClass":"pl-s1"},{"start":37,"end":40,"cssClass":"pl-c1"},{"start":41,"end":47,"cssClass":"pl-c1"}],[{"start":12,"end":20,"cssClass":"pl-s1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":23,"end":28,"cssClass":"pl-s1"},{"start":29,"end":32,"cssClass":"pl-c1"},{"start":33,"end":39,"cssClass":"pl-c1"},{"start":40,"end":48,"cssClass":"pl-c1"}],[{"start":12,"end":15,"cssClass":"pl-s1"},{"start":16,"end":17,"cssClass":"pl-c1"},{"start":18,"end":23,"cssClass":"pl-s1"},{"start":24,"end":27,"cssClass":"pl-c1"},{"start":28,"end":34,"cssClass":"pl-c1"},{"start":35,"end":38,"cssClass":"pl-c1"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":24,"cssClass":"pl-s1"},{"start":25,"end":27,"cssClass":"pl-c1"},{"start":28,"end":47,"cssClass":"pl-c1"}],[{"start":16,"end":67,"cssClass":"pl-c"}],[{"start":16,"end":25,"cssClass":"pl-en"}],[{"start":16,"end":32,"cssClass":"pl-s1"},{"start":33,"end":34,"cssClass":"pl-c1"},{"start":35,"end":36,"cssClass":"pl-c1"}],[{"start":14,"end":18,"cssClass":"pl-k"},{"start":19,"end":21,"cssClass":"pl-k"},{"start":23,"end":39,"cssClass":"pl-s1"},{"start":40,"end":42,"cssClass":"pl-c1"},{"start":43,"end":51,"cssClass":"pl-s1"},{"start":52,"end":54,"cssClass":"pl-c1"},{"start":55,"end":69,"cssClass":"pl-c1"}],[{"start":23,"end":25,"cssClass":"pl-c1"},{"start":27,"end":30,"cssClass":"pl-s1"},{"start":31,"end":32,"cssClass":"pl-c1"},{"start":33,"end":43,"cssClass":"pl-c1"}],[{"start":16,"end":102,"cssClass":"pl-c"}],[{"start":16,"end":25,"cssClass":"pl-en"}],[{"start":16,"end":25,"cssClass":"pl-en"},{"start":26,"end":28,"cssClass":"pl-c1"},{"start":32,"end":58,"cssClass":"pl-c"}],[{"start":16,"end":24,"cssClass":"pl-s1"},{"start":24,"end":26,"cssClass":"pl-c1"}],[{"start":16,"end":26,"cssClass":"pl-en"}],[{"start":16,"end":32,"cssClass":"pl-s1"},{"start":33,"end":34,"cssClass":"pl-c1"},{"start":35,"end":36,"cssClass":"pl-c1"}],[{"start":14,"end":18,"cssClass":"pl-k"},{"start":19,"end":21,"cssClass":"pl-k"},{"start":23,"end":28,"cssClass":"pl-s1"},{"start":29,"end":31,"cssClass":"pl-c1"},{"start":32,"end":34,"cssClass":"pl-c1"}],[{"start":16,"end":90,"cssClass":"pl-c"}],[{"start":16,"end":25,"cssClass":"pl-en"},{"start":26,"end":31,"cssClass":"pl-s1"}],[{"start":16,"end":24,"cssClass":"pl-s1"},{"start":24,"end":26,"cssClass":"pl-c1"}],[{"start":16,"end":26,"cssClass":"pl-en"}],[{"start":16,"end":32,"cssClass":"pl-s1"},{"start":33,"end":34,"cssClass":"pl-c1"}],[{"start":21,"end":26,"cssClass":"pl-s1"},{"start":27,"end":30,"cssClass":"pl-c1"},{"start":31,"end":37,"cssClass":"pl-c1"},{"start":38,"end":46,"cssClass":"pl-c1"},{"start":47,"end":49,"cssClass":"pl-c1"},{"start":50,"end":72,"cssClass":"pl-c1"}],[{"start":21,"end":23,"cssClass":"pl-c1"},{"start":25,"end":30,"cssClass":"pl-s1"},{"start":31,"end":34,"cssClass":"pl-c1"},{"start":35,"end":41,"cssClass":"pl-c1"},{"start":42,"end":45,"cssClass":"pl-c1"},{"start":46,"end":47,"cssClass":"pl-c1"},{"start":48,"end":58,"cssClass":"pl-c1"}],[],[{"start":12,"end":46,"cssClass":"pl-c"}],[{"start":12,"end":48,"cssClass":"pl-c"}],[{"start":12,"end":29,"cssClass":"pl-en"},{"start":30,"end":38,"cssClass":"pl-s1"}],[{"start":12,"end":17,"cssClass":"pl-k"}],[{"start":8,"end":12,"cssClass":"pl-k"},{"start":13,"end":30,"cssClass":"pl-c1"}],[{"start":12,"end":68,"cssClass":"pl-c"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":37,"cssClass":"pl-en"}],[{"start":16,"end":33,"cssClass":"pl-en"}],[{"start":14,"end":18,"cssClass":"pl-k"}],[{"start":16,"end":34,"cssClass":"pl-en"}],[],[{"start":12,"end":17,"cssClass":"pl-k"}],[],[],[{"start":4,"end":11,"cssClass":"pl-en"}],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":12,"cssClass":"pl-c1"}],[],[],[{"start":0,"end":48,"cssClass":"pl-c"}],[{"start":0,"end":4,"cssClass":"pl-smi"}],[{"start":0,"end":7,"cssClass":"pl-en"},{"start":8,"end":12,"cssClass":"pl-smi"}],[],[{"start":4,"end":22,"cssClass":"pl-en"},{"start":23,"end":30,"cssClass":"pl-s1"}],[{"start":4,"end":12,"cssClass":"pl-en"}],[]],"colorizedLines":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/libsdl-org/SDL/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"keyboard.c","displayUrl":"https://github.com/libsdl-org/SDL/blame/00da0824f5a0a5ca2f8d08e4ab1d169477b973fe/Xcode-iOS/Demos/src/keyboard.c?raw=true","headerInfo":{"blobSize":"11.5 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":null,"isGitLfs":false,"onBranch":false,"shortPath":"1932ad4","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Flibsdl-org%2FSDL%2Fblame%2F00da0824f5a0a5ca2f8d08e4ab1d169477b973fe%2FXcode-iOS%2FDemos%2Fsrc%2Fkeyboard.c","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":"317","truncatedSloc":"288"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplate":null,"discussionTemplate":null,"language":"C","languageID":41,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/libsdl-org/SDL/blame/00da0824f5a0a5ca2f8d08e4ab1d169477b973fe/Xcode-iOS/Demos/src/keyboard.c","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/libsdl-org/SDL/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/libsdl-org/SDL/raw/00da0824f5a0a5ca2f8d08e4ab1d169477b973fe/Xcode-iOS/Demos/src/keyboard.c","renderImageOrRaw":false,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timed_out":false,"not_analyzed":false,"symbols":[{"name":"GLYPH_SIZE_IMAGE","kind":"macro","ident_start":124,"ident_end":140,"extent_start":116,"extent_end":206,"fully_qualified_name":"GLYPH_SIZE_IMAGE","ident_utf16":{"start":{"line_number":9,"utf16_col":8},"end":{"line_number":9,"utf16_col":24}},"extent_utf16":{"start":{"line_number":9,"utf16_col":0},"end":{"line_number":10,"utf16_col":0}}},{"name":"GLYPH_SIZE_SCREEN","kind":"macro","ident_start":214,"ident_end":231,"extent_start":206,"extent_end":296,"fully_qualified_name":"GLYPH_SIZE_SCREEN","ident_utf16":{"start":{"line_number":10,"utf16_col":8},"end":{"line_number":10,"utf16_col":25}},"extent_utf16":{"start":{"line_number":10,"utf16_col":0},"end":{"line_number":12,"utf16_col":0}}},{"name":"cleanup","kind":"function","ident_start":399,"ident_end":406,"extent_start":399,"extent_end":412,"fully_qualified_name":"cleanup","ident_utf16":{"start":{"line_number":15,"utf16_col":5},"end":{"line_number":15,"utf16_col":12}},"extent_utf16":{"start":{"line_number":15,"utf16_col":5},"end":{"line_number":15,"utf16_col":18}}},{"name":"drawBlank","kind":"function","ident_start":419,"ident_end":428,"extent_start":419,"extent_end":442,"fully_qualified_name":"drawBlank","ident_utf16":{"start":{"line_number":16,"utf16_col":5},"end":{"line_number":16,"utf16_col":14}},"extent_utf16":{"start":{"line_number":16,"utf16_col":5},"end":{"line_number":16,"utf16_col":28}}},{"name":"fontMapping","kind":"type","ident_start":1316,"ident_end":1327,"extent_start":973,"extent_end":1328,"fully_qualified_name":"fontMapping","ident_utf16":{"start":{"line_number":34,"utf16_col":2},"end":{"line_number":34,"utf16_col":13}},"extent_utf16":{"start":{"line_number":28,"utf16_col":0},"end":{"line_number":34,"utf16_col":14}}},{"name":"TABLE_SIZE","kind":"macro","ident_start":1338,"ident_end":1348,"extent_start":1330,"extent_end":1433,"fully_qualified_name":"TABLE_SIZE","ident_utf16":{"start":{"line_number":36,"utf16_col":8},"end":{"line_number":36,"utf16_col":18}},"extent_utf16":{"start":{"line_number":36,"utf16_col":0},"end":{"line_number":38,"utf16_col":0}}},{"name":"keyToIndex","kind":"function","ident_start":4761,"ident_end":4771,"extent_start":4761,"extent_end":4787,"fully_qualified_name":"keyToIndex","ident_utf16":{"start":{"line_number":109,"utf16_col":0},"end":{"line_number":109,"utf16_col":10}},"extent_utf16":{"start":{"line_number":109,"utf16_col":0},"end":{"line_number":109,"utf16_col":26}}},{"name":"getPositionForCharNumber","kind":"function","ident_start":5450,"ident_end":5474,"extent_start":5450,"extent_end":5497,"fully_qualified_name":"getPositionForCharNumber","ident_utf16":{"start":{"line_number":132,"utf16_col":0},"end":{"line_number":132,"utf16_col":24}},"extent_utf16":{"start":{"line_number":132,"utf16_col":0},"end":{"line_number":132,"utf16_col":47}}},{"name":"drawIndex","kind":"function","ident_start":6119,"ident_end":6128,"extent_start":6119,"extent_end":6139,"fully_qualified_name":"drawIndex","ident_utf16":{"start":{"line_number":148,"utf16_col":0},"end":{"line_number":148,"utf16_col":9}},"extent_utf16":{"start":{"line_number":148,"utf16_col":0},"end":{"line_number":148,"utf16_col":20}}},{"name":"drawCursor","kind":"function","ident_start":6532,"ident_end":6542,"extent_start":6532,"extent_end":6548,"fully_qualified_name":"drawCursor","ident_utf16":{"start":{"line_number":161,"utf16_col":0},"end":{"line_number":161,"utf16_col":10}},"extent_utf16":{"start":{"line_number":161,"utf16_col":0},"end":{"line_number":161,"utf16_col":16}}},{"name":"drawBlank","kind":"function","ident_start":6735,"ident_end":6744,"extent_start":6735,"extent_end":6758,"fully_qualified_name":"drawBlank","ident_utf16":{"start":{"line_number":170,"utf16_col":0},"end":{"line_number":170,"utf16_col":9}},"extent_utf16":{"start":{"line_number":170,"utf16_col":0},"end":{"line_number":170,"utf16_col":23}}},{"name":"backspace","kind":"function","ident_start":7031,"ident_end":7040,"extent_start":7031,"extent_end":7046,"fully_qualified_name":"backspace","ident_utf16":{"start":{"line_number":179,"utf16_col":0},"end":{"line_number":179,"utf16_col":9}},"extent_utf16":{"start":{"line_number":179,"utf16_col":0},"end":{"line_number":179,"utf16_col":15}}},{"name":"loadFont","kind":"function","ident_start":7389,"ident_end":7397,"extent_start":7389,"extent_end":7403,"fully_qualified_name":"loadFont","ident_utf16":{"start":{"line_number":194,"utf16_col":0},"end":{"line_number":194,"utf16_col":8}},"extent_utf16":{"start":{"line_number":194,"utf16_col":0},"end":{"line_number":194,"utf16_col":14}}},{"name":"main","kind":"function","ident_start":8825,"ident_end":8829,"extent_start":8825,"extent_end":8853,"fully_qualified_name":"main","ident_utf16":{"start":{"line_number":231,"utf16_col":0},"end":{"line_number":231,"utf16_col":4}},"extent_utf16":{"start":{"line_number":231,"utf16_col":0},"end":{"line_number":231,"utf16_col":28}}},{"name":"cleanup","kind":"function","ident_start":11754,"ident_end":11761,"extent_start":11754,"extent_end":11767,"fully_qualified_name":"cleanup","ident_utf16":{"start":{"line_number":312,"utf16_col":0},"end":{"line_number":312,"utf16_col":7}},"extent_utf16":{"start":{"line_number":312,"utf16_col":0},"end":{"line_number":312,"utf16_col":13}}}]}},"copilotInfo":null,"copilotAccessAllowed":false,"blame":{"ranges":{"1":{"start":1,"oldStart":1,"end":6,"oldEnd":6,"commitOid":"0e45984fa036fff1912c62fee3ed4f5481f3c324","reblamePath":null},"7":{"start":7,"oldStart":7,"end":8,"oldEnd":8,"commitOid":"e9ca5b28a6108a6958bf6bf03a7a8f848cd33d6f","reblamePath":"Xcode-iOS/Demos/src/keyboard.c"},"9":{"start":9,"oldStart":9,"end":134,"oldEnd":134,"commitOid":"0e45984fa036fff1912c62fee3ed4f5481f3c324","reblamePath":null},"135":{"start":135,"oldStart":135,"end":137,"oldEnd":137,"commitOid":"a8b033d7c42ba200989a0a018ac6fdac0635cedb","reblamePath":"Xcode-iOS/Demos/src/keyboard.c"},"138":{"start":138,"oldStart":135,"end":140,"oldEnd":137,"commitOid":"0e45984fa036fff1912c62fee3ed4f5481f3c324","reblamePath":null},"141":{"start":141,"oldStart":141,"end":141,"oldEnd":141,"commitOid":"a8b033d7c42ba200989a0a018ac6fdac0635cedb","reblamePath":"Xcode-iOS/Demos/src/keyboard.c"},"142":{"start":142,"oldStart":139,"end":238,"oldEnd":236,"commitOid":"0e45984fa036fff1912c62fee3ed4f5481f3c324","reblamePath":null},"239":{"start":239,"oldStart":239,"end":240,"oldEnd":240,"commitOid":"a8b033d7c42ba200989a0a018ac6fdac0635cedb","reblamePath":"Xcode-iOS/Demos/src/keyboard.c"},"241":{"start":241,"oldStart":237,"end":245,"oldEnd":241,"commitOid":"0e45984fa036fff1912c62fee3ed4f5481f3c324","reblamePath":null},"246":{"start":246,"oldStart":246,"end":246,"oldEnd":246,"commitOid":"a8b033d7c42ba200989a0a018ac6fdac0635cedb","reblamePath":"Xcode-iOS/Demos/src/keyboard.c"},"247":{"start":247,"oldStart":243,"end":249,"oldEnd":245,"commitOid":"0e45984fa036fff1912c62fee3ed4f5481f3c324","reblamePath":null},"250":{"start":250,"oldStart":250,"end":252,"oldEnd":252,"commitOid":"a8b033d7c42ba200989a0a018ac6fdac0635cedb","reblamePath":"Xcode-iOS/Demos/src/keyboard.c"},"253":{"start":253,"oldStart":246,"end":262,"oldEnd":255,"commitOid":"0e45984fa036fff1912c62fee3ed4f5481f3c324","reblamePath":null},"263":{"start":263,"oldStart":256,"end":263,"oldEnd":256,"commitOid":"bd60850b82ef8caa253785d085da749cb21f64ba","reblamePath":"Xcode-iOS/Demos/src/keyboard.c"},"264":{"start":264,"oldStart":257,"end":317,"oldEnd":310,"commitOid":"0e45984fa036fff1912c62fee3ed4f5481f3c324","reblamePath":null}},"commits":{"0e45984fa036fff1912c62fee3ed4f5481f3c324":{"oid":"0e45984fa036fff1912c62fee3ed4f5481f3c324","message":"Fixed crash if initialization of EGL failed but was tried again later.\n\nThe internal function SDL_EGL_LoadLibrary() did not delete and remove a mostly\nuninitialized data structure if loading the library first failed. A later try to\nuse EGL then skipped initialization and assumed it was previously successful\nbecause the data structure now already existed. This led to at least one crash\nin the internal function SDL_EGL_ChooseConfig() because a NULL pointer was\ndereferenced to make a call to eglBindAPI().","shortMessageHtmlLink":"Fixed crash if initialization of EGL failed but was tried again later.","authorAvatarUrl":"https://avatars.githubusercontent.com/u/5358527?s=80&v=4","committerName":"Philipp Wiesemann","committerEmail":"philipp.wiesemann@arcor.de","committedDate":"2015-06-21T17:33:46.000+02:00","firstParentOid":null},"e9ca5b28a6108a6958bf6bf03a7a8f848cd33d6f":{"oid":"e9ca5b28a6108a6958bf6bf03a7a8f848cd33d6f","message":"iOS: Replaced #import with #include in two demos.\n\nThis extension to C is not required here and made the demos less portable.","shortMessageHtmlLink":"iOS: Replaced #import with #include in two demos.","authorAvatarUrl":"https://avatars.githubusercontent.com/u/5358527?s=80&v=4","committerName":"Philipp Wiesemann","committerEmail":"philipp.wiesemann@arcor.de","committedDate":"2016-03-27T22:26:34.000+02:00","firstParentOid":"5fa0cbc4ba14406595e2ec03e18f0ecc6814e577"},"a8b033d7c42ba200989a0a018ac6fdac0635cedb":{"oid":"a8b033d7c42ba200989a0a018ac6fdac0635cedb","message":"Update the code for the iOS demos to handle modern devices. Fixes bug #3337","shortMessageHtmlLink":"Update the code for the iOS demos to handle modern devices. Fixes bug #…","authorAvatarUrl":"https://avatars.githubusercontent.com/u/2662?s=80&v=4","committerName":"Alex Szpakowski","committerEmail":"slime73@gmail.com","committedDate":"2016-09-25T00:23:35.000-03:00","firstParentOid":"40ecac8e602dfdd06ffc5ad6d3a6daae19bec43e"},"bd60850b82ef8caa253785d085da749cb21f64ba":{"oid":"bd60850b82ef8caa253785d085da749cb21f64ba","message":"iOS: Fixed keyboard demo ignoring quit requests and window closing.\n\nThis also fixed a warning about an unused variable.","shortMessageHtmlLink":"iOS: Fixed keyboard demo ignoring quit requests and window closing.","authorAvatarUrl":"https://avatars.githubusercontent.com/u/5358527?s=80&v=4","committerName":"Philipp Wiesemann","committerEmail":"philipp.wiesemann@arcor.de","committedDate":"2016-03-28T21:01:26.000+02:00","firstParentOid":"e9ca5b28a6108a6958bf6bf03a7a8f848cd33d6f"}},"ignoreRevs":{"path":".git-blame-ignore-revs","present":false,"timedOut":null}},"csrf_tokens":{"/libsdl-org/SDL/branches":{"post":"nWFbu4DkvHyKCLVK7x-VG5MvWuLuSE16CC-L-cdYzEvZYqx2Tiy8Z9F9dFQ3RYav8_Eswq3sRUMH0qqKXE_vwQ"},"/repos/preferences":{"post":"zeJvDEfPlcvUKesDJvReBBqjX8sNFPpjX5bMxwUVKWgkYPEywW2QYBAyd9UstW4r12vVdpgBfDrs0sShxKYM4g"}}},"title":"Blaming SDL/Xcode-iOS/Demos/src/keyboard.c at 00da0824f5a0a5ca2f8d08e4ab1d169477b973fe · libsdl-org/SDL"}