1// Copyright 2016 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build example
6//
7// This build tag means that "go install golang.org/x/exp/shiny/..." doesn't
8// install this example program. Use "go run main.go" to run it or "go install
9// -tags=example" to install it.
10
11// Icongallery exhibits the Material Design icon set.
12package main
13
14// TODO: key events to navigate through the icons. Also add a search-by-name
15// drop-down combo box?
16
17import (
18	"image"
19	"image/draw"
20	"log"
21
22	"golang.org/x/exp/shiny/driver"
23	"golang.org/x/exp/shiny/gesture"
24	"golang.org/x/exp/shiny/iconvg"
25	"golang.org/x/exp/shiny/materialdesign/icons"
26	"golang.org/x/exp/shiny/screen"
27	"golang.org/x/exp/shiny/unit"
28	"golang.org/x/exp/shiny/widget"
29	"golang.org/x/exp/shiny/widget/node"
30	"golang.org/x/exp/shiny/widget/theme"
31)
32
33func stretch(n node.Node, alongWeight int) node.Node {
34	return widget.WithLayoutData(n, widget.FlowLayoutData{
35		AlongWeight:  alongWeight,
36		ExpandAlong:  true,
37		ShrinkAlong:  true,
38		ExpandAcross: true,
39		ShrinkAcross: true,
40	})
41}
42
43type Body struct {
44	node.LeafEmbed
45	index int
46	z     iconvg.Rasterizer
47}
48
49func NewBody() *Body {
50	w := &Body{}
51	w.Wrapper = w
52	return w
53}
54
55func (w *Body) PaintBase(ctx *node.PaintBaseContext, origin image.Point) error {
56	w.Marks.UnmarkNeedsPaintBase()
57	wr := w.Rect.Add(origin)
58	for y := wr.Min.Y; y < wr.Max.Y; y += checkersLen {
59		for x := wr.Min.X; x < wr.Max.X; x += checkersLen {
60			r := wr.Intersect(image.Rectangle{
61				Min: image.Point{x + 0*checkersLen, y + 0*checkersLen},
62				Max: image.Point{x + 1*checkersLen, y + 1*checkersLen},
63			})
64			draw.Draw(ctx.Dst, r, checkers, image.Point{}, draw.Src)
65		}
66	}
67
68	wr = wr.Inset(16)
69	if wr.Empty() {
70		return nil
71	}
72	sz := wr.Size()
73	if d := sz.X - sz.Y; d > 0 {
74		wr.Min.X += d / 2
75		wr.Max.X = wr.Min.X + sz.Y
76	} else if d < 0 {
77		wr.Min.Y -= d / 2
78		wr.Max.Y = wr.Min.Y + sz.X
79	}
80	w.z.SetDstImage(ctx.Dst, wr, draw.Over)
81	return iconvg.Decode(&w.z, iconList[w.index].data, nil)
82}
83
84// TODO: make a standard widget.Button.
85
86type Button struct {
87	node.LeafEmbed
88	icon    []byte
89	onClick func()
90	z       iconvg.Rasterizer
91}
92
93func NewButton(icon []byte, onClick func()) *Button {
94	w := &Button{
95		icon:    icon,
96		onClick: onClick,
97	}
98	w.Wrapper = w
99	return w
100}
101
102func (w *Button) Measure(t *theme.Theme, widthHint, heightHint int) {
103	px := t.Pixels(unit.Ems(1)).Ceil()
104	w.MeasuredSize = image.Point{px, px}
105}
106
107func (w *Button) PaintBase(ctx *node.PaintBaseContext, origin image.Point) error {
108	w.Marks.UnmarkNeedsPaintBase()
109	w.z.SetDstImage(ctx.Dst, w.Rect.Add(origin), draw.Over)
110	return iconvg.Decode(&w.z, w.icon, nil)
111}
112
113func (w *Button) OnInputEvent(e interface{}, origin image.Point) node.EventHandled {
114	switch e := e.(type) {
115	case gesture.Event:
116		if e.Type != gesture.TypeTap {
117			break
118		}
119		if w.onClick != nil {
120			w.onClick()
121		}
122		return node.Handled
123	}
124	return node.NotHandled
125}
126
127func main() {
128	log.SetFlags(0)
129	driver.Main(func(s screen.Screen) {
130		body := NewBody()
131		iconName := widget.NewLabel(iconList[0].name)
132		inc := func(delta int) {
133			body.index += delta
134			if body.index < 0 {
135				body.index += len(iconList)
136			} else if body.index >= len(iconList) {
137				body.index -= len(iconList)
138			}
139			body.Mark(node.MarkNeedsPaintBase)
140			iconName.Text = iconList[body.index].name
141			iconName.Mark(node.MarkNeedsMeasureLayout | node.MarkNeedsPaintBase)
142		}
143
144		header := widget.NewUniform(theme.Neutral,
145			widget.NewPadder(widget.AxisBoth, unit.Ems(0.5),
146				widget.NewFlow(widget.AxisHorizontal,
147					NewButton(icons.NavigationChevronLeft, func() { inc(-1) }),
148					widget.NewSizer(unit.Ems(0.5), unit.Value{}, nil),
149					NewButton(icons.NavigationChevronRight, func() { inc(+1) }),
150					widget.NewSizer(unit.Ems(0.5), unit.Value{}, nil),
151					stretch(iconName, 1),
152				),
153			),
154		)
155		divider := widget.NewSizer(unit.Value{}, unit.DIPs(2),
156			widget.NewUniform(theme.Foreground, nil),
157		)
158
159		w := widget.NewFlow(widget.AxisVertical,
160			stretch(widget.NewSheet(header), 0),
161			stretch(widget.NewSheet(divider), 0),
162			stretch(widget.NewSheet(body), 1),
163		)
164
165		if err := widget.RunWindow(s, w, &widget.RunWindowOptions{
166			NewWindowOptions: screen.NewWindowOptions{
167				Title: "IconGallery Shiny Example",
168			},
169		}); err != nil {
170			log.Fatal(err)
171		}
172	})
173}
174
175const checkersLen = 256
176
177var checkers = func() image.Image {
178	m := image.NewRGBA(image.Rect(0, 0, checkersLen, checkersLen))
179	pix := m.Pix
180	for y := 0; y < checkersLen; y++ {
181		for x := 0; x < checkersLen; x++ {
182			g, b := uint8(0xc0), uint8(0xff)
183			if x&16 == y&16 {
184				g, b = b, g
185			}
186			pix[(y*checkersLen+x)*4+0] = 0xc0
187			pix[(y*checkersLen+x)*4+1] = g
188			pix[(y*checkersLen+x)*4+2] = b
189			pix[(y*checkersLen+x)*4+3] = 0xff
190		}
191	}
192	return m
193}()
194
195var iconList = []struct {
196	name string
197	data []byte
198}{
199	{"Action3DRotation", icons.Action3DRotation},
200	{"ActionAccessibility", icons.ActionAccessibility},
201	{"ActionAccessible", icons.ActionAccessible},
202	{"ActionAccountBalance", icons.ActionAccountBalance},
203	{"ActionAccountBalanceWallet", icons.ActionAccountBalanceWallet},
204	{"ActionAccountBox", icons.ActionAccountBox},
205	{"ActionAccountCircle", icons.ActionAccountCircle},
206	{"ActionAddShoppingCart", icons.ActionAddShoppingCart},
207	{"ActionAlarm", icons.ActionAlarm},
208	{"ActionAlarmAdd", icons.ActionAlarmAdd},
209	{"ActionAlarmOff", icons.ActionAlarmOff},
210	{"ActionAlarmOn", icons.ActionAlarmOn},
211	{"ActionAllOut", icons.ActionAllOut},
212	{"ActionAndroid", icons.ActionAndroid},
213	{"ActionAnnouncement", icons.ActionAnnouncement},
214	{"ActionAspectRatio", icons.ActionAspectRatio},
215	{"ActionAssessment", icons.ActionAssessment},
216	{"ActionAssignment", icons.ActionAssignment},
217	{"ActionAssignmentInd", icons.ActionAssignmentInd},
218	{"ActionAssignmentLate", icons.ActionAssignmentLate},
219	{"ActionAssignmentReturn", icons.ActionAssignmentReturn},
220	{"ActionAssignmentReturned", icons.ActionAssignmentReturned},
221	{"ActionAssignmentTurnedIn", icons.ActionAssignmentTurnedIn},
222	{"ActionAutorenew", icons.ActionAutorenew},
223	{"ActionBackup", icons.ActionBackup},
224	{"ActionBook", icons.ActionBook},
225	{"ActionBookmark", icons.ActionBookmark},
226	{"ActionBookmarkBorder", icons.ActionBookmarkBorder},
227	{"ActionBugReport", icons.ActionBugReport},
228	{"ActionBuild", icons.ActionBuild},
229	{"ActionCached", icons.ActionCached},
230	{"ActionCameraEnhance", icons.ActionCameraEnhance},
231	{"ActionCardGiftcard", icons.ActionCardGiftcard},
232	{"ActionCardMembership", icons.ActionCardMembership},
233	{"ActionCardTravel", icons.ActionCardTravel},
234	{"ActionChangeHistory", icons.ActionChangeHistory},
235	{"ActionCheckCircle", icons.ActionCheckCircle},
236	{"ActionChromeReaderMode", icons.ActionChromeReaderMode},
237	{"ActionClass", icons.ActionClass},
238	{"ActionCode", icons.ActionCode},
239	{"ActionCompareArrows", icons.ActionCompareArrows},
240	{"ActionCopyright", icons.ActionCopyright},
241	{"ActionCreditCard", icons.ActionCreditCard},
242	{"ActionDashboard", icons.ActionDashboard},
243	{"ActionDateRange", icons.ActionDateRange},
244	{"ActionDelete", icons.ActionDelete},
245	{"ActionDeleteForever", icons.ActionDeleteForever},
246	{"ActionDescription", icons.ActionDescription},
247	{"ActionDNS", icons.ActionDNS},
248	{"ActionDone", icons.ActionDone},
249	{"ActionDoneAll", icons.ActionDoneAll},
250	{"ActionDonutLarge", icons.ActionDonutLarge},
251	{"ActionDonutSmall", icons.ActionDonutSmall},
252	{"ActionEject", icons.ActionEject},
253	{"ActionEuroSymbol", icons.ActionEuroSymbol},
254	{"ActionEvent", icons.ActionEvent},
255	{"ActionEventSeat", icons.ActionEventSeat},
256	{"ActionExitToApp", icons.ActionExitToApp},
257	{"ActionExplore", icons.ActionExplore},
258	{"ActionExtension", icons.ActionExtension},
259	{"ActionFace", icons.ActionFace},
260	{"ActionFavorite", icons.ActionFavorite},
261	{"ActionFavoriteBorder", icons.ActionFavoriteBorder},
262	{"ActionFeedback", icons.ActionFeedback},
263	{"ActionFindInPage", icons.ActionFindInPage},
264	{"ActionFindReplace", icons.ActionFindReplace},
265	{"ActionFingerprint", icons.ActionFingerprint},
266	{"ActionFlightLand", icons.ActionFlightLand},
267	{"ActionFlightTakeoff", icons.ActionFlightTakeoff},
268	{"ActionFlipToBack", icons.ActionFlipToBack},
269	{"ActionFlipToFront", icons.ActionFlipToFront},
270	{"ActionGTranslate", icons.ActionGTranslate},
271	{"ActionGavel", icons.ActionGavel},
272	{"ActionGetApp", icons.ActionGetApp},
273	{"ActionGIF", icons.ActionGIF},
274	{"ActionGrade", icons.ActionGrade},
275	{"ActionGroupWork", icons.ActionGroupWork},
276	{"ActionHelp", icons.ActionHelp},
277	{"ActionHelpOutline", icons.ActionHelpOutline},
278	{"ActionHighlightOff", icons.ActionHighlightOff},
279	{"ActionHistory", icons.ActionHistory},
280	{"ActionHome", icons.ActionHome},
281	{"ActionHourglassEmpty", icons.ActionHourglassEmpty},
282	{"ActionHourglassFull", icons.ActionHourglassFull},
283	{"ActionHTTP", icons.ActionHTTP},
284	{"ActionHTTPS", icons.ActionHTTPS},
285	{"ActionImportantDevices", icons.ActionImportantDevices},
286	{"ActionInfo", icons.ActionInfo},
287	{"ActionInfoOutline", icons.ActionInfoOutline},
288	{"ActionInput", icons.ActionInput},
289	{"ActionInvertColors", icons.ActionInvertColors},
290	{"ActionLabel", icons.ActionLabel},
291	{"ActionLabelOutline", icons.ActionLabelOutline},
292	{"ActionLanguage", icons.ActionLanguage},
293	{"ActionLaunch", icons.ActionLaunch},
294	{"ActionLightbulbOutline", icons.ActionLightbulbOutline},
295	{"ActionLineStyle", icons.ActionLineStyle},
296	{"ActionLineWeight", icons.ActionLineWeight},
297	{"ActionList", icons.ActionList},
298	{"ActionLock", icons.ActionLock},
299	{"ActionLockOpen", icons.ActionLockOpen},
300	{"ActionLockOutline", icons.ActionLockOutline},
301	{"ActionLoyalty", icons.ActionLoyalty},
302	{"ActionMarkUnreadMailbox", icons.ActionMarkUnreadMailbox},
303	{"ActionMotorcycle", icons.ActionMotorcycle},
304	{"ActionNoteAdd", icons.ActionNoteAdd},
305	{"ActionOfflinePin", icons.ActionOfflinePin},
306	{"ActionOpacity", icons.ActionOpacity},
307	{"ActionOpenInBrowser", icons.ActionOpenInBrowser},
308	{"ActionOpenInNew", icons.ActionOpenInNew},
309	{"ActionOpenWith", icons.ActionOpenWith},
310	{"ActionPageview", icons.ActionPageview},
311	{"ActionPanTool", icons.ActionPanTool},
312	{"ActionPayment", icons.ActionPayment},
313	{"ActionPermCameraMic", icons.ActionPermCameraMic},
314	{"ActionPermContactCalendar", icons.ActionPermContactCalendar},
315	{"ActionPermDataSetting", icons.ActionPermDataSetting},
316	{"ActionPermDeviceInformation", icons.ActionPermDeviceInformation},
317	{"ActionPermIdentity", icons.ActionPermIdentity},
318	{"ActionPermMedia", icons.ActionPermMedia},
319	{"ActionPermPhoneMsg", icons.ActionPermPhoneMsg},
320	{"ActionPermScanWiFi", icons.ActionPermScanWiFi},
321	{"ActionPets", icons.ActionPets},
322	{"ActionPictureInPicture", icons.ActionPictureInPicture},
323	{"ActionPictureInPictureAlt", icons.ActionPictureInPictureAlt},
324	{"ActionPlayForWork", icons.ActionPlayForWork},
325	{"ActionPolymer", icons.ActionPolymer},
326	{"ActionPowerSettingsNew", icons.ActionPowerSettingsNew},
327	{"ActionPregnantWoman", icons.ActionPregnantWoman},
328	{"ActionPrint", icons.ActionPrint},
329	{"ActionQueryBuilder", icons.ActionQueryBuilder},
330	{"ActionQuestionAnswer", icons.ActionQuestionAnswer},
331	{"ActionReceipt", icons.ActionReceipt},
332	{"ActionRecordVoiceOver", icons.ActionRecordVoiceOver},
333	{"ActionRedeem", icons.ActionRedeem},
334	{"ActionRemoveShoppingCart", icons.ActionRemoveShoppingCart},
335	{"ActionReorder", icons.ActionReorder},
336	{"ActionReportProblem", icons.ActionReportProblem},
337	{"ActionRestore", icons.ActionRestore},
338	{"ActionRestorePage", icons.ActionRestorePage},
339	{"ActionRoom", icons.ActionRoom},
340	{"ActionRoundedCorner", icons.ActionRoundedCorner},
341	{"ActionRowing", icons.ActionRowing},
342	{"ActionSchedule", icons.ActionSchedule},
343	{"ActionSearch", icons.ActionSearch},
344	{"ActionSettings", icons.ActionSettings},
345	{"ActionSettingsApplications", icons.ActionSettingsApplications},
346	{"ActionSettingsBackupRestore", icons.ActionSettingsBackupRestore},
347	{"ActionSettingsBluetooth", icons.ActionSettingsBluetooth},
348	{"ActionSettingsBrightness", icons.ActionSettingsBrightness},
349	{"ActionSettingsCell", icons.ActionSettingsCell},
350	{"ActionSettingsEthernet", icons.ActionSettingsEthernet},
351	{"ActionSettingsInputAntenna", icons.ActionSettingsInputAntenna},
352	{"ActionSettingsInputComponent", icons.ActionSettingsInputComponent},
353	{"ActionSettingsInputComposite", icons.ActionSettingsInputComposite},
354	{"ActionSettingsInputHDMI", icons.ActionSettingsInputHDMI},
355	{"ActionSettingsInputSVideo", icons.ActionSettingsInputSVideo},
356	{"ActionSettingsOverscan", icons.ActionSettingsOverscan},
357	{"ActionSettingsPhone", icons.ActionSettingsPhone},
358	{"ActionSettingsPower", icons.ActionSettingsPower},
359	{"ActionSettingsRemote", icons.ActionSettingsRemote},
360	{"ActionSettingsVoice", icons.ActionSettingsVoice},
361	{"ActionShop", icons.ActionShop},
362	{"ActionShopTwo", icons.ActionShopTwo},
363	{"ActionShoppingBasket", icons.ActionShoppingBasket},
364	{"ActionShoppingCart", icons.ActionShoppingCart},
365	{"ActionSpeakerNotes", icons.ActionSpeakerNotes},
366	{"ActionSpeakerNotesOff", icons.ActionSpeakerNotesOff},
367	{"ActionSpellcheck", icons.ActionSpellcheck},
368	{"ActionStarRate", icons.ActionStarRate},
369	{"ActionStars", icons.ActionStars},
370	{"ActionStore", icons.ActionStore},
371	{"ActionSubject", icons.ActionSubject},
372	{"ActionSupervisorAccount", icons.ActionSupervisorAccount},
373	{"ActionSwapHoriz", icons.ActionSwapHoriz},
374	{"ActionSwapVert", icons.ActionSwapVert},
375	{"ActionSwapVerticalCircle", icons.ActionSwapVerticalCircle},
376	{"ActionSystemUpdateAlt", icons.ActionSystemUpdateAlt},
377	{"ActionTab", icons.ActionTab},
378	{"ActionTabUnselected", icons.ActionTabUnselected},
379	{"ActionTheaters", icons.ActionTheaters},
380	{"ActionThumbDown", icons.ActionThumbDown},
381	{"ActionThumbUp", icons.ActionThumbUp},
382	{"ActionThumbsUpDown", icons.ActionThumbsUpDown},
383	{"ActionTimeline", icons.ActionTimeline},
384	{"ActionTOC", icons.ActionTOC},
385	{"ActionToday", icons.ActionToday},
386	{"ActionToll", icons.ActionToll},
387	{"ActionTouchApp", icons.ActionTouchApp},
388	{"ActionTrackChanges", icons.ActionTrackChanges},
389	{"ActionTranslate", icons.ActionTranslate},
390	{"ActionTrendingDown", icons.ActionTrendingDown},
391	{"ActionTrendingFlat", icons.ActionTrendingFlat},
392	{"ActionTrendingUp", icons.ActionTrendingUp},
393	{"ActionTurnedIn", icons.ActionTurnedIn},
394	{"ActionTurnedInNot", icons.ActionTurnedInNot},
395	{"ActionUpdate", icons.ActionUpdate},
396	{"ActionVerifiedUser", icons.ActionVerifiedUser},
397	{"ActionViewAgenda", icons.ActionViewAgenda},
398	{"ActionViewArray", icons.ActionViewArray},
399	{"ActionViewCarousel", icons.ActionViewCarousel},
400	{"ActionViewColumn", icons.ActionViewColumn},
401	{"ActionViewDay", icons.ActionViewDay},
402	{"ActionViewHeadline", icons.ActionViewHeadline},
403	{"ActionViewList", icons.ActionViewList},
404	{"ActionViewModule", icons.ActionViewModule},
405	{"ActionViewQuilt", icons.ActionViewQuilt},
406	{"ActionViewStream", icons.ActionViewStream},
407	{"ActionViewWeek", icons.ActionViewWeek},
408	{"ActionVisibility", icons.ActionVisibility},
409	{"ActionVisibilityOff", icons.ActionVisibilityOff},
410	{"ActionWatchLater", icons.ActionWatchLater},
411	{"ActionWork", icons.ActionWork},
412	{"ActionYoutubeSearchedFor", icons.ActionYoutubeSearchedFor},
413	{"ActionZoomIn", icons.ActionZoomIn},
414	{"ActionZoomOut", icons.ActionZoomOut},
415	{"AlertAddAlert", icons.AlertAddAlert},
416	{"AlertError", icons.AlertError},
417	{"AlertErrorOutline", icons.AlertErrorOutline},
418	{"AlertWarning", icons.AlertWarning},
419	{"AVAddToQueue", icons.AVAddToQueue},
420	{"AVAirplay", icons.AVAirplay},
421	{"AVAlbum", icons.AVAlbum},
422	{"AVArtTrack", icons.AVArtTrack},
423	{"AVAVTimer", icons.AVAVTimer},
424	{"AVBrandingWatermark", icons.AVBrandingWatermark},
425	{"AVCallToAction", icons.AVCallToAction},
426	{"AVClosedCaption", icons.AVClosedCaption},
427	{"AVEqualizer", icons.AVEqualizer},
428	{"AVExplicit", icons.AVExplicit},
429	{"AVFastForward", icons.AVFastForward},
430	{"AVFastRewind", icons.AVFastRewind},
431	{"AVFeaturedPlayList", icons.AVFeaturedPlayList},
432	{"AVFeaturedVideo", icons.AVFeaturedVideo},
433	{"AVFiberDVR", icons.AVFiberDVR},
434	{"AVFiberManualRecord", icons.AVFiberManualRecord},
435	{"AVFiberNew", icons.AVFiberNew},
436	{"AVFiberPin", icons.AVFiberPin},
437	{"AVFiberSmartRecord", icons.AVFiberSmartRecord},
438	{"AVForward10", icons.AVForward10},
439	{"AVForward30", icons.AVForward30},
440	{"AVForward5", icons.AVForward5},
441	{"AVGames", icons.AVGames},
442	{"AVHD", icons.AVHD},
443	{"AVHearing", icons.AVHearing},
444	{"AVHighQuality", icons.AVHighQuality},
445	{"AVLibraryAdd", icons.AVLibraryAdd},
446	{"AVLibraryBooks", icons.AVLibraryBooks},
447	{"AVLibraryMusic", icons.AVLibraryMusic},
448	{"AVLoop", icons.AVLoop},
449	{"AVMic", icons.AVMic},
450	{"AVMicNone", icons.AVMicNone},
451	{"AVMicOff", icons.AVMicOff},
452	{"AVMovie", icons.AVMovie},
453	{"AVMusicVideo", icons.AVMusicVideo},
454	{"AVNewReleases", icons.AVNewReleases},
455	{"AVNotInterested", icons.AVNotInterested},
456	{"AVNote", icons.AVNote},
457	{"AVPause", icons.AVPause},
458	{"AVPauseCircleFilled", icons.AVPauseCircleFilled},
459	{"AVPauseCircleOutline", icons.AVPauseCircleOutline},
460	{"AVPlayArrow", icons.AVPlayArrow},
461	{"AVPlayCircleFilled", icons.AVPlayCircleFilled},
462	{"AVPlayCircleOutline", icons.AVPlayCircleOutline},
463	{"AVPlaylistAdd", icons.AVPlaylistAdd},
464	{"AVPlaylistAddCheck", icons.AVPlaylistAddCheck},
465	{"AVPlaylistPlay", icons.AVPlaylistPlay},
466	{"AVQueue", icons.AVQueue},
467	{"AVQueueMusic", icons.AVQueueMusic},
468	{"AVQueuePlayNext", icons.AVQueuePlayNext},
469	{"AVRadio", icons.AVRadio},
470	{"AVRecentActors", icons.AVRecentActors},
471	{"AVRemoveFromQueue", icons.AVRemoveFromQueue},
472	{"AVRepeat", icons.AVRepeat},
473	{"AVRepeatOne", icons.AVRepeatOne},
474	{"AVReplay", icons.AVReplay},
475	{"AVReplay10", icons.AVReplay10},
476	{"AVReplay30", icons.AVReplay30},
477	{"AVReplay5", icons.AVReplay5},
478	{"AVShuffle", icons.AVShuffle},
479	{"AVSkipNext", icons.AVSkipNext},
480	{"AVSkipPrevious", icons.AVSkipPrevious},
481	{"AVSlowMotionVideo", icons.AVSlowMotionVideo},
482	{"AVSnooze", icons.AVSnooze},
483	{"AVSortByAlpha", icons.AVSortByAlpha},
484	{"AVStop", icons.AVStop},
485	{"AVSubscriptions", icons.AVSubscriptions},
486	{"AVSubtitles", icons.AVSubtitles},
487	{"AVSurroundSound", icons.AVSurroundSound},
488	{"AVVideoCall", icons.AVVideoCall},
489	{"AVVideoLabel", icons.AVVideoLabel},
490	{"AVVideoLibrary", icons.AVVideoLibrary},
491	{"AVVideocam", icons.AVVideocam},
492	{"AVVideocamOff", icons.AVVideocamOff},
493	{"AVVolumeDown", icons.AVVolumeDown},
494	{"AVVolumeMute", icons.AVVolumeMute},
495	{"AVVolumeOff", icons.AVVolumeOff},
496	{"AVVolumeUp", icons.AVVolumeUp},
497	{"AVWeb", icons.AVWeb},
498	{"AVWebAsset", icons.AVWebAsset},
499	{"CommunicationBusiness", icons.CommunicationBusiness},
500	{"CommunicationCall", icons.CommunicationCall},
501	{"CommunicationCallEnd", icons.CommunicationCallEnd},
502	{"CommunicationCallMade", icons.CommunicationCallMade},
503	{"CommunicationCallMerge", icons.CommunicationCallMerge},
504	{"CommunicationCallMissed", icons.CommunicationCallMissed},
505	{"CommunicationCallMissedOutgoing", icons.CommunicationCallMissedOutgoing},
506	{"CommunicationCallReceived", icons.CommunicationCallReceived},
507	{"CommunicationCallSplit", icons.CommunicationCallSplit},
508	{"CommunicationChat", icons.CommunicationChat},
509	{"CommunicationChatBubble", icons.CommunicationChatBubble},
510	{"CommunicationChatBubbleOutline", icons.CommunicationChatBubbleOutline},
511	{"CommunicationClearAll", icons.CommunicationClearAll},
512	{"CommunicationComment", icons.CommunicationComment},
513	{"CommunicationContactMail", icons.CommunicationContactMail},
514	{"CommunicationContactPhone", icons.CommunicationContactPhone},
515	{"CommunicationContacts", icons.CommunicationContacts},
516	{"CommunicationDialerSIP", icons.CommunicationDialerSIP},
517	{"CommunicationDialpad", icons.CommunicationDialpad},
518	{"CommunicationEmail", icons.CommunicationEmail},
519	{"CommunicationForum", icons.CommunicationForum},
520	{"CommunicationImportContacts", icons.CommunicationImportContacts},
521	{"CommunicationImportExport", icons.CommunicationImportExport},
522	{"CommunicationInvertColorsOff", icons.CommunicationInvertColorsOff},
523	{"CommunicationLiveHelp", icons.CommunicationLiveHelp},
524	{"CommunicationLocationOff", icons.CommunicationLocationOff},
525	{"CommunicationLocationOn", icons.CommunicationLocationOn},
526	{"CommunicationMailOutline", icons.CommunicationMailOutline},
527	{"CommunicationMessage", icons.CommunicationMessage},
528	{"CommunicationNoSIM", icons.CommunicationNoSIM},
529	{"CommunicationPhone", icons.CommunicationPhone},
530	{"CommunicationPhoneLinkErase", icons.CommunicationPhoneLinkErase},
531	{"CommunicationPhoneLinkLock", icons.CommunicationPhoneLinkLock},
532	{"CommunicationPhoneLinkRing", icons.CommunicationPhoneLinkRing},
533	{"CommunicationPhoneLinkSetup", icons.CommunicationPhoneLinkSetup},
534	{"CommunicationPortableWiFiOff", icons.CommunicationPortableWiFiOff},
535	{"CommunicationPresentToAll", icons.CommunicationPresentToAll},
536	{"CommunicationRingVolume", icons.CommunicationRingVolume},
537	{"CommunicationRSSFeed", icons.CommunicationRSSFeed},
538	{"CommunicationScreenShare", icons.CommunicationScreenShare},
539	{"CommunicationSpeakerPhone", icons.CommunicationSpeakerPhone},
540	{"CommunicationStayCurrentLandscape", icons.CommunicationStayCurrentLandscape},
541	{"CommunicationStayCurrentPortrait", icons.CommunicationStayCurrentPortrait},
542	{"CommunicationStayPrimaryLandscape", icons.CommunicationStayPrimaryLandscape},
543	{"CommunicationStayPrimaryPortrait", icons.CommunicationStayPrimaryPortrait},
544	{"CommunicationStopScreenShare", icons.CommunicationStopScreenShare},
545	{"CommunicationSwapCalls", icons.CommunicationSwapCalls},
546	{"CommunicationTextSMS", icons.CommunicationTextSMS},
547	{"CommunicationVoicemail", icons.CommunicationVoicemail},
548	{"CommunicationVPNKey", icons.CommunicationVPNKey},
549	{"ContentAdd", icons.ContentAdd},
550	{"ContentAddBox", icons.ContentAddBox},
551	{"ContentAddCircle", icons.ContentAddCircle},
552	{"ContentAddCircleOutline", icons.ContentAddCircleOutline},
553	{"ContentArchive", icons.ContentArchive},
554	{"ContentBackspace", icons.ContentBackspace},
555	{"ContentBlock", icons.ContentBlock},
556	{"ContentClear", icons.ContentClear},
557	{"ContentContentCopy", icons.ContentContentCopy},
558	{"ContentContentCut", icons.ContentContentCut},
559	{"ContentContentPaste", icons.ContentContentPaste},
560	{"ContentCreate", icons.ContentCreate},
561	{"ContentDeleteSweep", icons.ContentDeleteSweep},
562	{"ContentDrafts", icons.ContentDrafts},
563	{"ContentFilterList", icons.ContentFilterList},
564	{"ContentFlag", icons.ContentFlag},
565	{"ContentFontDownload", icons.ContentFontDownload},
566	{"ContentForward", icons.ContentForward},
567	{"ContentGesture", icons.ContentGesture},
568	{"ContentInbox", icons.ContentInbox},
569	{"ContentLink", icons.ContentLink},
570	{"ContentLowPriority", icons.ContentLowPriority},
571	{"ContentMail", icons.ContentMail},
572	{"ContentMarkUnread", icons.ContentMarkUnread},
573	{"ContentMoveToInbox", icons.ContentMoveToInbox},
574	{"ContentNextWeek", icons.ContentNextWeek},
575	{"ContentRedo", icons.ContentRedo},
576	{"ContentRemove", icons.ContentRemove},
577	{"ContentRemoveCircle", icons.ContentRemoveCircle},
578	{"ContentRemoveCircleOutline", icons.ContentRemoveCircleOutline},
579	{"ContentReply", icons.ContentReply},
580	{"ContentReplyAll", icons.ContentReplyAll},
581	{"ContentReport", icons.ContentReport},
582	{"ContentSave", icons.ContentSave},
583	{"ContentSelectAll", icons.ContentSelectAll},
584	{"ContentSend", icons.ContentSend},
585	{"ContentSort", icons.ContentSort},
586	{"ContentTextFormat", icons.ContentTextFormat},
587	{"ContentUnarchive", icons.ContentUnarchive},
588	{"ContentUndo", icons.ContentUndo},
589	{"ContentWeekend", icons.ContentWeekend},
590	{"DeviceAccessAlarm", icons.DeviceAccessAlarm},
591	{"DeviceAccessAlarms", icons.DeviceAccessAlarms},
592	{"DeviceAccessTime", icons.DeviceAccessTime},
593	{"DeviceAddAlarm", icons.DeviceAddAlarm},
594	{"DeviceAirplaneModeActive", icons.DeviceAirplaneModeActive},
595	{"DeviceAirplaneModeInactive", icons.DeviceAirplaneModeInactive},
596	{"DeviceBattery20", icons.DeviceBattery20},
597	{"DeviceBattery30", icons.DeviceBattery30},
598	{"DeviceBattery50", icons.DeviceBattery50},
599	{"DeviceBattery60", icons.DeviceBattery60},
600	{"DeviceBattery80", icons.DeviceBattery80},
601	{"DeviceBattery90", icons.DeviceBattery90},
602	{"DeviceBatteryAlert", icons.DeviceBatteryAlert},
603	{"DeviceBatteryCharging20", icons.DeviceBatteryCharging20},
604	{"DeviceBatteryCharging30", icons.DeviceBatteryCharging30},
605	{"DeviceBatteryCharging50", icons.DeviceBatteryCharging50},
606	{"DeviceBatteryCharging60", icons.DeviceBatteryCharging60},
607	{"DeviceBatteryCharging80", icons.DeviceBatteryCharging80},
608	{"DeviceBatteryCharging90", icons.DeviceBatteryCharging90},
609	{"DeviceBatteryChargingFull", icons.DeviceBatteryChargingFull},
610	{"DeviceBatteryFull", icons.DeviceBatteryFull},
611	{"DeviceBatteryStd", icons.DeviceBatteryStd},
612	{"DeviceBatteryUnknown", icons.DeviceBatteryUnknown},
613	{"DeviceBluetooth", icons.DeviceBluetooth},
614	{"DeviceBluetoothConnected", icons.DeviceBluetoothConnected},
615	{"DeviceBluetoothDisabled", icons.DeviceBluetoothDisabled},
616	{"DeviceBluetoothSearching", icons.DeviceBluetoothSearching},
617	{"DeviceBrightnessAuto", icons.DeviceBrightnessAuto},
618	{"DeviceBrightnessHigh", icons.DeviceBrightnessHigh},
619	{"DeviceBrightnessLow", icons.DeviceBrightnessLow},
620	{"DeviceBrightnessMedium", icons.DeviceBrightnessMedium},
621	{"DeviceDataUsage", icons.DeviceDataUsage},
622	{"DeviceDeveloperMode", icons.DeviceDeveloperMode},
623	{"DeviceDevices", icons.DeviceDevices},
624	{"DeviceDVR", icons.DeviceDVR},
625	{"DeviceGPSFixed", icons.DeviceGPSFixed},
626	{"DeviceGPSNotFixed", icons.DeviceGPSNotFixed},
627	{"DeviceGPSOff", icons.DeviceGPSOff},
628	{"DeviceGraphicEq", icons.DeviceGraphicEq},
629	{"DeviceLocationDisabled", icons.DeviceLocationDisabled},
630	{"DeviceLocationSearching", icons.DeviceLocationSearching},
631	{"DeviceNetworkCell", icons.DeviceNetworkCell},
632	{"DeviceNetworkWiFi", icons.DeviceNetworkWiFi},
633	{"DeviceNFC", icons.DeviceNFC},
634	{"DeviceScreenLockLandscape", icons.DeviceScreenLockLandscape},
635	{"DeviceScreenLockPortrait", icons.DeviceScreenLockPortrait},
636	{"DeviceScreenLockRotation", icons.DeviceScreenLockRotation},
637	{"DeviceScreenRotation", icons.DeviceScreenRotation},
638	{"DeviceSDStorage", icons.DeviceSDStorage},
639	{"DeviceSettingsSystemDaydream", icons.DeviceSettingsSystemDaydream},
640	{"DeviceSignalCellular0Bar", icons.DeviceSignalCellular0Bar},
641	{"DeviceSignalCellular1Bar", icons.DeviceSignalCellular1Bar},
642	{"DeviceSignalCellular2Bar", icons.DeviceSignalCellular2Bar},
643	{"DeviceSignalCellular3Bar", icons.DeviceSignalCellular3Bar},
644	{"DeviceSignalCellular4Bar", icons.DeviceSignalCellular4Bar},
645	{"DeviceSignalCellularConnectedNoInternet0Bar", icons.DeviceSignalCellularConnectedNoInternet0Bar},
646	{"DeviceSignalCellularConnectedNoInternet1Bar", icons.DeviceSignalCellularConnectedNoInternet1Bar},
647	{"DeviceSignalCellularConnectedNoInternet2Bar", icons.DeviceSignalCellularConnectedNoInternet2Bar},
648	{"DeviceSignalCellularConnectedNoInternet3Bar", icons.DeviceSignalCellularConnectedNoInternet3Bar},
649	{"DeviceSignalCellularConnectedNoInternet4Bar", icons.DeviceSignalCellularConnectedNoInternet4Bar},
650	{"DeviceSignalCellularNoSIM", icons.DeviceSignalCellularNoSIM},
651	{"DeviceSignalCellularNull", icons.DeviceSignalCellularNull},
652	{"DeviceSignalCellularOff", icons.DeviceSignalCellularOff},
653	{"DeviceSignalWiFi0Bar", icons.DeviceSignalWiFi0Bar},
654	{"DeviceSignalWiFi1Bar", icons.DeviceSignalWiFi1Bar},
655	{"DeviceSignalWiFi1BarLock", icons.DeviceSignalWiFi1BarLock},
656	{"DeviceSignalWiFi2Bar", icons.DeviceSignalWiFi2Bar},
657	{"DeviceSignalWiFi2BarLock", icons.DeviceSignalWiFi2BarLock},
658	{"DeviceSignalWiFi3Bar", icons.DeviceSignalWiFi3Bar},
659	{"DeviceSignalWiFi3BarLock", icons.DeviceSignalWiFi3BarLock},
660	{"DeviceSignalWiFi4Bar", icons.DeviceSignalWiFi4Bar},
661	{"DeviceSignalWiFi4BarLock", icons.DeviceSignalWiFi4BarLock},
662	{"DeviceSignalWiFiOff", icons.DeviceSignalWiFiOff},
663	{"DeviceStorage", icons.DeviceStorage},
664	{"DeviceUSB", icons.DeviceUSB},
665	{"DeviceWallpaper", icons.DeviceWallpaper},
666	{"DeviceWidgets", icons.DeviceWidgets},
667	{"DeviceWiFiLock", icons.DeviceWiFiLock},
668	{"DeviceWiFiTethering", icons.DeviceWiFiTethering},
669	{"EditorAttachFile", icons.EditorAttachFile},
670	{"EditorAttachMoney", icons.EditorAttachMoney},
671	{"EditorBorderAll", icons.EditorBorderAll},
672	{"EditorBorderBottom", icons.EditorBorderBottom},
673	{"EditorBorderClear", icons.EditorBorderClear},
674	{"EditorBorderColor", icons.EditorBorderColor},
675	{"EditorBorderHorizontal", icons.EditorBorderHorizontal},
676	{"EditorBorderInner", icons.EditorBorderInner},
677	{"EditorBorderLeft", icons.EditorBorderLeft},
678	{"EditorBorderOuter", icons.EditorBorderOuter},
679	{"EditorBorderRight", icons.EditorBorderRight},
680	{"EditorBorderStyle", icons.EditorBorderStyle},
681	{"EditorBorderTop", icons.EditorBorderTop},
682	{"EditorBorderVertical", icons.EditorBorderVertical},
683	{"EditorBubbleChart", icons.EditorBubbleChart},
684	{"EditorDragHandle", icons.EditorDragHandle},
685	{"EditorFormatAlignCenter", icons.EditorFormatAlignCenter},
686	{"EditorFormatAlignJustify", icons.EditorFormatAlignJustify},
687	{"EditorFormatAlignLeft", icons.EditorFormatAlignLeft},
688	{"EditorFormatAlignRight", icons.EditorFormatAlignRight},
689	{"EditorFormatBold", icons.EditorFormatBold},
690	{"EditorFormatClear", icons.EditorFormatClear},
691	{"EditorFormatColorFill", icons.EditorFormatColorFill},
692	{"EditorFormatColorReset", icons.EditorFormatColorReset},
693	{"EditorFormatColorText", icons.EditorFormatColorText},
694	{"EditorFormatIndentDecrease", icons.EditorFormatIndentDecrease},
695	{"EditorFormatIndentIncrease", icons.EditorFormatIndentIncrease},
696	{"EditorFormatItalic", icons.EditorFormatItalic},
697	{"EditorFormatLineSpacing", icons.EditorFormatLineSpacing},
698	{"EditorFormatListBulleted", icons.EditorFormatListBulleted},
699	{"EditorFormatListNumbered", icons.EditorFormatListNumbered},
700	{"EditorFormatPaint", icons.EditorFormatPaint},
701	{"EditorFormatQuote", icons.EditorFormatQuote},
702	{"EditorFormatShapes", icons.EditorFormatShapes},
703	{"EditorFormatSize", icons.EditorFormatSize},
704	{"EditorFormatStrikethrough", icons.EditorFormatStrikethrough},
705	{"EditorFormatTextDirectionLToR", icons.EditorFormatTextDirectionLToR},
706	{"EditorFormatTextDirectionRToL", icons.EditorFormatTextDirectionRToL},
707	{"EditorFormatUnderlined", icons.EditorFormatUnderlined},
708	{"EditorFunctions", icons.EditorFunctions},
709	{"EditorHighlight", icons.EditorHighlight},
710	{"EditorInsertChart", icons.EditorInsertChart},
711	{"EditorInsertComment", icons.EditorInsertComment},
712	{"EditorInsertDriveFile", icons.EditorInsertDriveFile},
713	{"EditorInsertEmoticon", icons.EditorInsertEmoticon},
714	{"EditorInsertInvitation", icons.EditorInsertInvitation},
715	{"EditorInsertLink", icons.EditorInsertLink},
716	{"EditorInsertPhoto", icons.EditorInsertPhoto},
717	{"EditorLinearScale", icons.EditorLinearScale},
718	{"EditorMergeType", icons.EditorMergeType},
719	{"EditorModeComment", icons.EditorModeComment},
720	{"EditorModeEdit", icons.EditorModeEdit},
721	{"EditorMonetizationOn", icons.EditorMonetizationOn},
722	{"EditorMoneyOff", icons.EditorMoneyOff},
723	{"EditorMultilineChart", icons.EditorMultilineChart},
724	{"EditorPieChart", icons.EditorPieChart},
725	{"EditorPieChartOutlined", icons.EditorPieChartOutlined},
726	{"EditorPublish", icons.EditorPublish},
727	{"EditorShortText", icons.EditorShortText},
728	{"EditorShowChart", icons.EditorShowChart},
729	{"EditorSpaceBar", icons.EditorSpaceBar},
730	{"EditorStrikethroughS", icons.EditorStrikethroughS},
731	{"EditorTextFields", icons.EditorTextFields},
732	{"EditorTitle", icons.EditorTitle},
733	{"EditorVerticalAlignBottom", icons.EditorVerticalAlignBottom},
734	{"EditorVerticalAlignCenter", icons.EditorVerticalAlignCenter},
735	{"EditorVerticalAlignTop", icons.EditorVerticalAlignTop},
736	{"EditorWrapText", icons.EditorWrapText},
737	{"FileAttachment", icons.FileAttachment},
738	{"FileCloud", icons.FileCloud},
739	{"FileCloudCircle", icons.FileCloudCircle},
740	{"FileCloudDone", icons.FileCloudDone},
741	{"FileCloudDownload", icons.FileCloudDownload},
742	{"FileCloudOff", icons.FileCloudOff},
743	{"FileCloudQueue", icons.FileCloudQueue},
744	{"FileCloudUpload", icons.FileCloudUpload},
745	{"FileCreateNewFolder", icons.FileCreateNewFolder},
746	{"FileFileDownload", icons.FileFileDownload},
747	{"FileFileUpload", icons.FileFileUpload},
748	{"FileFolder", icons.FileFolder},
749	{"FileFolderOpen", icons.FileFolderOpen},
750	{"FileFolderShared", icons.FileFolderShared},
751	{"HardwareCast", icons.HardwareCast},
752	{"HardwareCastConnected", icons.HardwareCastConnected},
753	{"HardwareComputer", icons.HardwareComputer},
754	{"HardwareDesktopMac", icons.HardwareDesktopMac},
755	{"HardwareDesktopWindows", icons.HardwareDesktopWindows},
756	{"HardwareDeveloperBoard", icons.HardwareDeveloperBoard},
757	{"HardwareDeviceHub", icons.HardwareDeviceHub},
758	{"HardwareDevicesOther", icons.HardwareDevicesOther},
759	{"HardwareDock", icons.HardwareDock},
760	{"HardwareGamepad", icons.HardwareGamepad},
761	{"HardwareHeadset", icons.HardwareHeadset},
762	{"HardwareHeadsetMic", icons.HardwareHeadsetMic},
763	{"HardwareKeyboard", icons.HardwareKeyboard},
764	{"HardwareKeyboardArrowDown", icons.HardwareKeyboardArrowDown},
765	{"HardwareKeyboardArrowLeft", icons.HardwareKeyboardArrowLeft},
766	{"HardwareKeyboardArrowRight", icons.HardwareKeyboardArrowRight},
767	{"HardwareKeyboardArrowUp", icons.HardwareKeyboardArrowUp},
768	{"HardwareKeyboardBackspace", icons.HardwareKeyboardBackspace},
769	{"HardwareKeyboardCapslock", icons.HardwareKeyboardCapslock},
770	{"HardwareKeyboardHide", icons.HardwareKeyboardHide},
771	{"HardwareKeyboardReturn", icons.HardwareKeyboardReturn},
772	{"HardwareKeyboardTab", icons.HardwareKeyboardTab},
773	{"HardwareKeyboardVoice", icons.HardwareKeyboardVoice},
774	{"HardwareLaptop", icons.HardwareLaptop},
775	{"HardwareLaptopChromebook", icons.HardwareLaptopChromebook},
776	{"HardwareLaptopMac", icons.HardwareLaptopMac},
777	{"HardwareLaptopWindows", icons.HardwareLaptopWindows},
778	{"HardwareMemory", icons.HardwareMemory},
779	{"HardwareMouse", icons.HardwareMouse},
780	{"HardwarePhoneAndroid", icons.HardwarePhoneAndroid},
781	{"HardwarePhoneIPhone", icons.HardwarePhoneIPhone},
782	{"HardwarePhoneLink", icons.HardwarePhoneLink},
783	{"HardwarePhoneLinkOff", icons.HardwarePhoneLinkOff},
784	{"HardwarePowerInput", icons.HardwarePowerInput},
785	{"HardwareRouter", icons.HardwareRouter},
786	{"HardwareScanner", icons.HardwareScanner},
787	{"HardwareSecurity", icons.HardwareSecurity},
788	{"HardwareSIMCard", icons.HardwareSIMCard},
789	{"HardwareSmartphone", icons.HardwareSmartphone},
790	{"HardwareSpeaker", icons.HardwareSpeaker},
791	{"HardwareSpeakerGroup", icons.HardwareSpeakerGroup},
792	{"HardwareTablet", icons.HardwareTablet},
793	{"HardwareTabletAndroid", icons.HardwareTabletAndroid},
794	{"HardwareTabletMac", icons.HardwareTabletMac},
795	{"HardwareToys", icons.HardwareToys},
796	{"HardwareTV", icons.HardwareTV},
797	{"HardwareVideogameAsset", icons.HardwareVideogameAsset},
798	{"HardwareWatch", icons.HardwareWatch},
799	{"ImageAddAPhoto", icons.ImageAddAPhoto},
800	{"ImageAddToPhotos", icons.ImageAddToPhotos},
801	{"ImageAdjust", icons.ImageAdjust},
802	{"ImageAssistant", icons.ImageAssistant},
803	{"ImageAssistantPhoto", icons.ImageAssistantPhoto},
804	{"ImageAudiotrack", icons.ImageAudiotrack},
805	{"ImageBlurCircular", icons.ImageBlurCircular},
806	{"ImageBlurLinear", icons.ImageBlurLinear},
807	{"ImageBlurOff", icons.ImageBlurOff},
808	{"ImageBlurOn", icons.ImageBlurOn},
809	{"ImageBrightness1", icons.ImageBrightness1},
810	{"ImageBrightness2", icons.ImageBrightness2},
811	{"ImageBrightness3", icons.ImageBrightness3},
812	{"ImageBrightness4", icons.ImageBrightness4},
813	{"ImageBrightness5", icons.ImageBrightness5},
814	{"ImageBrightness6", icons.ImageBrightness6},
815	{"ImageBrightness7", icons.ImageBrightness7},
816	{"ImageBrokenImage", icons.ImageBrokenImage},
817	{"ImageBrush", icons.ImageBrush},
818	{"ImageBurstMode", icons.ImageBurstMode},
819	{"ImageCamera", icons.ImageCamera},
820	{"ImageCameraAlt", icons.ImageCameraAlt},
821	{"ImageCameraFront", icons.ImageCameraFront},
822	{"ImageCameraRear", icons.ImageCameraRear},
823	{"ImageCameraRoll", icons.ImageCameraRoll},
824	{"ImageCenterFocusStrong", icons.ImageCenterFocusStrong},
825	{"ImageCenterFocusWeak", icons.ImageCenterFocusWeak},
826	{"ImageCollections", icons.ImageCollections},
827	{"ImageCollectionsBookmark", icons.ImageCollectionsBookmark},
828	{"ImageColorLens", icons.ImageColorLens},
829	{"ImageColorize", icons.ImageColorize},
830	{"ImageCompare", icons.ImageCompare},
831	{"ImageControlPoint", icons.ImageControlPoint},
832	{"ImageControlPointDuplicate", icons.ImageControlPointDuplicate},
833	{"ImageCrop", icons.ImageCrop},
834	{"ImageCrop169", icons.ImageCrop169},
835	{"ImageCrop32", icons.ImageCrop32},
836	{"ImageCrop54", icons.ImageCrop54},
837	{"ImageCrop75", icons.ImageCrop75},
838	{"ImageCropDIN", icons.ImageCropDIN},
839	{"ImageCropFree", icons.ImageCropFree},
840	{"ImageCropLandscape", icons.ImageCropLandscape},
841	{"ImageCropOriginal", icons.ImageCropOriginal},
842	{"ImageCropPortrait", icons.ImageCropPortrait},
843	{"ImageCropRotate", icons.ImageCropRotate},
844	{"ImageCropSquare", icons.ImageCropSquare},
845	{"ImageDehaze", icons.ImageDehaze},
846	{"ImageDetails", icons.ImageDetails},
847	{"ImageEdit", icons.ImageEdit},
848	{"ImageExposure", icons.ImageExposure},
849	{"ImageExposureNeg1", icons.ImageExposureNeg1},
850	{"ImageExposureNeg2", icons.ImageExposureNeg2},
851	{"ImageExposurePlus1", icons.ImageExposurePlus1},
852	{"ImageExposurePlus2", icons.ImageExposurePlus2},
853	{"ImageExposureZero", icons.ImageExposureZero},
854	{"ImageFilter", icons.ImageFilter},
855	{"ImageFilter1", icons.ImageFilter1},
856	{"ImageFilter2", icons.ImageFilter2},
857	{"ImageFilter3", icons.ImageFilter3},
858	{"ImageFilter4", icons.ImageFilter4},
859	{"ImageFilter5", icons.ImageFilter5},
860	{"ImageFilter6", icons.ImageFilter6},
861	{"ImageFilter7", icons.ImageFilter7},
862	{"ImageFilter8", icons.ImageFilter8},
863	{"ImageFilter9", icons.ImageFilter9},
864	{"ImageFilter9Plus", icons.ImageFilter9Plus},
865	{"ImageFilterBAndW", icons.ImageFilterBAndW},
866	{"ImageFilterCenterFocus", icons.ImageFilterCenterFocus},
867	{"ImageFilterDrama", icons.ImageFilterDrama},
868	{"ImageFilterFrames", icons.ImageFilterFrames},
869	{"ImageFilterHDR", icons.ImageFilterHDR},
870	{"ImageFilterNone", icons.ImageFilterNone},
871	{"ImageFilterTiltShift", icons.ImageFilterTiltShift},
872	{"ImageFilterVintage", icons.ImageFilterVintage},
873	{"ImageFlare", icons.ImageFlare},
874	{"ImageFlashAuto", icons.ImageFlashAuto},
875	{"ImageFlashOff", icons.ImageFlashOff},
876	{"ImageFlashOn", icons.ImageFlashOn},
877	{"ImageFlip", icons.ImageFlip},
878	{"ImageGradient", icons.ImageGradient},
879	{"ImageGrain", icons.ImageGrain},
880	{"ImageGridOff", icons.ImageGridOff},
881	{"ImageGridOn", icons.ImageGridOn},
882	{"ImageHDROff", icons.ImageHDROff},
883	{"ImageHDROn", icons.ImageHDROn},
884	{"ImageHDRStrong", icons.ImageHDRStrong},
885	{"ImageHDRWeak", icons.ImageHDRWeak},
886	{"ImageHealing", icons.ImageHealing},
887	{"ImageImage", icons.ImageImage},
888	{"ImageImageAspectRatio", icons.ImageImageAspectRatio},
889	{"ImageISO", icons.ImageISO},
890	{"ImageLandscape", icons.ImageLandscape},
891	{"ImageLeakAdd", icons.ImageLeakAdd},
892	{"ImageLeakRemove", icons.ImageLeakRemove},
893	{"ImageLens", icons.ImageLens},
894	{"ImageLinkedCamera", icons.ImageLinkedCamera},
895	{"ImageLooks", icons.ImageLooks},
896	{"ImageLooks3", icons.ImageLooks3},
897	{"ImageLooks4", icons.ImageLooks4},
898	{"ImageLooks5", icons.ImageLooks5},
899	{"ImageLooks6", icons.ImageLooks6},
900	{"ImageLooksOne", icons.ImageLooksOne},
901	{"ImageLooksTwo", icons.ImageLooksTwo},
902	{"ImageLoupe", icons.ImageLoupe},
903	{"ImageMonochromePhotos", icons.ImageMonochromePhotos},
904	{"ImageMovieCreation", icons.ImageMovieCreation},
905	{"ImageMovieFilter", icons.ImageMovieFilter},
906	{"ImageMusicNote", icons.ImageMusicNote},
907	{"ImageNature", icons.ImageNature},
908	{"ImageNaturePeople", icons.ImageNaturePeople},
909	{"ImageNavigateBefore", icons.ImageNavigateBefore},
910	{"ImageNavigateNext", icons.ImageNavigateNext},
911	{"ImagePalette", icons.ImagePalette},
912	{"ImagePanorama", icons.ImagePanorama},
913	{"ImagePanoramaFishEye", icons.ImagePanoramaFishEye},
914	{"ImagePanoramaHorizontal", icons.ImagePanoramaHorizontal},
915	{"ImagePanoramaVertical", icons.ImagePanoramaVertical},
916	{"ImagePanoramaWideAngle", icons.ImagePanoramaWideAngle},
917	{"ImagePhoto", icons.ImagePhoto},
918	{"ImagePhotoAlbum", icons.ImagePhotoAlbum},
919	{"ImagePhotoCamera", icons.ImagePhotoCamera},
920	{"ImagePhotoFilter", icons.ImagePhotoFilter},
921	{"ImagePhotoLibrary", icons.ImagePhotoLibrary},
922	{"ImagePhotoSizeSelectActual", icons.ImagePhotoSizeSelectActual},
923	{"ImagePhotoSizeSelectLarge", icons.ImagePhotoSizeSelectLarge},
924	{"ImagePhotoSizeSelectSmall", icons.ImagePhotoSizeSelectSmall},
925	{"ImagePictureAsPDF", icons.ImagePictureAsPDF},
926	{"ImagePortrait", icons.ImagePortrait},
927	{"ImageRemoveRedEye", icons.ImageRemoveRedEye},
928	{"ImageRotate90DegreesCCW", icons.ImageRotate90DegreesCCW},
929	{"ImageRotateLeft", icons.ImageRotateLeft},
930	{"ImageRotateRight", icons.ImageRotateRight},
931	{"ImageSlideshow", icons.ImageSlideshow},
932	{"ImageStraighten", icons.ImageStraighten},
933	{"ImageStyle", icons.ImageStyle},
934	{"ImageSwitchCamera", icons.ImageSwitchCamera},
935	{"ImageSwitchVideo", icons.ImageSwitchVideo},
936	{"ImageTagFaces", icons.ImageTagFaces},
937	{"ImageTexture", icons.ImageTexture},
938	{"ImageTimeLapse", icons.ImageTimeLapse},
939	{"ImageTimer", icons.ImageTimer},
940	{"ImageTimer10", icons.ImageTimer10},
941	{"ImageTimer3", icons.ImageTimer3},
942	{"ImageTimerOff", icons.ImageTimerOff},
943	{"ImageTonality", icons.ImageTonality},
944	{"ImageTransform", icons.ImageTransform},
945	{"ImageTune", icons.ImageTune},
946	{"ImageViewComfy", icons.ImageViewComfy},
947	{"ImageViewCompact", icons.ImageViewCompact},
948	{"ImageVignette", icons.ImageVignette},
949	{"ImageWBAuto", icons.ImageWBAuto},
950	{"ImageWBCloudy", icons.ImageWBCloudy},
951	{"ImageWBIncandescent", icons.ImageWBIncandescent},
952	{"ImageWBIridescent", icons.ImageWBIridescent},
953	{"ImageWBSunny", icons.ImageWBSunny},
954	{"MapsAddLocation", icons.MapsAddLocation},
955	{"MapsBeenhere", icons.MapsBeenhere},
956	{"MapsDirections", icons.MapsDirections},
957	{"MapsDirectionsBike", icons.MapsDirectionsBike},
958	{"MapsDirectionsBoat", icons.MapsDirectionsBoat},
959	{"MapsDirectionsBus", icons.MapsDirectionsBus},
960	{"MapsDirectionsCar", icons.MapsDirectionsCar},
961	{"MapsDirectionsRailway", icons.MapsDirectionsRailway},
962	{"MapsDirectionsRun", icons.MapsDirectionsRun},
963	{"MapsDirectionsSubway", icons.MapsDirectionsSubway},
964	{"MapsDirectionsTransit", icons.MapsDirectionsTransit},
965	{"MapsDirectionsWalk", icons.MapsDirectionsWalk},
966	{"MapsEditLocation", icons.MapsEditLocation},
967	{"MapsEVStation", icons.MapsEVStation},
968	{"MapsFlight", icons.MapsFlight},
969	{"MapsHotel", icons.MapsHotel},
970	{"MapsLayers", icons.MapsLayers},
971	{"MapsLayersClear", icons.MapsLayersClear},
972	{"MapsLocalActivity", icons.MapsLocalActivity},
973	{"MapsLocalAirport", icons.MapsLocalAirport},
974	{"MapsLocalATM", icons.MapsLocalATM},
975	{"MapsLocalBar", icons.MapsLocalBar},
976	{"MapsLocalCafe", icons.MapsLocalCafe},
977	{"MapsLocalCarWash", icons.MapsLocalCarWash},
978	{"MapsLocalConvenienceStore", icons.MapsLocalConvenienceStore},
979	{"MapsLocalDining", icons.MapsLocalDining},
980	{"MapsLocalDrink", icons.MapsLocalDrink},
981	{"MapsLocalFlorist", icons.MapsLocalFlorist},
982	{"MapsLocalGasStation", icons.MapsLocalGasStation},
983	{"MapsLocalGroceryStore", icons.MapsLocalGroceryStore},
984	{"MapsLocalHospital", icons.MapsLocalHospital},
985	{"MapsLocalHotel", icons.MapsLocalHotel},
986	{"MapsLocalLaundryService", icons.MapsLocalLaundryService},
987	{"MapsLocalLibrary", icons.MapsLocalLibrary},
988	{"MapsLocalMall", icons.MapsLocalMall},
989	{"MapsLocalMovies", icons.MapsLocalMovies},
990	{"MapsLocalOffer", icons.MapsLocalOffer},
991	{"MapsLocalParking", icons.MapsLocalParking},
992	{"MapsLocalPharmacy", icons.MapsLocalPharmacy},
993	{"MapsLocalPhone", icons.MapsLocalPhone},
994	{"MapsLocalPizza", icons.MapsLocalPizza},
995	{"MapsLocalPlay", icons.MapsLocalPlay},
996	{"MapsLocalPostOffice", icons.MapsLocalPostOffice},
997	{"MapsLocalPrintshop", icons.MapsLocalPrintshop},
998	{"MapsLocalSee", icons.MapsLocalSee},
999	{"MapsLocalShipping", icons.MapsLocalShipping},
1000	{"MapsLocalTaxi", icons.MapsLocalTaxi},
1001	{"MapsMap", icons.MapsMap},
1002	{"MapsMyLocation", icons.MapsMyLocation},
1003	{"MapsNavigation", icons.MapsNavigation},
1004	{"MapsNearMe", icons.MapsNearMe},
1005	{"MapsPersonPin", icons.MapsPersonPin},
1006	{"MapsPersonPinCircle", icons.MapsPersonPinCircle},
1007	{"MapsPinDrop", icons.MapsPinDrop},
1008	{"MapsPlace", icons.MapsPlace},
1009	{"MapsRateReview", icons.MapsRateReview},
1010	{"MapsRestaurant", icons.MapsRestaurant},
1011	{"MapsRestaurantMenu", icons.MapsRestaurantMenu},
1012	{"MapsSatellite", icons.MapsSatellite},
1013	{"MapsStoreMallDirectory", icons.MapsStoreMallDirectory},
1014	{"MapsStreetView", icons.MapsStreetView},
1015	{"MapsSubway", icons.MapsSubway},
1016	{"MapsTerrain", icons.MapsTerrain},
1017	{"MapsTraffic", icons.MapsTraffic},
1018	{"MapsTrain", icons.MapsTrain},
1019	{"MapsTram", icons.MapsTram},
1020	{"MapsTransferWithinAStation", icons.MapsTransferWithinAStation},
1021	{"MapsZoomOutMap", icons.MapsZoomOutMap},
1022	{"NavigationApps", icons.NavigationApps},
1023	{"NavigationArrowBack", icons.NavigationArrowBack},
1024	{"NavigationArrowDownward", icons.NavigationArrowDownward},
1025	{"NavigationArrowDropDown", icons.NavigationArrowDropDown},
1026	{"NavigationArrowDropDownCircle", icons.NavigationArrowDropDownCircle},
1027	{"NavigationArrowDropUp", icons.NavigationArrowDropUp},
1028	{"NavigationArrowForward", icons.NavigationArrowForward},
1029	{"NavigationArrowUpward", icons.NavigationArrowUpward},
1030	{"NavigationCancel", icons.NavigationCancel},
1031	{"NavigationCheck", icons.NavigationCheck},
1032	{"NavigationChevronLeft", icons.NavigationChevronLeft},
1033	{"NavigationChevronRight", icons.NavigationChevronRight},
1034	{"NavigationClose", icons.NavigationClose},
1035	{"NavigationExpandLess", icons.NavigationExpandLess},
1036	{"NavigationExpandMore", icons.NavigationExpandMore},
1037	{"NavigationFirstPage", icons.NavigationFirstPage},
1038	{"NavigationFullscreen", icons.NavigationFullscreen},
1039	{"NavigationFullscreenExit", icons.NavigationFullscreenExit},
1040	{"NavigationLastPage", icons.NavigationLastPage},
1041	{"NavigationMenu", icons.NavigationMenu},
1042	{"NavigationMoreHoriz", icons.NavigationMoreHoriz},
1043	{"NavigationMoreVert", icons.NavigationMoreVert},
1044	{"NavigationRefresh", icons.NavigationRefresh},
1045	{"NavigationSubdirectoryArrowLeft", icons.NavigationSubdirectoryArrowLeft},
1046	{"NavigationSubdirectoryArrowRight", icons.NavigationSubdirectoryArrowRight},
1047	{"NavigationUnfoldLess", icons.NavigationUnfoldLess},
1048	{"NavigationUnfoldMore", icons.NavigationUnfoldMore},
1049	{"NotificationADB", icons.NotificationADB},
1050	{"NotificationAirlineSeatFlat", icons.NotificationAirlineSeatFlat},
1051	{"NotificationAirlineSeatFlatAngled", icons.NotificationAirlineSeatFlatAngled},
1052	{"NotificationAirlineSeatIndividualSuite", icons.NotificationAirlineSeatIndividualSuite},
1053	{"NotificationAirlineSeatLegroomExtra", icons.NotificationAirlineSeatLegroomExtra},
1054	{"NotificationAirlineSeatLegroomNormal", icons.NotificationAirlineSeatLegroomNormal},
1055	{"NotificationAirlineSeatLegroomReduced", icons.NotificationAirlineSeatLegroomReduced},
1056	{"NotificationAirlineSeatReclineExtra", icons.NotificationAirlineSeatReclineExtra},
1057	{"NotificationAirlineSeatReclineNormal", icons.NotificationAirlineSeatReclineNormal},
1058	{"NotificationBluetoothAudio", icons.NotificationBluetoothAudio},
1059	{"NotificationConfirmationNumber", icons.NotificationConfirmationNumber},
1060	{"NotificationDiscFull", icons.NotificationDiscFull},
1061	{"NotificationDoNotDisturb", icons.NotificationDoNotDisturb},
1062	{"NotificationDoNotDisturbAlt", icons.NotificationDoNotDisturbAlt},
1063	{"NotificationDoNotDisturbOff", icons.NotificationDoNotDisturbOff},
1064	{"NotificationDoNotDisturbOn", icons.NotificationDoNotDisturbOn},
1065	{"NotificationDriveETA", icons.NotificationDriveETA},
1066	{"NotificationEnhancedEncryption", icons.NotificationEnhancedEncryption},
1067	{"NotificationEventAvailable", icons.NotificationEventAvailable},
1068	{"NotificationEventBusy", icons.NotificationEventBusy},
1069	{"NotificationEventNote", icons.NotificationEventNote},
1070	{"NotificationFolderSpecial", icons.NotificationFolderSpecial},
1071	{"NotificationLiveTV", icons.NotificationLiveTV},
1072	{"NotificationMMS", icons.NotificationMMS},
1073	{"NotificationMore", icons.NotificationMore},
1074	{"NotificationNetworkCheck", icons.NotificationNetworkCheck},
1075	{"NotificationNetworkLocked", icons.NotificationNetworkLocked},
1076	{"NotificationNoEncryption", icons.NotificationNoEncryption},
1077	{"NotificationOnDemandVideo", icons.NotificationOnDemandVideo},
1078	{"NotificationPersonalVideo", icons.NotificationPersonalVideo},
1079	{"NotificationPhoneBluetoothSpeaker", icons.NotificationPhoneBluetoothSpeaker},
1080	{"NotificationPhoneForwarded", icons.NotificationPhoneForwarded},
1081	{"NotificationPhoneInTalk", icons.NotificationPhoneInTalk},
1082	{"NotificationPhoneLocked", icons.NotificationPhoneLocked},
1083	{"NotificationPhoneMissed", icons.NotificationPhoneMissed},
1084	{"NotificationPhonePaused", icons.NotificationPhonePaused},
1085	{"NotificationPower", icons.NotificationPower},
1086	{"NotificationPriorityHigh", icons.NotificationPriorityHigh},
1087	{"NotificationRVHookup", icons.NotificationRVHookup},
1088	{"NotificationSDCard", icons.NotificationSDCard},
1089	{"NotificationSIMCardAlert", icons.NotificationSIMCardAlert},
1090	{"NotificationSMS", icons.NotificationSMS},
1091	{"NotificationSMSFailed", icons.NotificationSMSFailed},
1092	{"NotificationSync", icons.NotificationSync},
1093	{"NotificationSyncDisabled", icons.NotificationSyncDisabled},
1094	{"NotificationSyncProblem", icons.NotificationSyncProblem},
1095	{"NotificationSystemUpdate", icons.NotificationSystemUpdate},
1096	{"NotificationTapAndPlay", icons.NotificationTapAndPlay},
1097	{"NotificationTimeToLeave", icons.NotificationTimeToLeave},
1098	{"NotificationVibration", icons.NotificationVibration},
1099	{"NotificationVoiceChat", icons.NotificationVoiceChat},
1100	{"NotificationVPNLock", icons.NotificationVPNLock},
1101	{"NotificationWC", icons.NotificationWC},
1102	{"NotificationWiFi", icons.NotificationWiFi},
1103	{"PlacesACUnit", icons.PlacesACUnit},
1104	{"PlacesAirportShuttle", icons.PlacesAirportShuttle},
1105	{"PlacesAllInclusive", icons.PlacesAllInclusive},
1106	{"PlacesBeachAccess", icons.PlacesBeachAccess},
1107	{"PlacesBusinessCenter", icons.PlacesBusinessCenter},
1108	{"PlacesCasino", icons.PlacesCasino},
1109	{"PlacesChildCare", icons.PlacesChildCare},
1110	{"PlacesChildFriendly", icons.PlacesChildFriendly},
1111	{"PlacesFitnessCenter", icons.PlacesFitnessCenter},
1112	{"PlacesFreeBreakfast", icons.PlacesFreeBreakfast},
1113	{"PlacesGolfCourse", icons.PlacesGolfCourse},
1114	{"PlacesHotTub", icons.PlacesHotTub},
1115	{"PlacesKitchen", icons.PlacesKitchen},
1116	{"PlacesPool", icons.PlacesPool},
1117	{"PlacesRoomService", icons.PlacesRoomService},
1118	{"PlacesRVHookup", icons.PlacesRVHookup},
1119	{"PlacesSmokeFree", icons.PlacesSmokeFree},
1120	{"PlacesSmokingRooms", icons.PlacesSmokingRooms},
1121	{"PlacesSpa", icons.PlacesSpa},
1122	{"SocialCake", icons.SocialCake},
1123	{"SocialDomain", icons.SocialDomain},
1124	{"SocialGroup", icons.SocialGroup},
1125	{"SocialGroupAdd", icons.SocialGroupAdd},
1126	{"SocialLocationCity", icons.SocialLocationCity},
1127	{"SocialMood", icons.SocialMood},
1128	{"SocialMoodBad", icons.SocialMoodBad},
1129	{"SocialNotifications", icons.SocialNotifications},
1130	{"SocialNotificationsActive", icons.SocialNotificationsActive},
1131	{"SocialNotificationsNone", icons.SocialNotificationsNone},
1132	{"SocialNotificationsOff", icons.SocialNotificationsOff},
1133	{"SocialNotificationsPaused", icons.SocialNotificationsPaused},
1134	{"SocialPages", icons.SocialPages},
1135	{"SocialPartyMode", icons.SocialPartyMode},
1136	{"SocialPeople", icons.SocialPeople},
1137	{"SocialPeopleOutline", icons.SocialPeopleOutline},
1138	{"SocialPerson", icons.SocialPerson},
1139	{"SocialPersonAdd", icons.SocialPersonAdd},
1140	{"SocialPersonOutline", icons.SocialPersonOutline},
1141	{"SocialPlusOne", icons.SocialPlusOne},
1142	{"SocialPoll", icons.SocialPoll},
1143	{"SocialPublic", icons.SocialPublic},
1144	{"SocialSchool", icons.SocialSchool},
1145	{"SocialSentimentDissatisfied", icons.SocialSentimentDissatisfied},
1146	{"SocialSentimentNeutral", icons.SocialSentimentNeutral},
1147	{"SocialSentimentSatisfied", icons.SocialSentimentSatisfied},
1148	{"SocialSentimentVeryDissatisfied", icons.SocialSentimentVeryDissatisfied},
1149	{"SocialSentimentVerySatisfied", icons.SocialSentimentVerySatisfied},
1150	{"SocialShare", icons.SocialShare},
1151	{"SocialWhatsHot", icons.SocialWhatsHot},
1152	{"ToggleCheckBox", icons.ToggleCheckBox},
1153	{"ToggleCheckBoxOutlineBlank", icons.ToggleCheckBoxOutlineBlank},
1154	{"ToggleIndeterminateCheckBox", icons.ToggleIndeterminateCheckBox},
1155	{"ToggleRadioButtonChecked", icons.ToggleRadioButtonChecked},
1156	{"ToggleRadioButtonUnchecked", icons.ToggleRadioButtonUnchecked},
1157	{"ToggleStar", icons.ToggleStar},
1158	{"ToggleStarBorder", icons.ToggleStarBorder},
1159	{"ToggleStarHalf", icons.ToggleStarHalf},
1160}
1161