Docker编译Android6.0源码

<body style=" background: linear-gradient(45deg, rgba(2, 95, 2, 0.8), purple), url(data:image/svg+xml;base64,PHN2ZyB0PSIxNTkwMTQ3NjgwNzc2IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEyMjAgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjE4NDAiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj48cGF0aCBkPSJNOTAzLjgzMDIxMiA5NTkuNTY4NTM5YzI3LjM1NzgwMy0yMy41MjI1OTcgNTQuOTcxMjg2LTQ3LjA0NTE5NCA4Mi4zMjkwODktNzAuODIzNDcgOS40NjAxNzUtOC4xODE3NzMgMTkuNjg3MzkxLTE2LjM2MzU0NiAyOC44OTE4ODUtMjUuMDU2Njc5LTcuNDE0NzMyLTkuNDYwMTc1LTE5Ljk0MzA3MS0xNi4xMDc4NjUtMzAuNDI1OTY4LTIwLjE5ODc1Mi0yMS4yMjE0NzMtOC4xODE3NzMtNDIuNDQyOTQ2LTUuMzY5Mjg4LTYxLjg3NDY1NiA1Ljg4MDY0OS0yNS41NjgwNCAxNC44Mjk0NjMtMzYuNTYyMjk3IDM4LjM1MjA2LTM1LjUzOTU3NiA2Ny43NTUzMDYgMC4yNTU2OCAxMS41MDU2MTggMy41Nzk1MjYgMjIuNzU1NTU2IDkuNzE1ODU1IDMyLjQ3MTQxMSAxLjc4OTc2MyAzLjU3OTUyNiA0LjM0NjU2NyA2LjkwMzM3MSA2LjkwMzM3MSA5Ljk3MTUzNW0zMS43MDQzNyAyMi4yNDQxOTVjMTMuNTUxMDYxIDQuNjAyMjQ3IDI4Ljg5MTg4NSA0LjA5MDg4NiA0Mi42OTg2MjYgMS41MzQwODIgNy4xNTkwNTEtMy4wNjgxNjUgMjUuMDU2Njc5LTEwLjk5NDI1NyAzMS43MDQzNy05LjcxNTg1NWwxLjAyMjcyMiAwLjI1NTY4MSAxLjAyMjcyMSAwLjUxMTM2YzQuMDkwODg2IDIuMDQ1NDQzIDcuOTI2MDkyIDQuODU3OTI4IDkuOTcxNTM2IDguOTQ4ODE0IDQuODU3OTI4IDkuNzE1ODU1IDIuNTU2ODA0IDE5LjQzMTcxLTYuOTAzMzcxIDI0LjgwMDk5OWwtMy4wNjgxNjUgMS43ODk3NjNjLTM1LjAyODIxNSAyMC4xOTg3NTItNzIuMzU3NTUzIDE3LjM4NjI2Ny0xMDcuMzg1NzY4LTEuNTM0MDgyLTE2LjYxOTIyNi04Ljk0ODgxNC0yOS40MDMyNDYtMjIuNDk5ODc1LTM4Ljg2MzQyLTM4Ljg2MzQyMWwtMi4zMDExMjQtMy44MzUyMDZjLTIyLjQ5OTg3NS0zOS4xMTkxMDEtMTkuNDMxNzEtODAuMDI3OTY1IDUuODgwNjQ5LTExNy4xMDE2MjMgOC42OTMxMzQtMTIuNzg0MDIgMjAuMTk4NzUyLTIyLjc1NTU1NiAzMy43NDk4MTMtMzAuNDI1OTY4bDUuMTEzNjA4LTIuODEyNDg0YzMyLjk4Mjc3Mi0xOS4xNzYwMyA2OC41MjIzNDctMTcuODk3NjI4IDEwMi41Mjc4NC0xLjAyMjcyMiAxOC4xNTMzMDggOC45NDg4MTQgMzIuOTgyNzcyIDIyLjQ5OTg3NSA0My4yMDk5ODggNDAuMTQxODIzbDEuNzg5NzYzIDMuMDY4MTY1YzcuNDE0NzMyIDEyLjc4NDAyLTIuMzAxMTI0IDI0LjAzMzk1OC0xMi4wMTY5NzkgMzEuNzA0MzY5LTExLjUwNTYxOCA4Ljk0ODgxNC0yMy4wMTEyMzYgMTkuNDMxNzEtMzQuMDA1NDkzIDI5LjE0NzU2Ni0yNS4wNTY2NzkgMjAuOTY1NzkzLTQ5LjYwMTk5OCA0Mi40NDI5NDYtNzQuMTQ3MzE2IDYzLjQwODczOXogbTI2Mi44Mzk0NS0xNzcuNDQyMTk3aDMuNTc5NTI2YzEwLjk5NDI1NyAwIDE4LjQwODk4OSA3LjQxNDczMiAxOC40MDg5ODkgMTguNDA4OTg5IDAgMTUuMzQwODI0LTE0LjU3Mzc4MyAxOS4xNzYwMy0yNy4zNTc4MDMgMTkuMTc2MDMtMTYuNjE5MjI2IDAtMzIuNDcxNDExIDkuOTcxNTM2LTQzLjk3NzAyOSAyMS4yMjE0NzMtMTQuMzE4MTAyIDE0LjA2MjQyMi0yMC40NTQ0MzIgMzIuMjE1NzMtMjAuNDU0NDMyIDUxLjkwMzEyMXY4OS40ODgxNGMwIDEwLjIyNzIxNi02LjM5MjAxIDE4LjQwODk4OS0xNy4xMzA1ODYgMTguNDA4OTg4aC0yLjgxMjQ4NWMtMTAuNzM4NTc3IDAtMTcuMTMwNTg3LTguMTgxNzczLTE3LjEzMDU4Ny0xOC40MDg5ODh2LTk0LjYwMTc0OGMwLTM2LjMwNjYxNyAxNy42NDE5NDgtNjUuOTY1NTQzIDQ3LjMwMDg3NC04Ni45MzEzMzYgMTcuODk3NjI4LTEyLjAxNjk3OSAzOC4wOTYzOC0xOC42NjQ2NjkgNTkuNTczNTMzLTE4LjY2NDY2OXogbS00NjAuOTkxNzYgNjMuNjY0NDE5YzE0LjMxODEwMi0xNC4zMTgxMDIgMjguODkxODg1LTI4LjYzNjIwNSA0My40NjU2NjgtNDIuOTU0MzA3IDQuMDkwODg2LTMuODM1MjA2IDE5LjQzMTcxLTIwLjcxMDExMiAyNS41NjgwNC0yMC43MTAxMTJoNi42NDc2OWwwLjc2NzA0MiAwLjI1NTY4YzguNDM3NDUzIDEuNzg5NzYzIDE0LjgyOTQ2MyA3LjE1OTA1MSAxNC44Mjk0NjMgMTYuMTA3ODY1djMuNTc5NTI2YzAgNi4xMzYzMy03LjE1OTA1MSAxMy4yOTUzODEtMTEuMjQ5OTM4IDE3LjY0MTk0OC04LjQzNzQ1MyA4Ljk0ODgxNC0xNy4zODYyNjcgMTcuNjQxOTQ4LTI2LjA3OTQwMSAyNi41OTA3NjFMNzQ2LjU4Njc2NyA5MTMuODAxNzQ4YzE5LjE3NjAzIDE5LjE3NjAzIDM4LjM1MjA2IDM4LjYwNzc0IDU3LjUyODA4OSA1OC4wMzk0NTEgNS4zNjkyODggNS4zNjkyODggMTAuNDgyODk2IDEwLjczODU3NyAxNS44NTIxODUgMTYuMTA3ODY1IDEuNzg5NzYzIDIuMDQ1NDQzIDQuNjAyMjQ3IDQuMzQ2NTY3IDYuMTM2MzMgNi45MDMzNyAxLjUzNDA4MiAyLjU1NjgwNCAyLjU1NjgwNCA1LjM2OTI4OCAyLjU1NjgwNCA4LjQzNzQ1NHYzLjgzNTIwNmwtMC4yNTU2ODEgMC43NjcwNDFjLTIuMDQ1NDQzIDguNDM3NDUzLTcuNDE0NzMyIDE1LjM0MDgyNC0xNi44NzQ5MDYgMTUuMzQwODI0aC0zLjA2ODE2NWMtNi4xMzYzMyAwLTEzLjAzOTctNi45MDMzNzEtMTcuMTMwNTg3LTEwLjk5NDI1Ny04LjY5MzEzNC04LjE4MTc3My0xNi44NzQ5MDYtMTYuNjE5MjI2LTI1LjU2ODAzOS0yNS4wNTY2OGwtMjguMzgwNTI1LTI3Ljg2OTE2M3Y0NC40ODgzODljMCAxMC4yMjcyMTYtNi4zOTIwMSAxOC40MDg5ODktMTcuMTMwNTg3IDE4LjQwODk4OWgtMi44MTI0ODRjLTEwLjczODU3NyAwLTE3LjEzMDU4Ny04LjE4MTc3My0xNy4xMzA1ODctMTguNDA4OTg5di0yNTEuMDc4MTUyYzAtMTAuMjI3MjE2IDYuMzkyMDEtMTguNDA4OTg5IDE3LjEzMDU4Ny0xOC40MDg5ODloMi44MTI0ODRjMTAuNzM4NTc3IDAgMTcuMTMwNTg3IDguMTgxNzczIDE3LjEzMDU4NyAxOC40MDg5ODl2MTE1LjMxMTg2eiBtLTExOS45MTQxMDctMjUuMDU2Njc5Yy01LjYyNDk2OS0yLjU1NjgwNC0xNi4xMDc4NjUtMy41Nzk1MjYtMjEuOTg4NTE1LTMuODM1MjA2LTMwLjkzNzMyOC0xLjI3ODQwMi01My4xODE1MjMgMTYuMzYzNTQ2LTY2LjQ3NjkwMyA0My40NjU2NjgtNC42MDIyNDcgOS40NjAxNzUtNi42NDc2OSAxOS40MzE3MS02LjY0NzY5MSAyOS42NTg5MjYgMCAzMS43MDQzNyAxNi42MTkyMjYgNTMuOTQ4NTY0IDQ0Ljk5OTc1IDY3LjQ5OTYyNiAxMC4yMjcyMTYgNC44NTc5MjggMjMuNzc4Mjc3IDUuODgwNjQ5IDM1LjAyODIxNSA1Ljg4MDY0OSA5Ljk3MTUzNiAwIDI0LjAzMzk1OC02LjEzNjMzIDMyLjcyNzA5MS0xMC4yMjcyMTZsMS41MzQwODMtMC43NjcwNDFoNi45MDMzNzFsMC43NjcwNDEgMC4yNTU2OGM4LjQzNzQ1MyAxLjc4OTc2MyAxNC44Mjk0NjMgNy4xNTkwNTEgMTQuODI5NDYzIDE2LjEwNzg2NXYzLjU3OTUyNmMwIDIyLjQ5OTg3NS00MS4xNjQ1NDQgMjcuNjEzNDgzLTU2Ljc2MTA0OSAyOC44OTE4ODUtNTUuNDgyNjQ3IDMuODM1MjA2LTk2LjkwMjg3MS0yNi41OTA3NjItMTEyLjc1NTA1Ni03OS41MTY2MDQtMi44MTI0ODQtOS4yMDQ0OTQtNC4wOTA4ODYtMTguNDA4OTg5LTQuMDkwODg2LTI3Ljg2OTE2NHYtNy40MTQ3MzFjMC00MC4xNDE4MjMgMTkuOTQzMDcxLTcxLjg0NjE5MiA1NC4yMDQyNDQtOTIuMzAwNjI0IDE2LjEwNzg2NS05LjQ2MDE3NSAzMy43NDk4MTMtMTQuMzE4MTAyIDUyLjE1ODgwMi0xNC4zMTgxMDNoNy40MTQ3MzFjMTkuNjg3MzkxIDAgMzcuODQwNjk5IDUuNjI0OTY5IDU0LjIwNDI0NSAxNi42MTkyMjZsMS4yNzg0MDIgMS4wMjI3MjIgMC43NjcwNDEgMS4yNzg0MDJjMS43ODk3NjMgMi44MTI0ODQgMy4zMjM4NDUgNi4zOTIwMSAzLjMyMzg0NiA5LjcxNTg1NXYzLjU3OTUyNmMwIDkuNDYwMTc1LTcuMTU5MDUxIDE0LjU3Mzc4My0xNS41OTY1MDUgMTYuMTA3ODY1aC0zLjA2ODE2NWMtNS4zNjkyODggMC41MTEzNjEtMTcuODk3NjI4LTUuMTEzNjA4LTIyLjc1NTU1NS03LjQxNDczMnogbS0zMzcuNDk4MTI4IDcwLjMxMjExYzAgMjguMTI0ODQ0IDEzLjgwNjc0MiA0OC44MzQ5NTYgMzcuNTg1MDE5IDYzLjQwODczOSAxMS4yNDk5MzggNi45MDMzNzEgMjMuNTIyNTk3IDkuOTcxNTM2IDM2LjU2MjI5NyA5Ljk3MTUzNiAyNy44NjkxNjQgMCA0OC4zMjM1OTYtMTQuMDYyNDIyIDYyLjY0MTY5OC0zNy41ODUwMTkgNi45MDMzNzEtMTEuMjQ5OTM4IDkuOTcxNTM2LTIzLjUyMjU5NyA5Ljk3MTUzNi0zNi41NjIyOTcgMC0yNi4wNzk0MDEtMTIuNTI4MzQtNDYuMDIyNDcyLTM0LjAwNTQ5My02MC41OTYyNTUtMTEuNzYxMjk4LTcuOTI2MDkyLTI1LjA1NjY3OS0xMi4wMTY5NzktMzkuMTE5MTAxLTEyLjAxNjk3OS0zMC45MzczMjggMC01My4xODE1MjMgMTUuNTk2NTA0LTY2LjczMjU4NSA0My40NjU2NjgtNC44NTc5MjggOS40NjAxNzUtNi45MDMzNzEgMTkuNDMxNzEtNi45MDMzNzEgMjkuOTE0NjA3eiBtNjkuODAwNzUtMTEwLjE5ODI1Mmg1LjExMzYwOGM0Mi45NTQzMDcgMCA3NS40MjU3MTggMjAuNzEwMTEyIDk2LjEzNTgzIDU4LjI5NTEzMSA4LjE4MTc3MyAxNS4wODUxNDQgMTIuNzg0MDIgMzEuMTkzMDA5IDEyLjc4NDAyIDQ4LjMyMzU5NXY3LjQxNDczMmMwIDQwLjE0MTgyMy0xOS42ODczOTEgNzIuMTAxODczLTU0LjQ1OTkyNSA5Mi4zMDA2MjQtMTYuMTA3ODY1IDkuNDYwMTc1LTMzLjc0OTgxMyAxNC4zMTgxMDItNTIuMTU4ODAyIDE0LjMxODEwM2gtNy40MTQ3MzFjLTQwLjE0MTgyMyAwLTcyLjEwMTg3My0xOS45NDMwNzEtOTIuMzAwNjI1LTU0LjIwNDI0NS05LjQ2MDE3NS0xNi4xMDc4NjUtMTQuMzE4MTAyLTMzLjc0OTgxMy0xNC4zMTgxMDItNTIuMTU4ODAydi03LjQxNDczMWMwLTQwLjE0MTgyMyAxOS45NDMwNzEtNzEuODQ2MTkyIDU0LjIwNDI0NS05Mi4zMDA2MjQgMTYuMTA3ODY1LTkuOTcxNTM2IDMzLjc0OTgxMy0xNC41NzM3ODMgNTIuNDE0NDgyLTE0LjU3Mzc4M3ogbS0zMTEuOTMwMDg4IDExMC4xOTgyNTJjMCAyOC44OTE4ODUgMTQuMDYyNDIyIDUwLjYyNDcxOSAzOS4zNzQ3ODIgNjQuNjg3MTQxIDEwLjIyNzIxNiA1LjYyNDk2OSAyMS40NzcxNTQgOC42OTMxMzQgMzMuMjM4NDUyIDguNjkzMTM0IDI4LjM4MDUyNCAwIDQ5LjYwMTk5OC0xMy4yOTUzODEgNjQuMTc1NzgtMzcuNTg1MDE5IDYuNjQ3NjktMTEuMjQ5OTM4IDkuOTcxNTM2LTIzLjUyMjU5NyA5Ljk3MTUzNS0zNi41NjIyOTcgMC0yNS4wNTY2NzktMTIuMDE2OTc5LTQ0Ljc0NDA3LTMyLjIxNTczLTU5LjMxNzg1My0xMi4yNzI2NTktOC45NDg4MTQtMjYuMDc5NDAxLTEzLjI5NTM4MS00MS4xNjQ1NDQtMTMuMjk1MzgxLTMwLjkzNzMyOCAwLTUzLjE4MTUyMyAxNS41OTY1MDQtNjYuNzMyNTg0IDQzLjQ2NTY2OC00LjYwMjI0NyA5LjQ2MDE3NS02LjY0NzY5IDE5LjQzMTcxLTYuNjQ3NjkxIDI5LjkxNDYwN3ogbTE0Ni41MDQ4NjktODIuNTg0NzY5di03OC4yMzgyMDJjMC0xMC4yMjcyMTYgNi4zOTIwMS0xOC40MDg5ODkgMTcuMTMwNTg3LTE4LjQwODk4OUgyMDQuNTQ0MzJjMTAuNzM4NTc3IDAgMTcuMTMwNTg3IDguMTgxNzczIDE3LjEzMDU4NiAxOC40MDg5ODl2MTY0LjQwMjQ5N2MwIDQwLjE0MTgyMy0xOS45NDMwNzEgNzIuMTAxODczLTU0LjQ1OTkyNSA5Mi4zMDA2MjQtMTYuMTA3ODY1IDkuNDYwMTc1LTMzLjc0OTgxMyAxNC4zMTgxMDItNTIuMTU4ODAxIDE0LjMxODEwMmgtNy42NzA0MTJjLTQwLjE0MTgyMyAwLTcyLjEwMTg3My0xOS45NDMwNzEtOTIuMzAwNjI0LTU0LjIwNDI0NC05LjQ2MDE3NS0xNi4xMDc4NjUtMTQuMzE4MTAyLTMzLjc0OTgxMy0xNC4zMTgxMDMtNTIuMTU4ODAydi03LjQxNDczMmMwLTQwLjE0MTgyMyAxOS45NDMwNzEtNzIuMTAxODczIDU0LjIwNDI0NS05Mi4zMDA2MjQgMTYuMTA3ODY1LTkuNDYwMTc1IDMzLjc0OTgxMy0xNC4zMTgxMDIgNTIuMTU4ODAxLTE0LjMxODEwMmg3LjQxNDczMmMyNy4zNTc4MDMgMCA1MC4zNjkwMzkgMTAuNDgyODk2IDY5LjgwMDc0OSAyNy42MTM0ODN6TTcwNC4xNDM4MiAyMTguMzUxMDYxaDEwOS4xNzU1MzFWMzI5LjgyNzcxNWg1NS4yMjY5NjZjMjUuNTY4MDQgMCA1MS42NDc0NDEtNC42MDIyNDcgNzUuOTM3MDc5LTEyLjc4NDAyIDExLjc2MTI5OC00LjA5MDg4NiAyNS4wNTY2NzktOS43MTU4NTUgMzYuODE3OTc3LTE2LjYxOTIyNi0xNS4zNDA4MjQtMjAuMTk4NzUyLTIzLjI2NjkxNi00NS41MTExMTEtMjUuNTY4MDQtNzAuNTY3NzktMy4wNjgxNjUtMzQuMDA1NDkzIDMuODM1MjA2LTc4LjQ5Mzg4MyAyNi44NDY0NDItMTA1LjA4NDY0NGwxMS41MDU2MTgtMTMuMjk1MzgxIDEzLjU1MTA2MSAxMC45OTQyNTdjMzQuNTE2ODU0IDI3LjYxMzQ4MyA2My40MDg3MzkgNjYuMjIxMjIzIDY4LjUyMjM0NyAxMTAuNDUzOTMzIDQxLjQyMDIyNS0xMi4yNzI2NTkgODkuOTk5NTAxLTkuMjA0NDk0IDEyNi41NjE3OTggMTEuNzYxMjk4bDE1LjA4NTE0NCA4LjY5MzEzNC03LjkyNjA5MyAxNS4zNDA4MjRjLTMwLjkzNzMyOCA2MC4zNDA1NzQtOTUuNjI0NDY5IDc5LjAwNTI0My0xNTguNzc3NTI4IDc1LjY4MTM5OC05NC42MDE3NDggMjM1LjQ4MTY0OC0zMDAuMTY4Nzg5IDM0Ni45NTgzMDItNTQ5LjcxMjg1OSAzNDYuOTU4MzAyLTEyOC44NjI5MjEgMC0yNDcuMjQyOTQ2LTQ4LjA2NzkxNS0zMTQuNDg2ODkxLTE2Mi42MTI3MzRsLTEuMDIyNzIyLTEuNzg5NzYzLTkuNzE1ODU1LTE5Ljk0MzA3MUMxNTMuNDA4MjQgNDU2LjY0NTE5NCAxNDUuNzM3ODI4IDQwMS40MTgyMjcgMTUwLjg1MTQzNiAzNDYuNDQ2OTQxbDEuNTM0MDgyLTE2LjYxOTIyNmg5My4zMjMzNDZWMjE4LjM1MTA2MWgxMDkuMTc1NTMxVjEwOS4xNzU1MzFoMjE4LjM1MTA2MVYwaDEzMC45MDgzNjR2MjE4LjM1MTA2MXoiIGZpbGw9IiMzOTRENTQiIHAtaWQ9IjE4NDEiPjwvcGF0aD48cGF0aCBkPSJNMTA1Ny43NDk4MTMgMjU5LjUxNTYwNWM3LjQxNDczMi01Ni43NjEwNDktMzUuMjgzODk1LTEwMS41MDUxMTktNjEuNjE4OTc3LTEyMi43MjY1OTEtMzAuNDI1OTY4IDM1LjI4Mzg5NS0zNS4wMjgyMTUgMTI3LjMyODgzOSAxMi41MjgzNCAxNjYuMTkyMjU5LTI2LjU5MDc2MiAyMy43NzgyNzctODIuODQwNDQ5IDQ0Ljk5OTc1LTE0MC4xMTI4NTkgNDQuOTk5NzUxSDE2OC43NDkwNjRjLTUuNjI0OTY5IDYwLjA4NDg5NCA0Ljg1NzkyOCAxMTUuMzExODYgMjguODkxODg1IDE2Mi42MTI3MzRsNy45MjYwOTIgMTQuNTczNzgzYzUuMTEzNjA4IDguNDM3NDUzIDEwLjQ4Mjg5NiAxNi44NzQ5MDYgMTYuNjE5MjI2IDI0LjgwMDk5OCAyOC42MzYyMDUgMS43ODk3NjMgNTUuMjI2OTY2IDIuNTU2ODA0IDc5LjUxNjYwNCAyLjA0NTQ0NCA0Ny41NTY1NTQtMS4wMjI3MjIgODYuNjc1NjU1LTYuNjQ3NjkgMTE2LjA3ODkwMi0xNi44NzQ5MDcgNC4zNDY1NjctMS41MzQwODIgOS4yMDQ0OTQgMC43NjcwNDEgMTAuNzM4NTc3IDUuMTEzNjA4IDEuNTM0MDgyIDQuMzQ2NTY3LTAuNzY3MDQxIDkuMjA0NDk0LTUuMTEzNjA4IDEwLjczODU3Ny0zLjgzNTIwNiAxLjI3ODQwMi03LjkyNjA5MiAyLjU1NjgwNC0xMi4yNzI2NiAzLjgzNTIwNi0yMy4yNjY5MTYgNi42NDc2OS00OC4wNjc5MTUgMTAuOTk0MjU3LTgwLjI4MzY0NSAxMy4wMzk3IDEuNzg5NzYzIDAtMi4wNDU0NDMgMC4yNTU2OC0yLjA0NTQ0MyAwLjI1NTY4MS0xLjAyMjcyMiAwLTIuNTU2ODA0IDAuMjU1NjgtMy41Nzk1MjYgMC4yNTU2OC0xMi41MjgzNCAwLjc2NzA0MS0yNi4zMzUwODEgMC43NjcwNDEtNDAuMTQxODIzIDAuNzY3MDQxLTE1LjM0MDgyNCAwLTMwLjE3MDI4Ny0wLjI1NTY4LTQ3LjA0NTE5My0xLjAyMjcyMWwtMC41MTEzNjEgMC4yNTU2OGM1OC4yOTUxMzEgNjUuNDU0MTgyIDE0OS4zMTczNTMgMTA0LjgyODk2NCAyNjMuNjA2NDkyIDEwNC44Mjg5NjQgMjQxLjg3MzY1OCAwIDQ0Ni45MjkzMzgtMTA3LjEzMDA4NyA1MzcuNjk1ODgtMzQ3LjcyNTM0MyA2NC40MzE0NjEgNi42NDc2OSAxMjYuMzA2MTE3LTkuNzE1ODU1IDE1NC40MzA5NjEtNjQuNjg3MTQyLTQ0LjQ4ODM5LTI2LjA3OTQwMS0xMDIuMjcyMTYtMTcuODk3NjI4LTEzNS41MTA2MTEtMS4yNzg0MDJ6IiBmaWxsPSIjMDBBQURBIiBwLWlkPSIxODQyIj48L3BhdGg+PHBhdGggZD0iTTEwNTcuNzQ5ODEzIDI1OS41MTU2MDVjNy40MTQ3MzItNTYuNzYxMDQ5LTM1LjI4Mzg5NS0xMDEuNTA1MTE5LTYxLjYxODk3Ny0xMjIuNzI2NTkxLTMwLjQyNTk2OCAzNS4yODM4OTUtMzUuMDI4MjE1IDEyNy4zMjg4MzkgMTIuNTI4MzQgMTY2LjE5MjI1OS0yNi41OTA3NjIgMjMuNzc4Mjc3LTgyLjg0MDQ0OSA0NC45OTk3NS0xNDAuMTEyODU5IDQ0Ljk5OTc1MUgyMTAuMTY5Mjg4Yy0yLjgxMjQ4NCA5MS43ODkyNjMgMzEuMTkzMDA5IDE2MS41OTAwMTIgOTEuNTMzNTgzIDIwMy43NzcyNzggNDcuNTU2NTU0LTEuMDIyNzIyIDg2LjY3NTY1NS02LjY0NzY5IDExNi4wNzg5MDItMTYuODc0OTA2IDQuMzQ2NTY3LTEuNTM0MDgyIDkuMjA0NDk0IDAuNzY3MDQxIDEwLjczODU3NyA1LjExMzYwOCAxLjUzNDA4MiA0LjM0NjU2Ny0wLjc2NzA0MSA5LjIwNDQ5NC01LjExMzYwOCAxMC43Mzg1NzctMy44MzUyMDYgMS4yNzg0MDItNy45MjYwOTIgMi41NTY4MDQtMTIuMjcyNjYgMy44MzUyMDYtMjMuMjY2OTE2IDYuNjQ3NjktNTAuMzY5MDM5IDExLjc2MTI5OC04Mi4zMjkwODggMTMuNTUxMDYxbC0wLjc2NzA0MS0wLjc2NzA0MmM4Mi4zMjkwODkgNDIuMTg3MjY2IDIwMS43MzE4MzUgNDIuMTg3MjY2IDMzOC41MjA4NDgtMTAuNDgyODk2IDE1My40MDgyNC01OC44MDY0OTIgMjk2LjA3NzkwMy0xNzEuMzA1ODY4IDM5NS43OTMyNTktMjk5LjY1NzQyOC0xLjc4OTc2MyAxLjAyMjcyMi0zLjA2ODE2NSAxLjc4OTc2My00LjYwMjI0NyAyLjMwMTEyM3oiIGZpbGw9IiMyNEI4RUIiIHAtaWQ9IjE4NDMiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjI4MzE0NiA0MjEuMTA1NjE4YzQuMzQ2NTY3IDMyLjIxNTczIDEzLjgwNjc0MiA2Mi4xMzAzMzcgMjcuNjEzNDgzIDg5Ljc0MzgybDcuOTI2MDkzIDE0LjU3Mzc4M2M1LjExMzYwOCA4LjQzNzQ1MyAxMC40ODI4OTYgMTYuODc0OTA2IDE2LjYxOTIyNiAyNC44MDA5OTkgMjguODkxODg1IDEuNzg5NzYzIDU1LjIyNjk2NiAyLjU1NjgwNCA3OS41MTY2MDQgMi4wNDU0NDMgNDcuNTU2NTU0LTEuMDIyNzIyIDg2LjY3NTY1NS02LjY0NzY5IDExNi4wNzg5MDEtMTYuODc0OTA2IDQuMzQ2NTY3LTEuNTM0MDgyIDkuMjA0NDk0IDAuNzY3MDQxIDEwLjczODU3NyA1LjExMzYwOCAxLjUzNDA4MiA0LjM0NjU2Ny0wLjc2NzA0MSA5LjIwNDQ5NC01LjExMzYwOCAxMC43Mzg1NzYtMy44MzUyMDYgMS4yNzg0MDItNy45MjYwOTIgMi41NTY4MDQtMTIuMjcyNjU5IDMuODM1MjA2LTIzLjI2NjkxNiA2LjY0NzY5LTUwLjExMzM1OCAxMS4yNDk5MzgtODIuMzI5MDg5IDEzLjI5NTM4MS0xLjAyMjcyMiAwLTMuMDY4MTY1IDAtNC4wOTA4ODYgMC4yNTU2OC0xMi41MjgzNCAwLjc2NzA0MS0yNi4wNzk0MDEgMS4wMjI3MjItNDAuMTQxODIzIDEuMDIyNzIyLTE1LjM0MDgyNCAwLTMwLjkzNzMyOC0wLjI1NTY4LTQ3LjU1NjU1NC0xLjAyMjcyMiA1OC4yOTUxMzEgNjUuNDU0MTgyIDE1MC4wODQzOTUgMTA0LjgyODk2NCAyNjQuMzczNTMzIDEwNC44Mjg5NjQgMjA3LjEwMTEyNCAwIDM4Ny4xMDAxMjUtNzguNDkzODgzIDQ5MS42NzM0MDgtMjUyLjEwMDg3NEgxNzAuMjgzMTQ2eiIgZmlsbD0iIzAwOEJCOCIgcC1pZD0iMTg0NCI+PC9wYXRoPjxwYXRoIGQ9Ik0yMTYuNTYxMjk4IDQyMS4xMDU2MThjMTIuMjcyNjU5IDU2LjUwNTM2OCA0Mi4xODcyNjYgMTAwLjczODA3NyA4NS4zOTcyNTQgMTMwLjkwODM2NSA0Ny41NTY1NTQtMS4wMjI3MjIgODYuNjc1NjU1LTYuNjQ3NjkgMTE2LjA3ODkwMS0xNi44NzQ5MDcgNC4zNDY1NjctMS41MzQwODIgOS4yMDQ0OTQgMC43NjcwNDEgMTAuNzM4NTc3IDUuMTEzNjA4IDEuNTM0MDgyIDQuMzQ2NTY3LTAuNzY3MDQxIDkuMjA0NDk0LTUuMTEzNjA4IDEwLjczODU3Ny0zLjgzNTIwNiAxLjI3ODQwMi03LjkyNjA5MiAyLjU1NjgwNC0xMi4yNzI2NTkgMy44MzUyMDYtMjMuMjY2OTE2IDYuNjQ3NjktNTAuNjI0NzE5IDExLjI0OTkzOC04Mi44NDA0NSAxMy4yOTUzODEgODIuMzI5MDg5IDQyLjE4NzI2NiAyMDEuMjIwNDc0IDQxLjY3NTkwNSAzMzguMDA5NDg4LTEwLjk5NDI1NyA4Mi44NDA0NDktMzEuNzA0MzcgMTYyLjM1NzA1NC03OS4wMDUyNDMgMjMzLjk0NzU2Ni0xMzYuMDIxOTczSDIxNi41NjEyOTh6IiBmaWxsPSIjMDM5QkM2IiBwLWlkPSIxODQ1Ij48L3BhdGg+PHBhdGggZD0iTTM0My4xMjMwOTYgMjQ0LjQzMDQ2Mmg3LjQxNDczMnY3OC43NDk1NjNoLTcuNDE0NzMyVjI0NC40MzA0NjJ6IG0tMTQuMzE4MTAyIDBoNy42NzA0MTJ2NzguNzQ5NTYzaC03LjY3MDQxMlYyNDQuNDMwNDYyeiBtLTE0LjMxODEwMyAwaDcuNjcwNDEydjc4Ljc0OTU2M2gtNy42NzA0MTJWMjQ0LjQzMDQ2MnogbS0xNC4zMTgxMDIgMGg3LjY3MDQxMnY3OC43NDk1NjNoLTcuNjcwNDEyVjI0NC40MzA0NjJ6IG0tMTQuMzE4MTAyIDBoNy42NzA0MTJ2NzguNzQ5NTYzaC03LjY3MDQxMlYyNDQuNDMwNDYyeiBtLTE0LjA2MjQyMiAwaDcuNDE0NzMxdjc4Ljc0OTU2M2gtNy40MTQ3MzFWMjQ0LjQzMDQ2MnogbS03LjkyNjA5My03LjkyNjA5Mmg5NC42MDE3NDh2OTQuNjAxNzQ3aC05NC42MDE3NDh2LTk0LjYwMTc0N3pNNDUyLjI5ODYyNyAxMzUuMjU0OTMxaDcuNDE0NzMxdjc4Ljc0OTU2M2gtNy40MTQ3MzFWMTM1LjI1NDkzMXogbS0xNC4zMTgxMDMgMGg3LjY3MDQxMnY3OC43NDk1NjNoLTcuNjcwNDEyVjEzNS4yNTQ5MzF6IG0tMTQuMzE4MTAyIDBoNy42NzA0MTJ2NzguNzQ5NTYzaC03LjY3MDQxMlYxMzUuMjU0OTMxeiBtLTE0LjMxODEwMiAwaDcuNjcwNDEydjc4Ljc0OTU2M2gtNy42NzA0MTJWMTM1LjI1NDkzMXogbS0xNC4zMTgxMDMgMGg3LjY3MDQxMnY3OC43NDk1NjNoLTcuNjcwNDEyVjEzNS4yNTQ5MzF6IG0tMTQuMDYyNDIyIDBoNy40MTQ3MzJ2NzguNzQ5NTYzSDM4MC45NjM3OTVWMTM1LjI1NDkzMXogbS03LjkyNjA5Mi03LjkyNjA5Mmg5NC42MDE3NDh2OTQuNjAxNzQ4aC05NC42MDE3NDh2LTk0LjYwMTc0OHoiIGZpbGw9IiMwMEFDRDMiIHAtaWQ9IjE4NDYiPjwvcGF0aD48cGF0aCBkPSJNNDUyLjI5ODYyNyAyNDQuNDMwNDYyaDcuNDE0NzMxdjc4Ljc0OTU2M2gtNy40MTQ3MzFWMjQ0LjQzMDQ2MnogbS0xNC4zMTgxMDMgMGg3LjY3MDQxMnY3OC43NDk1NjNoLTcuNjcwNDEyVjI0NC40MzA0NjJ6IG0tMTQuMzE4MTAyIDBoNy42NzA0MTJ2NzguNzQ5NTYzaC03LjY3MDQxMlYyNDQuNDMwNDYyeiBtLTE0LjMxODEwMiAwaDcuNjcwNDEydjc4Ljc0OTU2M2gtNy42NzA0MTJWMjQ0LjQzMDQ2MnogbS0xNC4zMTgxMDMgMGg3LjY3MDQxMnY3OC43NDk1NjNoLTcuNjcwNDEyVjI0NC40MzA0NjJ6IG0tMTQuMDYyNDIyIDBoNy40MTQ3MzJ2NzguNzQ5NTYzSDM4MC45NjM3OTVWMjQ0LjQzMDQ2MnogbS03LjkyNjA5Mi03LjkyNjA5Mmg5NC42MDE3NDh2OTQuNjAxNzQ3aC05NC42MDE3NDh2LTk0LjYwMTc0N3oiIGZpbGw9IiMyMEMyRUYiIHAtaWQ9IjE4NDciPjwvcGF0aD48cGF0aCBkPSJNNTYxLjQ3NDE1NyAyNDQuNDMwNDYyaDcuNDE0NzMydjc4Ljc0OTU2M2gtNy40MTQ3MzJWMjQ0LjQzMDQ2MnogbS0xNC4zMTgxMDIgMGg3LjY3MDQxMnY3OC43NDk1NjNoLTcuNjcwNDEyVjI0NC40MzA0NjJ6IG0tMTQuMzE4MTAyIDBoNy42NzA0MTJ2NzguNzQ5NTYzaC03LjY3MDQxMlYyNDQuNDMwNDYyeiBtLTE0LjMxODEwMyAwaDcuNjcwNDEydjc4Ljc0OTU2M2gtNy42NzA0MTJWMjQ0LjQzMDQ2MnogbS0xNC41NzM3ODMgMGg3LjY3MDQxMnY3OC43NDk1NjNoLTcuNjcwNDEyVjI0NC40MzA0NjJ6IG0tMTMuODA2NzQxIDBoNy40MTQ3MzF2NzguNzQ5NTYzaC03LjQxNDczMVYyNDQuNDMwNDYyeiBtLTcuOTI2MDkzLTcuOTI2MDkyaDk0LjYwMTc0OHY5NC42MDE3NDdoLTk0LjYwMTc0OHYtOTQuNjAxNzQ3eiIgZmlsbD0iIzAwQUNEMyIgcC1pZD0iMTg0OCI+PC9wYXRoPjxwYXRoIGQ9Ik01NjEuNDc0MTU3IDEzNS4yNTQ5MzFoNy40MTQ3MzJ2NzguNzQ5NTYzaC03LjQxNDczMlYxMzUuMjU0OTMxeiBtLTE0LjMxODEwMiAwaDcuNjcwNDEydjc4Ljc0OTU2M2gtNy42NzA0MTJWMTM1LjI1NDkzMXogbS0xNC4zMTgxMDIgMGg3LjY3MDQxMnY3OC43NDk1NjNoLTcuNjcwNDEyVjEzNS4yNTQ5MzF6IG0tMTQuMzE4MTAzIDBoNy42NzA0MTJ2NzguNzQ5NTYzaC03LjY3MDQxMlYxMzUuMjU0OTMxeiBtLTE0LjU3Mzc4MyAwaDcuNjcwNDEydjc4Ljc0OTU2M2gtNy42NzA0MTJWMTM1LjI1NDkzMXogbS0xMy44MDY3NDEgMGg3LjQxNDczMXY3OC43NDk1NjNoLTcuNDE0NzMxVjEzNS4yNTQ5MzF6IG0tNy45MjYwOTMtNy45MjYwOTJoOTQuNjAxNzQ4djk0LjYwMTc0OGgtOTQuNjAxNzQ4di05NC42MDE3NDh6TTY3MC42NDk2ODggMjQ0LjQzMDQ2Mmg3LjQxNDczMXY3OC43NDk1NjNoLTcuNDE0NzMxVjI0NC40MzA0NjJ6IG0tMTQuMzE4MTAyIDBoNy42NzA0MTJ2NzguNzQ5NTYzaC03LjY3MDQxMlYyNDQuNDMwNDYyeiBtLTE0LjMxODEwMyAwaDcuNjcwNDEydjc4Ljc0OTU2M2gtNy42NzA0MTJWMjQ0LjQzMDQ2MnogbS0xNC41NzM3ODMgMGg3LjY3MDQxMnY3OC43NDk1NjNoLTcuNjcwNDEyVjI0NC40MzA0NjJ6IG0tMTQuMzE4MTAyIDBoNy42NzA0MTJ2NzguNzQ5NTYzaC03LjY3MDQxMlYyNDQuNDMwNDYyeiBtLTEzLjgwNjc0MiAwaDcuNDE0NzMydjc4Ljc0OTU2M2gtNy40MTQ3MzJWMjQ0LjQzMDQ2MnogbS03LjkyNjA5Mi03LjkyNjA5Mmg5NC42MDE3NDh2OTQuNjAxNzQ3aC05NC42MDE3NDh2LTk0LjYwMTc0N3oiIGZpbGw9IiMyMEMyRUYiIHAtaWQ9IjE4NDkiPjwvcGF0aD48cGF0aCBkPSJNNjcwLjY0OTY4OCAxMzUuMjU0OTMxaDcuNDE0NzMxdjc4Ljc0OTU2M2gtNy40MTQ3MzFWMTM1LjI1NDkzMXogbS0xNC4zMTgxMDIgMGg3LjY3MDQxMnY3OC43NDk1NjNoLTcuNjcwNDEyVjEzNS4yNTQ5MzF6IG0tMTQuMzE4MTAzIDBoNy42NzA0MTJ2NzguNzQ5NTYzaC03LjY3MDQxMlYxMzUuMjU0OTMxeiBtLTE0LjU3Mzc4MyAwaDcuNjcwNDEydjc4Ljc0OTU2M2gtNy42NzA0MTJWMTM1LjI1NDkzMXogbS0xNC4zMTgxMDIgMGg3LjY3MDQxMnY3OC43NDk1NjNoLTcuNjcwNDEyVjEzNS4yNTQ5MzF6IG0tMTMuODA2NzQyIDBoNy40MTQ3MzJ2NzguNzQ5NTYzaC03LjQxNDczMlYxMzUuMjU0OTMxeiBtLTcuOTI2MDkyLTcuOTI2MDkyaDk0LjYwMTc0OHY5NC42MDE3NDhoLTk0LjYwMTc0OHYtOTQuNjAxNzQ4eiIgZmlsbD0iIzAwQUNEMyIgcC1pZD0iMTg1MCI+PC9wYXRoPjxwYXRoIGQ9Ik02NzAuNjQ5Njg4IDI2LjA3OTQwMWg3LjQxNDczMVYxMDQuODI4OTY0aC03LjQxNDczMVYyNi4wNzk0MDF6IG0tMTQuMzE4MTAyIDBoNy42NzA0MTJWMTA0LjgyODk2NGgtNy42NzA0MTJWMjYuMDc5NDAxeiBtLTE0LjMxODEwMyAwaDcuNjcwNDEyVjEwNC44Mjg5NjRoLTcuNjcwNDEyVjI2LjA3OTQwMXogbS0xNC41NzM3ODMgMGg3LjY3MDQxMlYxMDQuODI4OTY0aC03LjY3MDQxMlYyNi4wNzk0MDF6IG0tMTQuMzE4MTAyIDBoNy42NzA0MTJWMTA0LjgyODk2NGgtNy42NzA0MTJWMjYuMDc5NDAxeiBtLTEzLjgwNjc0MiAwaDcuNDE0NzMyVjEwNC44Mjg5NjRoLTcuNDE0NzMyVjI2LjA3OTQwMXogbS03LjkyNjA5Mi03LjkyNjA5M2g5NC42MDE3NDh2OTQuNjAxNzQ4aC05NC42MDE3NDh2LTk0LjYwMTc0OHoiIGZpbGw9IiMyMEMyRUYiIHAtaWQ9IjE4NTEiPjwvcGF0aD48cGF0aCBkPSJNNzc5LjgyNTIxOCAyNDQuNDMwNDYyaDcuNDE0NzMydjc4Ljc0OTU2M0g3NzkuODI1MjE4VjI0NC40MzA0NjJ6IG0tMTQuMzE4MTAyIDBoNy42NzA0MTJ2NzguNzQ5NTYzaC03LjY3MDQxMlYyNDQuNDMwNDYyeiBtLTE0LjU3Mzc4MyAwaDcuNjcwNDEydjc4Ljc0OTU2M2gtNy42NzA0MTJWMjQ0LjQzMDQ2MnogbS0xNC4zMTgxMDIgMGg3LjY3MDQxMnY3OC43NDk1NjNoLTcuNjcwNDEyVjI0NC40MzA0NjJ6IG0tMTQuMzE4MTAyIDBoNy42NzA0MTJ2NzguNzQ5NTYzaC03LjY3MDQxMlYyNDQuNDMwNDYyeiBtLTE0LjA2MjQyMiAwaDcuNDE0NzMxdjc4Ljc0OTU2M0g3MDguMjM0NzA3VjI0NC40MzA0NjJ6IG0tNy42NzA0MTItNy45MjYwOTJoOTQuNjAxNzQ3djk0LjYwMTc0N2gtOTQuNjAxNzQ3di05NC42MDE3NDd6IiBmaWxsPSIjMDBBQ0QzIiBwLWlkPSIxODUyIj48L3BhdGg+PHBhdGggZD0iTTQ2MS43NTg4MDEgNDg0LjUxNDM1N2MxNC4zMTgxMDIgMCAyNi4wNzk0MDEgMTEuNzYxMjk4IDI2LjA3OTQwMSAyNi4wNzk0MDFzLTExLjc2MTI5OCAyNi4wNzk0MDEtMjYuMDc5NDAxIDI2LjA3OTQwMS0yNi4wNzk0MDEtMTEuNzYxMjk4LTI2LjA3OTQtMjYuMDc5NDAxIDExLjUwNTYxOC0yNi4wNzk0MDEgMjYuMDc5NC0yNi4wNzk0MDEiIGZpbGw9IiNENEVERjEiIHAtaWQ9IjE4NTMiPjwvcGF0aD48cGF0aCBkPSJNNDYxLjc1ODgwMSA0OTEuOTI5MDg5YzIuMzAxMTI0IDAgNC42MDIyNDcgMC41MTEzNjEgNi42NDc2OTEgMS4yNzg0MDItMi4zMDExMjQgMS4yNzg0MDItMy44MzUyMDYgMy44MzUyMDYtMy44MzUyMDYgNi42NDc2OSAwIDQuMDkwODg2IDMuMzIzODQ1IDcuNjcwNDEyIDcuNjcwNDEyIDcuNjcwNDEyIDIuODEyNDg0IDAgNS4zNjkyODgtMS41MzQwODIgNi42NDc2OS00LjA5MDg4NiAxLjAyMjcyMiAyLjMwMTEyNCAxLjUzNDA4MiA0LjYwMjI0NyAxLjUzNDA4MyA3LjE1OTA1MSAwIDEwLjIyNzIxNi04LjQzNzQ1MyAxOC42NjQ2NjktMTguNjY0NjcgMTguNjY0NjY5cy0xOC42NjQ2NjktOC40Mzc0NTMtMTguNjY0NjY5LTE4LjY2NDY2OSA4LjE4MTc3My0xOC42NjQ2NjkgMTguNjY0NjY5LTE4LjY2NDY2OU0wIDQzMC4zMTAxMTJoMTIxNC4yMjYyMTdjLTI2LjMzNTA4MS02LjY0NzY5LTgzLjYwNzQ5MS0xNS44NTIxODUtNzQuMTQ3MzE2LTUwLjM2OTAzOC00OC4wNjc5MTUgNTUuNzM4MzI3LTE2My44OTExMzYgMzkuMTE5MTAxLTE5My4yOTQzODIgMTEuNTA1NjE4LTMyLjQ3MTQxMSA0Ny4zMDA4NzQtMjIyLjE4NjI2NyAyOS40MDMyNDYtMjM1LjQ4MTY0OC03LjQxNDczMi00MC45MDg4NjQgNDcuODEyMjM1LTE2Ny40NzA2NjIgNDcuODEyMjM1LTIwOC4zNzk1MjUgMC0xMy4yOTUzODEgMzYuODE3OTc4LTIwMy4wMTAyMzcgNTQuNzE1NjA1LTIzNS40ODE2NDggNy40MTQ3MzItMjkuMTQ3NTY2IDI3LjM1NzgwMy0xNDUuMjI2NDY3IDQzLjk3NzAyOS0xOTMuMjk0MzgyLTExLjUwNTYxOCA5LjQ2MDE3NSAzNC43NzI1MzQtNDcuODEyMjM1IDQzLjcyMTM0OC03NC4xNDczMTYgNTAuMzY5MDM4IiBmaWxsPSIjMzk0RDU0IiBwLWlkPSIxODU0Ij48L3BhdGg+PHBhdGggZD0iTTUzMS4wNDgxOSA2NzIuNjk1MTMxYy02NC42ODcxNDEtMzAuNjgxNjQ4LTEwMC4yMjY3MTctNzIuMzU3NTUzLTExOS45MTQxMDgtMTE3Ljg2ODY2NC0yNC4wMzM5NTggNi45MDMzNzEtNTIuOTI1ODQzIDExLjI0OTkzOC04Ni40MTk5NzUgMTMuMDM5Ny0xMi41MjgzNCAwLjc2NzA0MS0yNS44MjM3MiAxLjAyMjcyMi0zOS44ODYxNDIgMS4wMjI3MjItMTYuMTA3ODY1IDAtMzIuOTgyNzcyLTAuNTExMzYxLTUwLjg4MDM5OS0xLjUzNDA4MyA1OS4zMTc4NTMgNTkuMzE3ODUzIDEzMi4xODY3NjcgMTA0LjgyODk2NCAyNjcuMTg2MDE3IDEwNS41OTYwMDUgMTAuMjI3MjE2IDAuMjU1NjggMTkuOTQzMDcxIDAgMjkuOTE0NjA3LTAuMjU1Njh6IiBmaWxsPSIjQkZEQkUwIiBwLWlkPSIxODU1Ij48L3BhdGg+PHBhdGggZD0iTTQzNS4xNjgwNCA1OTYuNzU4MDUyYy04Ljk0ODgxNC0xMi4wMTY5NzktMTcuNjQxOTQ4LTI3LjM1NzgwMy0yNC4wMzM5NTgtNDEuOTMxNTg1LTI0LjAzMzk1OCA2LjkwMzM3MS01Mi45MjU4NDMgMTEuMjQ5OTM4LTg2LjQxOTk3NSAxMy4wMzk3IDIzLjAxMTIzNiAxMi41MjgzNCA1NS45OTQwMDcgMjQuMDMzOTU4IDExMC40NTM5MzMgMjguODkxODg1eiIgZmlsbD0iI0Q0RURGMSIgcC1pZD0iMTg1NiI+PC9wYXRoPjwvc3ZnPg==) repeat -50% 50%; background-position: top; background-size: 100%; ">

