{"version":1,"pages":[{"id":"-LjLtSYrWZfEK9uyb-C5","title":"README","pathname":"/go","siteSpaceId":"sitesp_TuFhH","description":""},{"id":"-LkLtJoI_4EqoHj-ErwP","title":"channel","pathname":"/go/channel","siteSpaceId":"sitesp_TuFhH","description":""},{"id":"-LkM85Kt0JHP1dw4xYuS","title":"06 - 从一个关闭的 channel 仍然能读出数据吗","pathname":"/go/channel/cong-yi-ge-guan-bi-de-channel-reng-ran-neng-du-chu-shu-ju-ma","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"channel"}]},{"id":"-LkM8n-VP0A-eFM_Slxr","title":"12 - channel 有哪些应用","pathname":"/go/channel/channel-you-na-xie-ying-yong","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"channel"}]},{"id":"-LkM8Ha6-363RihkNZtm","title":"08 - 如何优雅地关闭 channel","pathname":"/go/channel/ru-he-you-ya-di-guan-bi-channel","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"channel"}]},{"id":"-LkM8TVBSCyDaBbGoeP0","title":"10 - channel 在什么情况下会引起资源泄漏","pathname":"/go/channel/channel-zai-shi-mo-qing-kuang-xia-hui-yin-qi-zi-yuan-xie-lou","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"channel"}]},{"id":"-LkM75_7p6uahtBOxYWi","title":"00 - 什么是 CSP","pathname":"/go/channel/shi-mo-shi-csp","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"channel"}]},{"id":"-LkLwG1nwVhO3lgWH6fC","title":"channel 底层的数据结构是什么","pathname":"/go/channel/channel-di-ceng-de-shu-ju-jie-gou-shi-shi-mo","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"channel"}]},{"id":"-LkM8MVv58h8jfPe06dF","title":"09 - channel 发送和接收元素的本质是什么","pathname":"/go/channel/channel-fa-song-he-jie-shou-yuan-su-de-ben-zhi-shi-shi-mo","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"channel"}]},{"id":"-LkM8hQBhjjf2OKwngO9","title":"11 - 关于 channel 的 happened-before 有哪些","pathname":"/go/channel/guan-yu-channel-de-happenedbefore-you-na-xie","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"channel"}]},{"id":"-LkM7o3bOS2rbDjHr6IV","title":"04 - 向 channel 发送数据的过程是怎样的","pathname":"/go/channel/xiang-channel-fa-song-shu-ju-de-guo-cheng-shi-zen-yang-de","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"channel"}]},{"id":"-LkM7iRXJCc81GPuVOtz","title":"03 - 从 channel 接收数据的过程是怎样的","pathname":"/go/channel/cong-channel-jie-shou-shu-ju-de-guo-cheng-shi-zen-yang-de","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"channel"}]},{"id":"-LkM8AvPhtuwo7qMU9YI","title":"07 - 操作 channel 的情况总结","pathname":"/go/channel/cao-zuo-channel-de-qing-kuang-zong-jie","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"channel"}]},{"id":"-LkM7y46cuNvx6F15N7p","title":"05 - 关闭一个 channel 的过程是怎样的","pathname":"/go/channel/guan-bi-yi-ge-channel-de-guo-cheng-shi-zen-yang-de","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"channel"}]},{"id":"-LjM1edLeaqMX03dtz3_","title":"map","pathname":"/go/map","siteSpaceId":"sitesp_TuFhH","description":""},{"id":"-LjM1edIKx0m99NxqGp3","title":"map 的底层实现原理是什么","pathname":"/go/map/map-de-di-ceng-shi-xian-yuan-li-shi-shi-mo","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"map"}]},{"id":"-LjM1edSW1bzBacGeAA8","title":"可以边遍历边删除吗","pathname":"/go/map/ke-yi-bian-bian-li-bian-shan-chu-ma","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"map"}]},{"id":"-LjM1edVrBPU9iYjNjxK","title":"map 的删除过程是怎样的","pathname":"/go/map/map-de-shan-chu-guo-cheng-shi-zen-yang-de","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"map"}]},{"id":"-LjM1edfsKoU7Ykj52sd","title":"可以对 map 的元素取地址吗","pathname":"/go/map/ke-yi-dui-map-de-yuan-su-qu-di-zhi-ma","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"map"}]},{"id":"-LjM1ee6-FS57gRDpPNJ","title":"如何比较两个 map 相等","pathname":"/go/map/ru-he-bi-jiao-liang-ge-map-xiang-deng","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"map"}]},{"id":"-LjM1eeKHQ3ZZcIEhM3b","title":"如何实现两种 get 操作","pathname":"/go/map/ru-he-shi-xian-liang-zhong-get-cao-zuo","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"map"}]},{"id":"-LjM1eeTloHePrjdQN2d","title":"map 是线程安全的吗","pathname":"/go/map/map-shi-xian-cheng-an-quan-de-ma","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"map"}]},{"id":"-LjM1eecNaIz8Dm3kAyM","title":"map 的遍历过程是怎样的","pathname":"/go/map/map-de-bian-li-guo-cheng-shi-zen-yang-de","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"map"}]},{"id":"-LjM1eehVnGBfbHHMqS3","title":"map 中的 key 为什么是无序的","pathname":"/go/map/map-zhong-de-key-wei-shi-mo-shi-wu-xu-de","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"map"}]},{"id":"-LjM1eexpOXrVmE2cmDC","title":"float 类型可以作为 map 的 key 吗","pathname":"/go/map/float-lei-xing-ke-yi-zuo-wei-map-de-key-ma","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"map"}]},{"id":"-LjM1efHQQDd4j9Ad_-0","title":"map 的赋值过程是怎样的","pathname":"/go/map/map-de-fu-zhi-guo-cheng-shi-zen-yang-de","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"map"}]},{"id":"-LjM1efO0XM4J3cJtb1V","title":"map 的扩容过程是怎样的","pathname":"/go/map/map-de-kuo-rong-guo-cheng-shi-zen-yang-de","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"map"}]},{"id":"-LjM1edNdU-F-ZySEP-s","title":"interface","pathname":"/go/interface","siteSpaceId":"sitesp_TuFhH","description":""},{"id":"-LjM1edMYqITFSee9XFd","title":"iface 和 eface 的区别是什么","pathname":"/go/interface/iface-he-eface-de-qu-bie-shi-shi-mo","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"interface"}]},{"id":"-LjM1edREkU_r0W5bj7Y","title":"Go 接口与 C++ 接口有何异同","pathname":"/go/interface/go-jie-kou-yu-c++-jie-kou-you-he-yi-tong","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"interface"}]},{"id":"-LjM1edULboAD_hO_AQv","title":"如何用 interface 实现多态","pathname":"/go/interface/ru-he-yong-interface-shi-xian-duo-tai","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"interface"}]},{"id":"-LjM1edYSrhokVB0tV06","title":"接口转换的原理","pathname":"/go/interface/jie-kou-zhuan-huan-de-yuan-li","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"interface"}]},{"id":"-LjM1edZJPlRoFoobGa1","title":"Go 语言与鸭子类型的关系","pathname":"/go/interface/go-yu-yan-yu-ya-zi-lei-xing-de-guan-xi","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"interface"}]},{"id":"-LjM1edcxzhl4134KeHl","title":"值接收者和指针接收者的区别","pathname":"/go/interface/zhi-jie-shou-zhe-he-zhi-zhen-jie-shou-zhe-de-qu-bie","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"interface"}]},{"id":"-LjM1edtjlZyXwt8f-P9","title":"接口的构造过程是怎样的","pathname":"/go/interface/jie-kou-de-gou-zao-guo-cheng-shi-zen-yang-de","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"interface"}]},{"id":"-LjM1eePuYLxw26tSxWg","title":"编译器自动检测类型是否实现接口","pathname":"/go/interface/bian-yi-qi-zi-dong-jian-ce-lei-xing-shi-fou-shi-xian-jie-kou","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"interface"}]},{"id":"-LjM1eel45gbHzu1uYBj","title":"类型转换和断言的区别","pathname":"/go/interface/lei-xing-zhuan-huan-he-duan-yan-de-qu-bie","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"interface"}]},{"id":"-LjM1ef8yVO3pDPSAU_K","title":"接口的动态类型和动态值","pathname":"/go/interface/jie-kou-de-dong-tai-lei-xing-he-dong-tai-zhi","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"interface"}]},{"id":"-LjM1edQzLjjnOWmov9o","title":"标准库","pathname":"/go/biao-zhun-ku","siteSpaceId":"sitesp_TuFhH","description":""},{"id":"-LjM1edPRpOLZmRmZ2Zg","title":"context","pathname":"/go/biao-zhun-ku/context","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"标准库"}]},{"id":"-LjM1edOz1eERvl682Om","title":"context.Value 的查找过程是怎样的","pathname":"/go/biao-zhun-ku/context/context.value-de-cha-zhao-guo-cheng-shi-zen-yang-de","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"标准库"},{"label":"context"}]},{"id":"-LjM1edhwy1H9yuaA5XJ","title":"context 如何被取消","pathname":"/go/biao-zhun-ku/context/context-ru-he-bei-qu-xiao","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"标准库"},{"label":"context"}]},{"id":"-LjM1eesUT4Z3U8kHFyW","title":"context 有什么作用","pathname":"/go/biao-zhun-ku/context/context-you-shi-mo-zuo-yong","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"标准库"},{"label":"context"}]},{"id":"-LjM1efSJmsp0rxHHj23","title":"context 是什么","pathname":"/go/biao-zhun-ku/context/context-shi-shi-mo","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"标准库"},{"label":"context"}]},{"id":"-LjM1ee0t-egi1sdSXk3","title":"unsafe","pathname":"/go/biao-zhun-ku/unsafe","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"标准库"}]},{"id":"-LjM1edvVZ_Do31oGJwa","title":"如何利用unsafe包修改私有成员","pathname":"/go/biao-zhun-ku/unsafe/ru-he-li-yong-unsafe-bao-xiu-gai-si-you-cheng-yuan","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"标准库"},{"label":"unsafe"}]},{"id":"-LjM1eeHaPujqEsktfar","title":"Go指针和unsafe.Pointer有什么区别","pathname":"/go/biao-zhun-ku/unsafe/go-zhi-zhen-he-unsafe.pointer-you-shi-mo-qu-bie","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"标准库"},{"label":"unsafe"}]},{"id":"-LjM1eeo_MR6uoIG5u0b","title":"如何实现字符串和byte切片的零拷贝转换","pathname":"/go/biao-zhun-ku/unsafe/ru-he-shi-xian-zi-fu-chuan-he-byte-qie-pian-de-ling-kao-bei-zhuan-huan","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"标准库"},{"label":"unsafe"}]},{"id":"-LjM1efV37hlS0Nna-XP","title":"如何利用unsafe获取slice&map的长度","pathname":"/go/biao-zhun-ku/unsafe/ru-he-li-yong-unsafe-huo-qu-slicemap-de-chang-du","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"标准库"},{"label":"unsafe"}]},{"id":"-LoABMWLwXl7UvIAeOfp","title":"goroutine 调度器","pathname":"/go/goroutine-tiao-du-qi","siteSpaceId":"sitesp_TuFhH","description":""},{"id":"-LoABMWKy5q006484q_d","title":"M 如何找工作","pathname":"/go/goroutine-tiao-du-qi/m-ru-he-zhao-gong-zuo","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"goroutine 调度器"}]},{"id":"-LoABMWNV3vke7sx2GIB","title":"goroutine 调度时机有哪些","pathname":"/go/goroutine-tiao-du-qi/goroutine-tiao-du-shi-ji-you-na-xie","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"goroutine 调度器"}]},{"id":"-LoABMWmog7mYZ6JHfd1","title":"什么是 go shceduler","pathname":"/go/goroutine-tiao-du-qi/shi-mo-shi-go-shceduler","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"goroutine 调度器"}]},{"id":"-LoABMWoA-CvJ9aM-dHJ","title":"goroutine 如何退出","pathname":"/go/goroutine-tiao-du-qi/goroutine-ru-he-tui-chu","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"goroutine 调度器"}]},{"id":"-LoABMX-pkaKR66hhQ0d","title":"描述 scheduler 的初始化过程","pathname":"/go/goroutine-tiao-du-qi/miao-shu-scheduler-de-chu-shi-hua-guo-cheng","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"goroutine 调度器"}]},{"id":"-LoABMX4auq6z-syMJFB","title":"什么是workstealing","pathname":"/go/goroutine-tiao-du-qi/shi-mo-shi-workstealing","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"goroutine 调度器"}]},{"id":"-LoABMXwFqORahPRoFmV","title":"mian gorutine 如何创建","pathname":"/go/goroutine-tiao-du-qi/mian-gorutine-ru-he-chuang-jian","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"goroutine 调度器"}]},{"id":"-LoABMXznmaVmQrXkhUI","title":"什么是M:N模型","pathname":"/go/goroutine-tiao-du-qi/shi-mo-shi-mn-mo-xing","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"goroutine 调度器"}]},{"id":"-LoABMYR-I8HjxOb3Wb-","title":"g0 栈何用户栈如何切换","pathname":"/go/goroutine-tiao-du-qi/g0-zhan-he-yong-hu-zhan-ru-he-qie-huan","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"goroutine 调度器"}]},{"id":"-LoABMYctwdZjLokx6hV","title":"schedule 循环如何运转","pathname":"/go/goroutine-tiao-du-qi/schedule-xun-huan-ru-he-yun-zhuan","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"goroutine 调度器"}]},{"id":"-LoABMYxBd3ULS8PSW3N","title":"GPM 是什么","pathname":"/go/goroutine-tiao-du-qi/gpm-shi-shi-mo","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"goroutine 调度器"}]},{"id":"-LoABMZ-dQxjDDMdzOi8","title":"schedule 循环如何启动","pathname":"/go/goroutine-tiao-du-qi/schedule-xun-huan-ru-he-qi-dong","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"goroutine 调度器"}]},{"id":"-LoABMZ50mlJ4UGN-Ldx","title":"sysmon 后台监控线程做了什么","pathname":"/go/goroutine-tiao-du-qi/sysmon-hou-tai-jian-kong-xian-cheng-zuo-le-shi-mo","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"goroutine 调度器"}]},{"id":"-LoABMZ8QO29gxYOMsyo","title":"goroutine和线程的区别","pathname":"/go/goroutine-tiao-du-qi/goroutine-he-xian-cheng-de-qu-bie","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"goroutine 调度器"}]},{"id":"-LoABMZLRgmaEELRhsZN","title":"一个调度相关的陷阱","pathname":"/go/goroutine-tiao-du-qi/yi-ge-tiao-du-xiang-guan-de-xian-jing","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"goroutine 调度器"}]},{"id":"-LjM1edbv8XSAYs5RJu_","title":"编译和链接","pathname":"/go/bian-yi-he-lian-jie","siteSpaceId":"sitesp_TuFhH","description":""},{"id":"-LjM1eda8_AhLfHWoWHm","title":"逃逸分析是怎么进行的","pathname":"/go/bian-yi-he-lian-jie/tao-yi-fen-xi-shi-zen-mo-jin-hang-de","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"编译和链接"}]},{"id":"-LkMAPKxN2fm-WhG3PN2","title":"GoRoot 和 GoPath 有什么用","pathname":"/go/bian-yi-he-lian-jie/goroot-he-gopath-you-shi-mo-yong","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"编译和链接"}]},{"id":"-LkMDIQjPIgKaa5dD4yo","title":"Go 编译链接过程概述","pathname":"/go/bian-yi-he-lian-jie/go-bian-yi-lian-jie-guo-cheng-gai-shu","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"编译和链接"}]},{"id":"-LkMAuEPw8X8VtvI5cWi","title":"Go 编译相关的命令详解","pathname":"/go/bian-yi-he-lian-jie/go-bian-yi-xiang-guan-de-ming-ling-xiang-jie","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"编译和链接"}]},{"id":"-LkMDIRO6px9ii4kgeKy","title":"Go 程序启动过程是怎样的","pathname":"/go/bian-yi-he-lian-jie/go-cheng-xu-qi-dong-guo-cheng-shi-zen-yang-de","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"编译和链接"}]},{"id":"-LjM1edkkf_ycVOWgNZQ","title":"反射","pathname":"/go/fan-she","siteSpaceId":"sitesp_TuFhH","description":""},{"id":"-LjM1edjK7-3Gw2dN-bI","title":"Go 语言中反射有哪些应用","pathname":"/go/fan-she/go-yu-yan-zhong-fan-she-you-na-xie-ying-yong","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"反射"}]},{"id":"-LjM1edszIMkGMGW3NBg","title":"什么情况下需要使用反射","pathname":"/go/fan-she/shi-mo-qing-kuang-xia-xu-yao-shi-yong-fan-she","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"反射"}]},{"id":"-LjM1ee9qVge4frPrT93","title":"如何比较两个对象完全相同","pathname":"/go/fan-she/ru-he-bi-jiao-liang-ge-dui-xiang-wan-quan-xiang-tong","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"反射"}]},{"id":"-LjM1efCFFf64zQKLlIK","title":"Go 语言如何实现反射","pathname":"/go/fan-she/go-yu-yan-ru-he-shi-xian-fan-she","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"反射"}]},{"id":"-LjM1ef_Wmgt1RvydBYy","title":"什么是反射","pathname":"/go/fan-she/shi-mo-shi-fan-she","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"反射"}]},{"id":"-LjM1ee3mtngj4-7y_JG","title":"数组和切片","pathname":"/go/shu-zu-he-qie-pian","siteSpaceId":"sitesp_TuFhH","description":""},{"id":"-LjM1ee2V_0Z2C7CAjUX","title":"数组和切片有什么异同","pathname":"/go/shu-zu-he-qie-pian/shu-zu-he-qie-pian-you-shi-mo-yi-tong","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"数组和切片"}]},{"id":"-LjM1eeYAxslOzjLwQsf","title":"切片作为函数参数","pathname":"/go/shu-zu-he-qie-pian/qie-pian-zuo-wei-han-shu-can-shu","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"数组和切片"}]},{"id":"-LjM1efLtNs61pDRdQ1z","title":"切片的容量是怎样增长的","pathname":"/go/shu-zu-he-qie-pian/qie-pian-de-rong-liang-shi-zen-yang-zeng-chang-de","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"数组和切片"}]},{"id":"-LwO6wF0LFLQVMXbfVnx","title":"GC","pathname":"/go/gc","siteSpaceId":"sitesp_TuFhH","description":""},{"id":"-LwO6wEvWiqkcu_3H3fn","title":"GC","pathname":"/go/gc/gc","siteSpaceId":"sitesp_TuFhH","description":"","breadcrumbs":[{"label":"GC"}]}]}