搞这玩意的朋友,是不是头疼得不行?
领导让做个方案。
你说咋做?
脑子里一片空白。
网上搜了一大堆。
全是那种官腔十足的废话。
什么“顶层设计”啊,“全面深化”啊。
看了跟没看一样。
我就想问问。
咱们基层干活的人。
谁能整明白那些高大上的词?
其实吧。
这就跟装修房子似的。
别听装修公司吹啥“欧式宫廷风”。
你就问能不能住得舒服。
统计局这网站群。
也一样。
别整那些花里胡哨的动画。
数据加载慢得让人想砸电脑。
用户谁有时间等你转圈圈?
得实在。
真的得实在。
先说痛点。
很多单位的网站。
建的时候好看。
维护起来要命。
每个处室都想自己改点啥。
结果后台乱成一锅粥。
权限管不过来。
今天这个改错了。
明天那个发重复了。
这就是没个规矩。
所以啊。
做这个统计局网站群建设方案。
第一步。
得先把“家底”摸清。
别一上来就选服务器。
先看看你们单位现在有多少个子站。
有多少个栏目。
数据都在哪?
是散落在各个Excel里。
还是已经入了库?
这步很关键。
要是底数不清。
后面做得再好也是白搭。
就像盖楼。
地基没打好。
楼越高越容易塌。
再说技术选型。
别听那些卖软件的忽悠。
说什么“人工智能大数据赋能”。
拉倒吧。
对于统计业务来说。
稳定比什么都重要。
数据不能错。
一点都不能错。
错一个数。
那就是一场灾难。
所以。
架构要简练。
接口要标准。
别搞那些 proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary proprietary