docker环境配置

  1. 更正时区时间
# 查看当前时间
$ date
# 修改当前时间
$ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo 'Asia/Shanghai' > /etc/timezone
  1. 更换软件源至aliyun
cp /etc/apt/sources.list /etc/apt/sources.list.bak
echo "
# Ubuntu14.0 aliyun source:
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
" > /etc/apt/sources.list
apt update
  1. 添加架构支持
dpkg --add-architecture i386
dpkg --add-architecture amd64
  1. 添加依赖
apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0
  1. 添加安卓源码依赖
# 编译工具、构建套件
apt-get install gcc-multilib g++-multilib build-essential
# 必要软件
apt-get install git-core gnupg bison flex gperf pngcrush bc zip curl lzop
apt-get install schedtool libxml2 libxml2-utils xsltproc squashfs-tools
# 库
apt-get install libesd0-dev libsdl1.2-dev libwxgtk2.8-dev libswitch-perl
apt-get install libssl1.0.0 libssl-dev lib32readline-gplv2-dev libncurses5-dev

说明:

  • bc 命令行计算器
  • lzop 快速压缩工具
  • flex 词法分析器生成器
  • curl 基于URL的文件传输工具
  • gperf 哈希函数生成器
  • bison 语法分析器生成器
  • xsltproc 快速XSLT引擎,可以通过XSL文件把XML转为HTML,XHTML,PDF...
  • schedtool 查询或设置CPU状态
  • squashfs-tools linux内核压缩工具,只读式压缩文件系统Image
  • pngcrush 批量压缩PNG图片
  • libxml2 libxml2-utils 操作XML文档工具
  1. 添加jdk1.7和python

安装的默认的jdk和python版本

apt-get install openjdk-7-jdk python
  1. 额外添加自己常用工具
  • htop
  • tree
  • vim

apt-get install -y htop tree vim

编译报错

1. fatal internal error, exec of /usr/bin/m4 failed

flex-2.5.39: fatal internal error, exec of /usr/bin/m4 failed
frameworks/base/tools/aidl/aidl_language_l.l:55: warning, rule cannot be matched
prebuilts/misc/linux-x86/bison/bison: m4 subprocess failed
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] Error 1
make: *** Deleting file `out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp'
make: *** Waiting for unfinished jobs....
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp] Error 1

缺少m4工具,m4 - macro processor,宏处理器,安装它

apt-get install m4

2. java.lang.NoClassDefFoundError

Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider
	at java.lang.Class.getDeclaredMethods0(Native Method)
	at java.lang.Class.privateGetDeclaredMethods(Class.java:2625)
	at java.lang.Class.getMethod0(Class.java:2866)
	at java.lang.Class.getMethod(Class.java:1676)
	at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider
	at java.net.URLClassLoader$1.run(URLClassLoader.java:360)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:349)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:348)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:430)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:323)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
	... 6 more

因为加入了jdk的第三方安全库,故需要进行额外配置:

2.1 下载 bcprov-jdk-xxx.jar包

下载地址:http://www.bouncycastle.org/latest_releases.html

找到对应自己jdk版本的 bcprov-jdk****.jar 包下载,我这是ubuntu14.04下载的默认jdk版本,1.7.0_201

故下载了 JDK 1.5 - JDK 1.11: bcprov-jdk15on-165.jar

2.2 将其放入 JAVA_HOME/jre/lib/ext 下

JAVA_HOME 可以echo $JAVA_HOME获得或看 java.conf 或 自己 which java 等手段查找当前 java 对应的目录

我这是 /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext,将上面的 jar 包放入

2.3 修改 java.security 文件

修改 JAVA_HOME/jre/lib/security/java.security 文件,在下面加上

security.provider.x=org.bouncycastle.jce.provider.BouncyCastleProvider

注意:如果放入了和自己jdk版本不对应的jar包,后面编译可能还会报java.lang.VerifyError错误

3. USER: unbound variable

老问题, 由于docker没有设置USER环境变量导致

我这将 export USER=$(whoami) 导入 /etc/bash.bashrc 中,以供docker环境重复使用

也可以设置自己需要的名字 ENV USER root

上一篇:编译ad10


下一篇:安装pip报错Traceback (most recent call last): File "get-pip.py", line 22318, in