Skip to content

Instantly share code, notes, and snippets.

@SQLKiwi SQLKiwi/Spooky.cs
Last active May 21, 2019

Embed
What would you like to do?
using Microsoft.SqlServer.Server;
using System.Data.HashFunction.SpookyHash;
using System.Data.SqlTypes;
public partial class UserDefinedFunctions
{
[SqlFunction
(
DataAccess = DataAccessKind.None,
SystemDataAccess = SystemDataAccessKind.None,
IsDeterministic = true,
IsPrecise = true
)
]
public static byte[] SpookyHash
(
[SqlFacet (MaxSize = 8000)]
SqlBinary Input
)
{
ISpookyHashV2 sh = SpookyHashV2Factory.Instance.Create();
return sh.ComputeHash(Input.Value).Hash;
}
[SqlFunction
(
DataAccess = DataAccessKind.None,
IsDeterministic = true,
IsPrecise = true,
SystemDataAccess = SystemDataAccessKind.None
)
]
public static byte[] SpookyHashLOB
(
[SqlFacet (MaxSize = -1)]
SqlBinary Input
)
{
ISpookyHashV2 sh = SpookyHashV2Factory.Instance.Create();
return sh.ComputeHash(Input.Value).Hash;
}
}
-- Just for lazy testing
ALTER DATABASE CURRENT
SET TRUSTWORTHY ON;
GO
EXECUTE sys.sp_configure
@configname = 'show advanced options',
@configvalue = 1;
GO
RECONFIGURE;
GO
EXECUTE sys.sp_configure
@configname = 'clr enabled',
@configvalue = 1;
GO
RECONFIGURE;
GO
DROP FUNCTION IF EXISTS
dbo.SpookyHash,
dbo.SpookyHashLOB;
GO
DROP ASSEMBLY IF EXISTS
[Spooky],
[System.Data.HashFunction.SpookyHash],
[System.Data.HashFunction.Interfaces],
[System.Data.HashFunction.Core];
GO
CREATE ASSEMBLY [System.Data.HashFunction.Interfaces]
FROM 0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C0103007B3E6B940000000000000000E00022200B013000000E00000008000000000000662C00000020000000400000000000100020000000020000040000000000000006000000000000000080000000020000CADF0000030060850000100000100000000010000010000000000000100000000000000000000000122C00004F00000000400000B005000000000000000000000000000000000000006000000C000000342B0000380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000082000004800000000000000000000002E746578740000006C0C000000200000000E000000020000000000000000000000000000200000602E72737263000000B0050000004000000006000000100000000000000000000000000000400000402E72656C6F6300000C0000000060000000020000001600000000000000000000000000004000004200000000000000000000000000000000462C000000000000480000000200050050200000640A000009000000000000000000000000000000B42A000080000000000000000000000000000000000000000000000000000000000000000000000042534A4201000100000000000C00000076342E302E33303331390000000005006C00000018030000237E000084030000D403000023537472696E6773000000005807000004000000235553005C0700001000000023475549440000006C070000F802000023426C6F6200000000000000020000014717A0090900000000FA0133001600000100000015000000040000000D0000000A000000020000000F0000000F00000002000000030000000300000001000000010000000100000000006B02010000000000060056015A030600D9015A030600640004030F007A03000006008C00C50206007601C502060078003B030600A300C5020600AA019A020600BE0013020600C001C50206001A01C50206008F01C50206003901C5020600D700C5020600F400C5020600A1020202060093021E0006000E008903060001009A020600C803A0030000000015000000000001000100A1000000F002D702000001000100A10000004700D702000001000600A1000000F701D702000001000800000000000000C60DB303CC000100000000000000C6055102D0000100000000000000C6055102D7000200000000000000C6055102E0000400000000000000C6055102E7000500000000000000C6053600F0000700000000000000C6053600FB000800000000000000C60D5D02CC000A00000000000000C60D480208010A00000000000000C605C6030D010A00000000000000C6053C0212010A00000000000000C6053C0216010A00000000000000C6052D0212010B0000000100280000000100280000000200B30200000100280000000100280000000200B30200000100280000000100280000000200B302000001005A0003000800040006000900FE0201001100FE0206001900FE020A002900FE0210003100FE0210003900FE0215004100FE0210004900FE0215005100FE0210005900FE0210006100FE0210006900FE0210007100FE0210007900FE0210008100FE0210002E000B0024012E0013002D012E001B004C012E00230055012E002B0077012E003300A0012E003B00A0012E004300A0012E004B00A6012E005300F0012E005B0012022E0063001F022E006B0033022E007300DE022E007B00EB0202000100040002000000B7031B01000061021B01000058021F010200010003000200080005000200090007001A00048000000200000000000000010000002A001703000004000000000000000000000021002D000000000000000049457175617461626C656031005461736B6031003C4D6F64756C653E0053797374656D2E494F0064617461006D73636F726C696200436F6D70757465486173684173796E6300494861736846756E6374696F6E4173796E63007570706572636173650044656275676761626C6541747472696275746500436F6D56697369626C6541747472696275746500417373656D626C795469746C6541747472696275746500417373656D626C7954726164656D61726B417474726962757465005461726765744672616D65776F726B41747472696275746500417373656D626C7946696C6556657273696F6E41747472696275746500417373656D626C79496E666F726D6174696F6E616C56657273696F6E41747472696275746500417373656D626C79436F6E66696775726174696F6E41747472696275746500417373656D626C794465736372697074696F6E41747472696275746500436F6D70696C6174696F6E52656C61786174696F6E7341747472696275746500417373656D626C7950726F6475637441747472696275746500417373656D626C79436F7079726967687441747472696275746500434C53436F6D706C69616E7441747472696275746500417373656D626C79436F6D70616E794174747269627574650052756E74696D65436F6D7061746962696C69747941747472696275746500494861736856616C75650053797374656D2E546872656164696E670053797374656D2E52756E74696D652E56657273696F6E696E67004173426173653634537472696E67004173486578537472696E67006765745F4861736800436F6D7075746548617368006765745F4269744C656E6774680053797374656D2E446174612E4861736846756E6374696F6E2E496E74657266616365732E646C6C0053747265616D0053797374656D0043616E63656C6C6174696F6E546F6B656E0063616E63656C6C6174696F6E546F6B656E0053797374656D2E5265666C656374696F6E0053797374656D2E446174612E4861736846756E6374696F6E00494861736846756E6374696F6E002E63746F720053797374656D2E446961676E6F73746963730053797374656D2E446174612E4861736846756E6374696F6E2E496E74657266616365730053797374656D2E52756E74696D652E496E7465726F7053657276696365730053797374656D2E52756E74696D652E436F6D70696C6572536572766963657300446562756767696E674D6F6465730053797374656D2E546872656164696E672E5461736B730053797374656D2E436F6C6C656374696F6E73006765745F4861736853697A65496E42697473004173426974417272617900000000000000000710331908F18D49932E37C917B0531700042001010803200001052001011111042001010E04200101020615125101121008B77A5C561934E08980A0002400000480000094000000060200000024000052534131000400000100010085F076D56D0E4C1461DB01820A06D1814C38D171CEBAD2714BF251A15AD82214FA3C51CD0C76E26265B4E46F96DD5AB5C9843B7406815D301BEA7D7904C61C21AC54F4921B95A79443D801EEDA3FFD6D32C3F458F73BABB09A22D06F303DFD1AFBB6E27EECFFD072C8FE17C669D666B954C8A423EA9B4A9313691DAF942A74B10320000806200112101D0508200212101D051145062001121012490820021210124911450A200115124D01121012490C200215124D011210124911450420001D0504200012550320000E0420010E02032800080428001D050801000800000000001E01000100540216577261704E6F6E457863657074696F6E5468726F7773010801000200000000002101001C446174612E4861736846756E6374696F6E2E496E746572666163657300002801002353797374656D2E446174612E4861736846756E6374696F6E2E496E746572666163657300000501000000004901001A2E4E45544672616D65776F726B2C56657273696F6E3D76342E350100540E144672616D65776F726B446973706C61794E616D65122E4E4554204672616D65776F726B20342E352101001C446174612E4861736846756E6374696F6E20446576656C6F7065727300000C01000752656C6561736500001301000E436F707972696768742032303135000080A9010080A34323206C69627261727920746F20637265617465206120636F6D6D6F6E20696E7465726661636520746F206E6F6E2D63727970746F6772617068696320686173682066756E6374696F6E732028687474703A2F2F656E2E77696B6970656469612E6F72672F77696B692F4C6973745F6F665F686173685F66756E6374696F6E73234E6F6E2D63727970746F677261706869635F686173685F66756E6374696F6E73292E00000C010007322E302E302E3000000A010005322E302E30000000005628F9EC5A6FE0C8BD61140A24B5B284935762900FE6DF5BE81316DDE895E970E2CDAAFD60D65BF00E78FCA4F6DF3305B0E1E47215193C929B42AA62F9971787A82E3BD061329D8403FF713EF6CF49CCDF757B9F4D60F5B7D4CDB386CA54A1488A041A354079FB226FCC98E451CA6E86E7D01545296B715287CB5C113E316B2A000000003341D1AA00014D5002000000A60000006C2B00006C0D00000000000000000000000000001000000000000000000000000000000052534453CD17094905482D4BA6886C0E55A7B5AC01000000433A5C70726F6A656374735C646174612D6861736866756E6374696F6E2D69367964625C7372635C53797374656D2E446174612E4861736846756E6374696F6E2E496E74657266616365735C6F626A5C416E79204350555C52656C656173655C6E657434355C53797374656D2E446174612E4861736846756E6374696F6E2E496E74657266616365732E706462003A2C00000000000000000000542C0000002000000000000000000000000000000000000000000000462C0000000000000000000000005F436F72446C6C4D61696E006D73636F7265652E646C6C00000000000000FF2500200010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000001800008000000000000000000000000000000100010000003000008000000000000000000000000000000100000000004800000058400000540500000000000000000000540534000000560053005F00560045005200530049004F004E005F0049004E0046004F0000000000BD04EFFE00000100000002000000000000000200000000003F000000000000000400000002000000000000000000000000000000440000000100560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000000B004B4040000010053007400720069006E006700460069006C00650049006E0066006F0000009004000001003000300030003000300034006200300000006001A400010043006F006D006D0065006E007400730000004300230020006C00690062007200610072007900200074006F00200063007200650061007400650020006100200063006F006D006D006F006E00200069006E007400650072006600610063006500200074006F0020006E006F006E002D00630072007900700074006F006700720061007000680069006300200068006100730068002000660075006E006300740069006F006E0073002000280068007400740070003A002F002F0065006E002E00770069006B006900700065006400690061002E006F00720067002F00770069006B0069002F004C006900730074005F006F0066005F0068006100730068005F00660075006E006300740069006F006E00730023004E006F006E002D00630072007900700074006F0067007200610070006800690063005F0068006100730068005F00660075006E006300740069006F006E00730029002E0000005A001D00010043006F006D00700061006E0079004E0061006D0065000000000044006100740061002E004800610073006800460075006E006300740069006F006E00200044006500760065006C006F0070006500720073000000000062001D000100460069006C0065004400650073006300720069007000740069006F006E000000000044006100740061002E004800610073006800460075006E006300740069006F006E002E0049006E007400650072006600610063006500730000000000300008000100460069006C006500560065007200730069006F006E000000000032002E0030002E0030002E003000000070002800010049006E007400650072006E0061006C004E0061006D0065000000530079007300740065006D002E0044006100740061002E004800610073006800460075006E006300740069006F006E002E0049006E00740065007200660061006300650073002E0064006C006C00000042000F0001004C006500670061006C0043006F007000790072006900670068007400000043006F00700079007200690067006800740020003200300031003500000000002A00010001004C006500670061006C00540072006100640065006D00610072006B00730000000000000000007800280001004F0072006900670069006E0061006C00460069006C0065006E0061006D0065000000530079007300740065006D002E0044006100740061002E004800610073006800460075006E006300740069006F006E002E0049006E00740065007200660061006300650073002E0064006C006C000000680024000100500072006F0064007500630074004E0061006D00650000000000530079007300740065006D002E0044006100740061002E004800610073006800460075006E006300740069006F006E002E0049006E00740065007200660061006300650073000000300006000100500072006F006400750063007400560065007200730069006F006E00000032002E0030002E003000000038000800010041007300730065006D0062006C0079002000560065007200730069006F006E00000032002E0030002E0030002E0030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000C000000683C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
WITH PERMISSION_SET = UNSAFE;
GO
ALTER ASSEMBLY [System.Data.HashFunction.Interfaces]
WITH VISIBILITY = OFF;
GO
CREATE ASSEMBLY [System.Data.HashFunction.Core]
FROM 0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C0103008F610E940000000000000000E00022200B013000003E0000000A0000000000002E5C000000200000006000000000001000200000000200000400000000000000060000000000000000A0000000020000A1E30000030060850000100000100000000010000010000000000000100000000000000000000000DA5B00004F000000006000006006000000000000000000000000000000000000008000000C000000085B0000380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000082000004800000000000000000000002E74657874000000343C000000200000003E000000020000000000000000000000000000200000602E7273726300000060060000006000000008000000400000000000000000000000000000400000402E72656C6F6300000C00000000800000000200000048000000000000000000000000000040000042000000000000000000000000000000000E5C0000000000004800000002000500C0300000C829000009000000000000000000000000000000885A0000800000000000000000000000000000000000000000000000000000000000000000000000360203281600000A6F1700000A2A4602178D320000012516039C6F1700000A2A360203281800000A6F1700000A2A360203281900000A6F1700000A2A360203281A00000A6F1700000A2A360203281B00000A6F1700000A2A360203281C00000A6F1700000A2A4A02178D32000001251603D29C6F1700000A2A360203281D00000A6F1700000A2A4A02281E00000A036F1F00000A6F1700000A2A360203282000000A6F1700000A2A360203282100000A6F1700000A2A360203282200000A6F1700000A2A3A0203281600000A04281C0000062A4A02178D320000012516039C04281C0000062A3A0203281800000A04281C0000062A3A0203281900000A04281C0000062A3A0203281A00000A04281C0000062A3A0203281B00000A04281C0000062A3A0203281C00000A04281C0000062A4E02178D32000001251603D29C04281C0000062A3A0203281D00000A04281C0000062A4E02281E00000A036F1F00000A04281C0000062A3A0203282000000A04281C0000062A3A0203282100000A04281C0000062A3A0203282200000A04281C0000062A0000001B3003003300000001000011732300000A0A732400000A06038C0200001B6F2500000A02066F2600000A04281C0000060BDE0A062C06066F2700000ADC072A0001100000020006002127000A000000001330050013010000020000111200FE1516000001041D581E5B0B038E691A588D320000010C0316081A038E69282800000A04026F2900000A175958026F2900000A5B0D1613052B5B11052C131105281B00000A081A282A00000A0813062B0303130612070211066F1700000A6F2B00000A178D32000001280100002B280200002B282E00000A0611071105026F2900000A5A282F00000A283000000A0A11051758130511050917283100000A329A09026F2900000A5A042E2E17733200000A04282F00000A17283300000A283400000A1308060604283500000A283600000A1108283700000A0A1200283800000A130411048E69072E1F078D3200000113091104110911048E6907283900000A282A00000A11091304110404732A0000062A360203283A00000A281E0000062A0000001330020049000000030000111200027D0B0000041200037D090000041200047D0A0000041200283B00000A7D080000041200157D07000004067B080000040B12011200280300002B12007C08000004283D00000A2A1E0228270000062A360203283A00000A28230000062ABA032D0B7201000070733E00000A7A0F02283F00000A02037334000006046F26000006026F21000006732A0000062A360203283A00000A28250000062A133003004600000000000000032D0B7201000070733E00000A7A036F4000000A2D10720B0000707201000070734100000A7A0F02283F00000A02037342000006046F26000006026F21000006732A0000062A1E02284200000A2A1E027B010000042A1E027B020000042A000013300300470000000000000002284200000A032D0B723D000070733E00000A7A04172F1A7247000070725B0000707247000070284300000A734400000A7A02030428320000067D0100000402047D020000042A32022828000006284500000A2A62022828000006734600000A250228290000066F4700000A2A220216282E0000062A0000133003004E000000040000110228280000068E69734800000A0A032D0772AB0000702B0572B10000700B0228280000060C160D2B18080991130406120407284900000A6F4A00000A260917580D09088E6932E2066F4B00000A2A0000133002003F000000050000111F110A061F1F5A0228290000060B1201284C00000A610A0228280000060C160B2B150807910D061F1F5A1203284D00000A610A0717580B07088E6932E5062A360203751300000128310000062A96032C0E036F4E00000A0228290000062E02162A022828000006036F2B00000A280400002B2A0013300400AA00000006000011031D581E5B0A031E5D2D4502750400001B2513052C1111056F5000000A06330702280200002B2A02750500001B2513062C1E068D320000011307110611070611068E69283900000A282A00000A11072A17031E5D1F1F5F621759D20B072D0620FF0000000B068D320000010C160D026F5100000A13042B2309061759330F080911046F5200000A075FD29C2B0A080911046F5200000A9C0917580D09062F0911046F5300000A2DD0082A2A027B030000048E696A2A760228540000060203252D0C267201000070733E00000A7A7D030000042AAE032D0B72B7000070733E00000A7A0F02283F00000A03027B0300000416027B030000048E696F5400000A2A001330050088000000070000110316301A72C500007072D900007072C5000070284300000A734400000A7A042D0B72B7000070733E00000A7A0F04283F00000A027B030000048E69035D0A027B030000048E69065916311704027B0300000416027B030000048E6906596F5400000A052C220616311E0F04283F00000A05027B03000004027B030000048E690659066F5400000A2A1E027B030000042A32027B040000046F5500000A2A7602284D0000060203252D0C267201000070733E00000A7A7D040000042A52027B050000042D0B027B040000046F5600000A2A133004004900000008000011032D0B72B7000070733E00000A7A0F02283F00000A026F4F0000068D320000010A2B100F02283F00000A030616076F5400000A027B040000040616068E696F5700000A250B1630DB2A0000001330020049000000090000111200027D110000041200037D0F0000041200047D100000041200285800000A7D0E0000041200157D0D000004067B0E0000040B12011200280500002B12007C0E000004285A00000A2A00000013300500BD0000000A0000110316301A72C500007072D900007072C5000070284300000A734400000A7A042D0B72B7000070733E00000A7A0F04283F00000A026F4F0000060A03063203032B01068D320000010B160C2B420F04283F00000A0809580C0803322C08035D1304040716081104596F5400000A1104163114070811045907161104282800000A08035D0C2B02160C0F04283F00000A027B040000040708078E6908596F5700000A250D1630A7052C14081631100F04283F00000A050716086F5400000A2A000000133002005A0000000B0000111200027D1A0000041200037D170000041200047D180000041200057D1B00000412000E047D190000041200285800000A7D160000041200157D15000004067B160000040B12011200280600002B12007C16000004285A00000A2A00001B3004005C0000000C0000110F01283F00000A732300000A0A026F4F0000068D320000010B2B170F01283F00000A060716086F5B00000A0F01283F00000A027B040000040716078E696F5700000A250C1630D4066F2600000A0DDE0A062C06066F2700000ADC092A0110000002000D004350000A0000000013300200410000000D0000111200027D220000041200037D230000041200285C00000A7D210000041200157D20000004067B210000040B12011200280700002B12007C21000004285E00000A2A1E0228540000062A1E027B060000042A9A0316301A7211010070721D0100707211010070284300000A734400000A7A02037D060000042A4A0220001000007D0600000402284200000A2A001B300300FE0000000E000011027B070000040A027B0B0000040B06398B000000027B090000042D0B7201000070733E00000A7A027B090000046F4000000A2D1072530100707201000070734100000A7A027C0A000004283F00000A07027B090000047342000006027B0A0000046F1F000006166F5F00000A13041204286000000A0D1203286100000A2D3C0216250A7D0700000402097D0C000004027C08000004120302280800002BDE5E027B0C0000040D027C0C000004FE150C00001B0215250A7D070000041203286300000A076F21000006732A0000060CDE191305021FFE7D07000004027C080000041105286400000ADE14021FFE7D07000004027C0800000408286500000A2A00000110000000000E00C2D000192300000136027C0800000403286600000A2A00001B300500260100000F000011027B0D0000040A027B110000040B0639AD000000027B0F0000042D0B72B7000070733E00000A7A027C10000004283F00000A02076F4F0000068D320000017D120000042B23027C10000004283F00000A027B0F000004027B1200000416027B130000046F5400000A077B04000004027B1200000416027B120000048E69027B100000046F6700000A166F6800000A13041204286900000A0D1203286A00000A2D3C0216250A7D0D00000402097D14000004027C0E000004120302280900002BDE64027B140000040D027C14000004FE150F00001B0215250A7D0D0000041203286C00000A0C02082513057D130000041105163D4EFFFFFFDE191306021FFE7D0D000004027C0E0000041106286D00000ADE13021FFE7D0D000004027C0E000004286E00000A2A00000110000000000E00EBF900192300000136027C0E00000403286F00000A2A00001B3005002502000010000011027B150000040A027B1A0000040B063975010000027B1700000416301A72C500007072D900007072C5000070284300000A734400000A7A027B180000042D0B72B7000070733E00000A7A027C19000004283F00000A076F4F0000060C02027B17000004083208027B170000042B01088D320000017D1C00000402167D1D000004389A000000027C19000004283F00000A02027B1D000004027B1E000004587D1D000004027B1D000004027B170000043263027B1D000004027B170000045D0D027B18000004027B1C00000416027B1D00000409596F5400000A09163130027B1C000004027B1D0000040959027B1C0000041609282800000A02027B1D000004027B170000045D7D1D0000042B0702167D1D000004027C19000004283F00000A077B04000004027B1C000004027B1D000004027B1C0000048E69027B1D00000459027B190000046F6700000A166F6800000A13061206286900000A13051205286A00000A2D410216250A7D150000040211057D1F000004027C16000004120502280A00002BDD9B000000027B1F0000041305027C1F000004FE150F00001B0215250A7D150000041205286C00000A13040211042513077D1E0000041107163DC3FEFFFF027B1B0000042C2C027B1D000004163123027C19000004283F00000A027B1B000004027B1C00000416027B1D0000046F5400000ADE191308021FFE7D15000004027C160000041108286D00000ADE13021FFE7D15000004027C16000004286E00000A2A000000411C0000000000000E000000EA010000F8010000190000002300000136027C1600000403286F00000A2A00001B300400ED00000011000011027B200000040A027B220000040B062C0B02732300000A7D2400000400062C56077B04000004027B24000004076F4F000006027B230000046F7000000A166F7100000A13041204287200000A0D1203287300000A2D3C0216250A7D2000000402097D25000004027C21000004120302280B00002BDE76027B250000040D027C25000004FE15300000010215250A7D200000041203287500000A027B240000046F2600000A0CDE3106162F13027B240000042C0B027B240000046F2700000ADC1305021FFE7D20000004027C210000041105287600000ADE14021FFE7D20000004027C2100000408287700000A2A000000011C000002001D008AA700180000000000000E00B1BF00192300000136027C2100000403287800000A2A000042534A4201000100000000000C00000076342E302E33303331390000000005006C00000064120000237E0000D01200007C0B000023537472696E6773000000004C1E00009401000023555300E01F0000100000002347554944000000F01F0000D809000023426C6F6200000000000000020000015717A20B090E000000FA013300160000010000003E00000012000000250000005C000000940000000E000000780000003D0000001100000006000000090000000B000000080000000F000000010000000400000004000000010000000B00000000006E070100000000000600E704BE0906007905BE090600FC05BE090600410468091300DE09000006006904EB0706009905EB07060055049F0906009B04EB070600CD059D070600B6048C060600E305EB0706003D05EB070600B205EB0706005C05EB070600FA04EB0706001705EB070600930A9D070A001F06FD070A001608FD070600900745010E00E90858090A000A02FD0706006800280A060096074501060081039D0706008004BE090600A407720606008500BE0906002604BE0906007C039D0706004303BE0906004E00BE098700FA080000060078089D070600CF046809060041009D0706003300BB0106003D0B5F0A0600CE08110B06009E00BB0106006F00BB010600E7009D0706002E07280A06001F039D070600B708BE0906002B03BE09BF00FA08000006001B099D0706001A069D0706008306110B060028094B0B0600400B9D07120014038F080600F3069D0706004D089D07060070089D070600D2069D07060031089D070600000B9D070600AC009D07060038095F0A000000003C01000000000100010081011000460AFD07490001000100800110004802FD07490001001D0081001000D5039203140001001D0081001000EB039203490001002100010110002006ED09490001002800800110004802ED0949000300330000011000A2015601380003003300A10000008A015601000004003800A1000000D6015601000004003E008001100048025601490004004100000110009701560134000400410080001000C0035601380006004A0080001000B0035601490006004E0003011000150000007D000700550003011000040100007D000D00570003011000240100007D001500590003011000010000007D0020005B002100BB020B042100D1020F042100AC010B042100AC01120401006D02160401005C060F04060015040F040600DC0819040600AD0112040600B607210406001E0A250401002C002904060015040F040600DC0832040600E40737040600B607210406001E0A42040100B2000B040100C8000F0401002C004604060015040F040600DC083204060040060F040600E40737040600B607210406001E0A42040600CC0737040100B2000B040100D8000F040100F0000F0401002C004604060015040F040600DC084E0406001E0A42040600B60721040100BF00560401002C005A045020000000009600E2065F0401005E20000000009600E206670403007020000000009600E2066F0405007E20000000009600E206770407008C20000000009600E2067F0409009A20000000009600E20687040B00A820000000009600E2068F040D00B620000000009600E20697040F00C920000000009600E2069F041100D720000000009600E206A7041300EA20000000009600E206AF041500F820000000009600E206B70417000621000000009600E206BF0419001421000000009600E206C7041B002321000000009600E206D0041E003621000000009600E206D90421004521000000009600E206E20424005421000000009600E206EB0427006321000000009600E206F4042A007221000000009600E206FD042D008121000000009600E206060530009521000000009600E2060F053300A421000000009600E20618053600B821000000009600E20621053900C721000000009600E2062A053C00D621000000009600E20633053F00E821000000009600E2063C0542003822000000009600E20647054500572300000000E601F90151054800682300000000E601F9015C054900000000000000C405330769054B00BD23000000008418520901004D00000000000000C60D720AB5004D00C52300000000E601E20635004D00D32300000000E601E20676054E00022400000000E601E2067F055000102400000000E601E20686055100000000000000C4054C078F05530062240000000084185209010055006A2400000000E609D9068F005500722400000000E6090E07B50055007C24000000008618520998055500CF2400000000E601B50675015700DC2400000000E6013B0BA3055700F52400000000E601CD0675015700002500000000E601CD06A90557005C2500000000C6000103B5005800A72500000000C6003F0AAE055800B52500000000E6013F0AB3055900DC250000000091002D0BB9055A00922600000000C608F806EB015C009D260000000086185209EF005C00BB2600000000C6005502C5055D00E82600000000C6008208D4055F007C2700000000C600330BED056300000000000000C60DF806EB016400000000000000C60D4A06B5006400000000000000C60D590605006400000000000000C6055502C5056500000000000000C6058208D4056700000000000000C605330BED056B00000000000000C605E801F4056C00000000000000C605290205066E00000000000000C6053B0220067200842700000000C608F806EB017300912700000000861852092B067300AF2700000000E601060401007400C42700000000C6005502C50574001C2800000000C600E801F4057600742800000000C6008208D4057800402900000000C600290205067C00A82900000000C600330BED058000202A00000000C6003B0220068100000000000000C605E801F4058200000000000000C605290205068400000000000000C6053B02200688006D2A000000008418520901008900000000000000C60DF806EB018900752A00000000C6094A06B50089007D2A00000000C609590605008900000000000000C6055502C5058A00000000000000C6058208D4058C00000000000000C605330BED059000A42A000000008418520901009100B82A00000000E101080B01009100D42B00000000E101560320009100E42B00000000E101080B01009200282D00000000E101560320009200382D00000000E101080B01009300882F00000000E101560320009300982F00000000E101080B01009400B03000000000E10156032000940000000100240800000200AD0100000100240800000200AD0100000100240800000200AD0100000100240800000200AD0100000100240800000200AD0100000100240800000200AD0100000100240800000200AD0100000100240800000200AD0100000100240800000200AD0100000100240800000200AD0100000100240800000200AD0100000100240800000200AD0100000100240800000200AD0100000100240800000200AD0100000300300600000100240800000200AD0100000300300600000100240800000200AD0100000300300600000100240800000200AD0100000300300600000100240800000200AD0100000300300600000100240800000200AD0100000300300600000100240800000200AD0100000300300600000100240800000200AD0100000300300600000100240800000200AD0100000300300600000100240800000200AD0100000300300600000100240800000200AD0100000300300600000100240800000200AD0100000300300600000100240800000200AD0100000300300600000100240800000200AD0100000300300600000100240800000200AD0100000300300600000100AD0100000100AD0100000200B60700000100AD0100000200B60700000100AD0100000100AD0100000200B60700000100AD0100000100AD0100000200B60700000100AD0100000200B60700000100EE06000002001C0700000100FC0300000100260700000100F40800000100EE06000002001C0700000100AD0100000100E40700000200B60700000100400600000200E40700000300CC0700000400B60700000100B607000001002A0600000100E40700000200B60700000100400600000200E40700000300CC0700000400B60700000100B60700000100E40700000200B60700000100400600000200E40700000300CC0700000400B60700000100B60700000100AD0100000100E40700000200B60700000100E40700000200B60700000100400600000200E40700000300CC0700000400B60700000100400600000200E40700000300CC0700000400B60700000100B60700000100B60700000100E40700000200B60700000100400600000200E40700000300CC0700000400B60700000100B607000001002A0600000100E40700000200B60700000100400600000200E40700000300CC0700000400B60700000100B60700000100660300000100660300000100660300000100660304005D00040051000500510006004D00060006000A0024000C00B5000D0028000D0024000E0024000F008100100081001100810012008100090052090100110052090500190052090100210052090A00310052091000390052091000410052091500490052091000510052091500590052091000610052091000690052091000710052091000790052091000810052091000890052091000D90052091A00F100520901000101080B01000101560320002101520901008901150A2F00A100E20635008901150A3C008901150A42008901150A48008901150A4E008901150A54008901150A5A0099011B0160009901150A66008901150A6C008901150A72008901150A7800A90052090100A10152090100A10168068800A900330B8F00690106040100A901460BA800A100720AB500A901460BB9009900D9068F00B101850AC400B101330BE100B1005209EF00B1009A0AF500B1009B08FD00B9011D0B0601B10052090500B100C40A0C01B100DC07FD00B100A70AF500B100A808FD00B100EC02FD00B100210B8F00B901C8070601E100730312011C000E0429011C00FA0A32011C002A073F01C10152091000E1009E020100C90061024801C90152094C01910052090100D1018C0A5201D90152094C01E101A606580139015209EF003901030705004101520905009101C40669014101FA026E019100C4067501E9010103B50091010103B50099000E07B500B101600781012400F00AB50034004409BD013C00E40ACE01F101080B480144000D03DD01C900F806EB01C90006040100C9006802F50171010E0405027101FA0A320171012A071002C900200436024C000E0429014C00FA0A32014C002A073F015400B50A75025C001009880264008E0248011C0077029A026400D00ACE011C006308B1021C00DA0AB8021C0056032000C900EF01D5026C00B50A75027400100988027C008E024801710177029A027C00D00ACE0171016308B1027101DA0A0100710156032000C9001D0237036101B50A420379011009490381018E0248014C0077029A028101D00A01004C006308B1024C00DA0AB8024C005603200020000B003E06210093003E062E000B003E062E00130043062E001B004C062E0023006B062E002B0074062E00330090062E003B00B3062E004300B3062E004B00B3062E005300B9062E005B0003072E00630025072E006B0032072E00730046072E007B0060082E0083006D0840000B003E06410093003E0643000B003E0660000B003E0680000B003E06A0000B003E06C0000B003E06E0000B003E0600010B003E0620010B003E0640010B003E0660010B003E0680010B003E06A0010B003E06C0010B003E06E0010B003E06E30193003E0600020B003E06030293003E0620020B003E06230293003E0640020B003E06430293003E0660020B003E0680020B003E06A0020B003E06C0020B003E06E0020B003E0600030B003E0620030B003E0640030B003E0660030B003E0680030B003E06C0038B007808000593003E06200593003E06A0088B00C808E0088B00230920098B007F09C00AAB003E06000BAB003E06400BAB003E06800BAB003E067E00940017015E0179019401E701EF01FD0116021F022C023E025502BE0202032603050001000600020008000400090005000C0007000E0008000000760A31060000E906350600001207310600001F073A0600001F073A0600005D06310600001F073A0600001F073A0600005D063106020021000300020028000500020029000700020033000900020038000B00020039000D0001003A000D00020041000F0002004E00110002004F0013000100500013000F00AA0027000F00AC0029001000AE0027001000B00029001100B20027001100B40029001200B60027001200B8002900270085002201AC01B301B601C701D30149026E0280029202E302E902F002048000000200000000000000010000006903920300000400000000000000000000005703B2010000000002000000000000000000000060037B0900000000040000000000000000000000570358090000000004000000000000000000000057038603000000000F00040010000C0011000C0012000C000000000037004F015900DD005B00DD0079003A019F00DD00B3000B02B3002702BB005002C500A502D700F702D7001B03E9004F0300000000003C546F41727261794173796E633E645F5F3131003C436F6D70757465486173684173796E633E645F5F31003C3E755F5F310049456E756D657261626C6560310049457175617461626C65603100436F6E666967757265645461736B417761697461626C656031005461736B60310049526561644F6E6C79436F6C6C656374696F6E6031004173796E635461736B4D6574686F644275696C64657260310049456E756D657261746F72603100496E743332003C6275666665723E355F5F32003C6D733E355F5F32003C6279746573526561643E355F5F33003C706F736974696F6E3E355F5F3300416374696F6E6033003C63757272656E744C656E6774683E355F5F34003C466F7245616368526561644173796E633E645F5F37006765745F55544638003C466F724561636847726F75704173796E633E645F5F39003C4D6F64756C653E0053797374656D2E494F004D6F64656C540053797374656D2E446174612E4861736846756E6374696F6E2E436F72652E5574696C69746965732E556E6966696564446174610049556E6966696564446174610053747265616D4461746100417272617944617461005F64617461006D73636F726C69620053797374656D2E436F6C6C656374696F6E732E47656E657269630049556E6966696564446174614173796E6300466F7245616368526561644173796E6300436F6D70757465486173684173796E6300494861736846756E6374696F6E4173796E6300436F7079546F4173796E6300466F724561636847726F75704173796E6300546F41727261794173796E63004E616D657370616365446F6300466F724561636852656164006765745F43616E52656164005F646973706F736564004177616974556E736166654F6E436F6D706C65746564006765745F4973436F6D706C65746564005468726F77496643616E63656C6C6174696F6E526571756573746564003C486173683E6B5F5F4261636B696E674669656C64003C4269744C656E6774683E6B5F5F4261636B696E674669656C64006F705F42697477697365416E6400417070656E640047657448617368436F646500496E766F6B6500456E756D657261626C650049446973706F7361626C6500436F6E666967757265645461736B417761697461626C6500494173796E6353746174654D616368696E650053657453746174654D616368696E650073746174654D616368696E65006765745F4E6F6E650056616C7565547970650053797374656D2E436F72650053797374656D2E446174612E4861736846756E6374696F6E2E436F726500556E6966696564446174614261736500556E6966696564446174614173796E6342617365004861736846756E6374696F6E4173796E6342617365004861736846756E6374696F6E426173650075707065726361736500446973706F736500437265617465003C3E315F5F737461746500577269746500436F6D70696C657247656E6572617465644174747269627574650044656275676761626C6541747472696275746500436F6D56697369626C6541747472696275746500417373656D626C795469746C65417474726962757465004173796E6353746174654D616368696E6541747472696275746500417373656D626C7954726164656D61726B417474726962757465005461726765744672616D65776F726B41747472696275746500446562756767657248696464656E41747472696275746500457874656E73696F6E41747472696275746500417373656D626C7946696C6556657273696F6E41747472696275746500417373656D626C79496E666F726D6174696F6E616C56657273696F6E41747472696275746500417373656D626C79436F6E66696775726174696F6E41747472696275746500417373656D626C794465736372697074696F6E41747472696275746500436F6D70696C6174696F6E52656C61786174696F6E7341747472696275746500417373656D626C7950726F6475637441747472696275746500417373656D626C79436F7079726967687441747472696275746500434C53436F6D706C69616E7441747472696275746500417373656D626C79436F6D70616E794174747269627574650052756E74696D65436F6D7061746962696C697479417474726962757465004279746500494861736856616C75650076616C756500646573697265644861736853697A650067726F757053697A65006765745F42756666657253697A65007365745F42756666657253697A650053657269616C697A650053797374656D2E546872656164696E6700456E636F64696E670053797374656D2E52756E74696D652E56657273696F6E696E6700546F426173653634537472696E67004173426173653634537472696E6700546F537472696E67004173486578537472696E67006765745F4861736800436F6D70757465486173680068617368004D617468006765745F4C656E677468007365745F4C656E677468006765745F4269744C656E677468006269744C656E677468006F626A006765745F5461736B00436F6D70757465486173684173796E63496E7465726E616C00436F6D7075746548617368496E7465726E616C0053657175656E6365457175616C0053797374656D2E446174612E4861736846756E6374696F6E2E436F72652E646C6C004D656D6F727953747265616D0053797374656D0043616E63656C6C6174696F6E546F6B656E0063616E63656C6C6174696F6E546F6B656E004D696E0072656D61696E646572416374696F6E006F705F5375627472616374696F6E0053797374656D2E5265666C656374696F6E0053797374656D2E446174612E4861736846756E6374696F6E00494861736846756E6374696F6E006861736846756E6374696F6E00417267756D656E744F75744F6652616E6765457863657074696F6E00417267756D656E744E756C6C457863657074696F6E00536574457863657074696F6E00417267756D656E74457863657074696F6E00466F724561636847726F75700053797374656D2E4C696E71006F705F426974776973654F72006F705F4578636C75736976654F72004173796E635461736B4D6574686F644275696C64657200537472696E674275696C646572003C3E745F5F6275696C64657200426967496E7465676572006F7468657200436F6E666967757265645461736B41776169746572004765744177616974657200426974436F6E7665727465720042696E617279466F726D61747465720049456E756D657261746F7200476574456E756D657261746F72002E63746F720053797374656D2E4E756D65726963730053797374656D2E446961676E6F73746963730053797374656D2E446174612E4861736846756E6374696F6E2E496E74657266616365730053797374656D2E52756E74696D652E496E7465726F7053657276696365730053797374656D2E52756E74696D652E436F6D70696C6572536572766963657300446562756767696E674D6F6465730053797374656D2E446174612E4861736846756E6374696F6E2E436F72652E5574696C6974696573004765744279746573003C3E345F5F746869730053797374656D2E546872656164696E672E5461736B7300457175616C7300494861736846756E6374696F6E5F457874656E73696F6E730053797374656D2E436F6C6C656374696F6E73006765745F4861736853697A65496E4269747300436F6E63617400466F726D6174004F626A656374006F705F4C6566745368696674006F705F5269676874536869667400436F6E6669677572654177616974006F705F496D706C6963697400476574526573756C7400536574526573756C74006765745F43757272656E74006765745F436F756E7400537461727400436F6E76657274004D6F76654E6578740053797374656D2E54657874004D617800546F42797465417272617900436F65726365546F4172726179004173426974417272617900436F70790053797374656D2E52756E74696D652E53657269616C697A6174696F6E2E466F726D6174746572732E42696E617279000000000964006100740061000031530074007200650061006D0020006D0075007300740020006200650020007200650061006400610062006C0065002E000009680061007300680000136200690074004C0065006E00670074006800004F7B0030007D0020006D007500730074002000620065002000670072006500610074006500720020007400680061006E0020006F007200200065007100750061006C00200074006F00200031002E00000578003200000558003200000D61006300740069006F006E000013670072006F0075007000530069007A00650000377B0030007D0020006D007500730074002000620065002000670072006500610074006500720020007400680061006E00200030002E00000B760061006C007500650000357B0030007D0020006D007500730074002000620065002000670072006500610074006500720020007400680061006E0020003000003F530074007200650061006D00200022006400610074006100220020006D0075007300740020006200650020007200650061006400610062006C0065002E0000005EA2B872526FE64EAC8CC9BF26B09ED000032000010420010108052001011115042001010E042001010205200101126906200101128081071512809501124D0500011D0502062001124D1D050500011D05030500011D050D0500011D050C0500011D05080500011D050A0500011D05060500001280CD0520011D050E0500011D05090500011D050B0500011D05070607021255124D021E000620020112651C0420001D0513070A1159081D05081D05081D05115911591D050C0005011280D5081280D50808032000080A0003011280D51280D5081810010215128099011E0015128099011E0015128099011E00030A01050D1001011D1E0015128099011E00052001011D05070002115911590808000211591159115905000208080805000111590804000011710A0702113C15117501124D0615117501124D0800001511750113000730010101101E00040A01113C08200015126101130003200002052002010E0E0500020E0E1C0500010E1D050A07051280A10E1D0508050420010E0E0620011280A10E0320000E07070408081D0505121001020215128099011E0015128099011E0017070808051D0508151280A50105151280A901051D051D0506151280A90105021D0506151280990105092000151280A501130006151280A50105042000130009151280AD031D05080809200301130013011302030701080320000A0507021D0508072003081D05080807070211401180B90500001180B9040A0111400520001280B1080705081D0508080807070211441180B9040A01114409070412551D05081D05072003011D0508080A07021148151175011D0506151175011D05040A011148180706081210124D15118089011D0515118085011D0512808D06151261011D050A200115118085011300020715118085011D05092000151180890113000715118089011D050A30020201101E00101E010B0A0215118089011D05113C0620010112808D052001011300160707081230081511808901081511808501080812808D0D200415126101081D050808117105151261010806151180850108061511808901080A0A0215118089010811401807090812300808081511808901081511808501080812808D0A0A0215118089010811441007060812301D051180C11180BD12808D0A20031280B112650811710620011180BD020520001180C1070A021180C1114808B77A5C561934E0890880C9288E394C132280A0002400000480000094000000060200000024000052534131000400000100010085F076D56D0E4C1461DB01820A06D1814C38D171CEBAD2714BF251A15AD82214FA3C51CD0C76E26265B4E46F96DD5AB5C9843B7406815D301BEA7D7904C61C21AC54F4921B95A79443D801EEDA3FFD6D32C3F458F73BABB09A22D06F303DFD1AFBB6E27EECFFD072C8FE17C669D666B954C8A423EA9B4A9313691DAF942A74B103061D0502060803061265020602070615117501124D0306117103061210080615118089011D0504061180B90A06151280AD031D0508080306123007061511808901080706151175011D050306125504061180C1070002124D125102070002124D125105070002124D125103070002124D12510D070002124D12510C070002124D125108070002124D12510A070002124D125104070002124D125106070002124D12510E070002124D125109070002124D12510B070002124D125107080003124D12510208080003124D12510508080003124D12510308080003124D12510D08080003124D12510C08080003124D12510808080003124D12510A08080003124D12510408080003124D12510608080003124D12510E08080003124D12510908080003124D12510B08080003124D125107080A100103124D12511E0008090003124D12511D05080A200115126101124D12650C200215126101124D126511710C2002151261011D0512281171082002124D1D051171062001124D1265082002124D126511710820021D05122411710A2002011512809901050805200012809D0420010E02042001021C05200102124D0B00021D05151280990105080E200201151280AD031D05080811711820040108151280AD031D050808151280AD031D05080811710620011D0511711020021280B1151280AD031D05080811711A20041280B108151280AD031D050808151280AD031D05080811710A2001151261011D051171052001011265032800080428001D050328000A04010000000801000800000000001E01000100540216577261704E6F6E457863657074696F6E5468726F7773010801000200000000001B010016446174612E4861736846756E6374696F6E2E436F726500002201001D53797374656D2E446174612E4861736846756E6374696F6E2E436F726500000501000000004901001A2E4E45544672616D65776F726B2C56657273696F6E3D76342E350100540E144672616D65776F726B446973706C61794E616D65122E4E4554204672616D65776F726B20342E352101001C446174612E4861736846756E6374696F6E20446576656C6F7065727300000C01000752656C6561736500001301000E436F70797269676874203230313400008118010081124323206C69627261727920746F20637265617465206120636F6D6D6F6E20696E7465726661636520746F206E6F6E2D63727970746F6772617068696320686173682066756E6374696F6E732028687474703A2F2F656E2E77696B6970656469612E6F72672F77696B692F4C6973745F6F665F686173685F66756E6374696F6E73234E6F6E2D63727970746F677261706869635F686173685F66756E6374696F6E732920616E642070726F7669646520696D706C656D656E746174696F6E73206F66207075626C696320686173682066756E6374696F6E732E2020496E636C75646573207772617070657220666F722048617368416C676F726974686D2D626173656420686173682066756E6374696F6E732E00000C010007322E302E302E3000000A010005322E302E3000004F01004A53797374656D2E446174612E4861736846756E6374696F6E2E436F72652E4861736846756E6374696F6E4173796E63426173652B3C436F6D70757465486173684173796E633E645F5F3100005A01005553797374656D2E446174612E4861736846756E6374696F6E2E436F72652E5574696C69746965732E556E6966696564446174612E53747265616D446174612B3C466F7245616368526561644173796E633E645F5F3700005B01005653797374656D2E446174612E4861736846756E6374696F6E2E436F72652E5574696C69746965732E556E6966696564446174612E53747265616D446174612B3C466F724561636847726F75704173796E633E645F5F3900005701005253797374656D2E446174612E4861736846756E6374696F6E2E436F72652E5574696C69746965732E556E6966696564446174612E53747265616D446174612B3C546F41727261794173796E633E645F5F3131000000800DD4082FFC7FDCBCB1A3B004A849C4B64539A43C143DD609FA679498087AD7CDA7D98499E5F3744E45211452789B309163C4055C4B5BC8128B7341269809DC1CB77D5B6BA6B41A0F90F459C99B52550F8738551EA8F0EC1AEF98D576C29E46C244A8534FB7017B9CA5CB9445A15C495B5A8C98B9F045B3E2861E8FCDF5AAA60000000003AA5B8F00014D50020000009A000000405B0000403D00000000000000000000000000001000000000000000000000000000000052534453BB1487F4D483244D8876710F663EA8CC01000000433A5C70726F6A656374735C646174612D6861736866756E6374696F6E2D69367964625C7372635C53797374656D2E446174612E4861736846756E6374696F6E2E436F72655C6F626A5C416E79204350555C52656C656173655C6E657434355C53797374656D2E446174612E4861736846756E6374696F6E2E436F72652E70646200025C000000000000000000001C5C00000020000000000000000000000000000000000000000000000E5C0000000000000000000000005F436F72446C6C4D61696E006D73636F7265652E646C6C00000000000000FF25002000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000001800008000000000000000000000000000000100010000003000008000000000000000000000000000000100000000004800000058600000040600000000000000000000040634000000560053005F00560045005200530049004F004E005F0049004E0046004F0000000000BD04EFFE00000100000002000000000000000200000000003F000000000000000400000002000000000000000000000000000000440000000100560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000000B00464050000010053007400720069006E006700460069006C00650049006E0066006F0000004005000001003000300030003000300034006200300000003E021301010043006F006D006D0065006E007400730000004300230020006C00690062007200610072007900200074006F00200063007200650061007400650020006100200063006F006D006D006F006E00200069006E007400650072006600610063006500200074006F0020006E006F006E002D00630072007900700074006F006700720061007000680069006300200068006100730068002000660075006E006300740069006F006E0073002000280068007400740070003A002F002F0065006E002E00770069006B006900700065006400690061002E006F00720067002F00770069006B0069002F004C006900730074005F006F0066005F0068006100730068005F00660075006E006300740069006F006E00730023004E006F006E002D00630072007900700074006F0067007200610070006800690063005F0068006100730068005F00660075006E006300740069006F006E0073002900200061006E0064002000700072006F007600690064006500200069006D0070006C0065006D0065006E0074006100740069006F006E00730020006F00660020007000750062006C0069006300200068006100730068002000660075006E006300740069006F006E0073002E002000200049006E0063006C00750064006500730020007700720061007000700065007200200066006F0072002000480061007300680041006C0067006F0072006900740068006D002D0062006100730065006400200068006100730068002000660075006E006300740069006F006E0073002E00000000005A001D00010043006F006D00700061006E0079004E0061006D0065000000000044006100740061002E004800610073006800460075006E006300740069006F006E00200044006500760065006C006F00700065007200730000000000560017000100460069006C0065004400650073006300720069007000740069006F006E000000000044006100740061002E004800610073006800460075006E006300740069006F006E002E0043006F007200650000000000300008000100460069006C006500560065007200730069006F006E000000000032002E0030002E0030002E003000000064002200010049006E007400650072006E0061006C004E0061006D0065000000530079007300740065006D002E0044006100740061002E004800610073006800460075006E006300740069006F006E002E0043006F00720065002E0064006C006C00000042000F0001004C006500670061006C0043006F007000790072006900670068007400000043006F00700079007200690067006800740020003200300031003400000000002A00010001004C006500670061006C00540072006100640065006D00610072006B00730000000000000000006C00220001004F0072006900670069006E0061006C00460069006C0065006E0061006D0065000000530079007300740065006D002E0044006100740061002E004800610073006800460075006E006300740069006F006E002E0043006F00720065002E0064006C006C0000005C001E000100500072006F0064007500630074004E0061006D00650000000000530079007300740065006D002E0044006100740061002E004800610073006800460075006E006300740069006F006E002E0043006F00720065000000300006000100500072006F006400750063007400560065007200730069006F006E00000032002E0030002E003000000038000800010041007300730065006D0062006C0079002000560065007200730069006F006E00000032002E0030002E0030002E0030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005000000C000000303C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
WITH PERMISSION_SET = UNSAFE;
GO
ALTER ASSEMBLY [System.Data.HashFunction.Core]
WITH VISIBILITY = OFF;
GO
CREATE ASSEMBLY [System.Data.HashFunction.SpookyHash]
FROM 0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C0103005F989DD60000000000000000E00022200B013000004E00000008000000000000D66B000000200000008000000000001000200000000200000400000000000000060000000000000000C0000000020000C17B0000030060850000100000100000000010000010000000000000100000000000000000000000826B00004F00000000800000280500000000000000000000000000000000000000A000000C000000A46A0000380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000082000004800000000000000000000002E746578740000009C4C000000200000004E000000020000000000000000000000000000200000602E7273726300000028050000008000000006000000500000000000000000000000000000400000402E72656C6F6300000C00000000A0000000020000005600000000000000000000000000004000004200000000000000000000000000000000B66B000000000000480000000200050034430000F026000009000000000000000000000000000000246A00008000000000000000000000000000000000000000000000000000000000000000000000001E027B010000042A2202037D010000042A1E027B020000042A2202037D020000042A1E027B030000042A2202037D030000042AAA73110000062502280A0000066F0B0000062502280C0000066F0D0000062502280E0000066F0F0000062A4A0220800000007D0100000402281600000A2A1A7E040000042A1E02281600000A2A3202731100000628150000062A56032D0B7201000070731700000A7A0373190000062A2E731300000680040000042A32027B050000046F050000062A32027B050000046F020000062A00000013300500F60000000100001102281800000A032D0B7201000070731700000A7A02036F050000067D050000047E08000004027B050000046F02000006280100002B2D3E720F0000707201000070721F000070281A00000A027B050000046F020000068C2B000001723D0000707201000070721F000070281A00000A731B00000A7A027B050000046F020000060A061F202E0E061F402E2A0620800000002E402A02027B050000046F03000006156E5F7D0600000402027B060000047D070000042A02027B050000046F030000067D0600000402027B060000047D070000042A02027B050000046F030000067D0600000402027B050000046F040000067D070000042A000013300A00940100000200001173380000060A06027D1A000004036F1C00000A20C00000006A2F09020304281B0000062A061F0C8D2D0000017D1B000004067B1B00000416067B1B00000419067B1B0000041C067B1B0000041F09027B06000004250C9F08250C9F08250C9F089F067B1B00000417067B1B0000041A067B1B0000041D067B1B0000041F0A027B07000004250C9F08250C9F08250C9F089F067B1B00000418067B1B0000041B067B1B0000041E067B1B0000041F0B21EFBEADDEEFBEADDE250C9F08250C9F08250C9F089F061F608D2E0000017D1C000004031F6006FE0639000006731D00000A06FE063A000006731D00000A046F1E00000A02067B1B000004067B1C00000416067B1C0000048E69281E00000602067B1B0000042821000006027B050000046F020000060D091F202E0F091F402E1B0920800000002E232B53067B1B00000416966D281F00000A0B2B48067B1B0000041696282000000A0B2B381F108D2E0000010B067B1B0000041696282000000A07166F2100000A067B1B0000041796282000000A071E6F2100000A2B06732200000A7A072A133005008501000003000011733B0000060A06027D1E000004061A8D2D0000012516027B060000049F2517027B070000049F251821EFBEADDEEFBEADDE9F251921EFBEADDEEFBEADDE9F7D1D000004061F108D2E0000017D1F00000406167D20000004031F2006FE063C000006731D00000A06FE063D000006731D00000A046F1E00000A067B1D00000419036F1C00000A1F38629F067B2000000416313A067B1D000004198F2D000001254C067B1F0000041E282300000A5855067B1D000004188F2D000001254C067B1F00000416282300000A58552B32067B1D000004198F2D000001254C21EFBEADDEEFBEADDE5855067B1D000004188F2D000001254C21EFBEADDEEFBEADDE585502067B1D0000042822000006027B050000046F020000060C081F202E0F081F402E1B0820800000002E232B53067B1D00000416966D281F00000A0B2B48067B1D0000041696282000000A0B2B381F108D2E0000010B067B1D0000041696282000000A07166F2100000A067B1D0000041796282000000A071E6F2100000A2B06732200000A7A072A0000001330020049000000040000111200027D260000041200037D270000041200047D280000041200282400000A7D250000041200157D24000004067B250000040B12011200280200002B12007C25000004282600000A2A0000001330020049000000050000111200027D330000041200037D340000041200047D350000041200282400000A7D320000041200157D31000004067B320000040B12011200280300002B12007C32000004282600000A2A000000133006009600000006000011050A3884000000160B2B7603078F2D000001254C0406071E5A58282300000A5855030718581F0C5D8F2D000001254C03071F0A581F0C5D96615503071F0B581F0C5D8F2D000001254C030796615503070307967E09000004076F2700000A28230000069F03071F0B581F0C5D8F2D000001254C030717581F0C5D9658550717580B071F0C3285061F60580A06050E04583F72FFFFFF2A0000133005005600000001000011160A2B4C030618581A5D030618581A5D967E0A000004066F2700000A28230000069F030618581A5D8F2D000001254C030619581A5D96585503061A5D8F2D000001254C030618581A5D9661550617580A061F0C32AF2A0000133005006000000001000011160A2B5603061F0B581F0C5D8F2D000001254C030617581F0C5D965855030618581F0C5D8F2D000001254C03061F0B581F0C5D966155030617581F0C5D030617581F0C5D967E0B000004066F2700000A28230000069F0617580A061F0C32A52A5A0203282000000602032820000006020328200000062A00133005005800000001000011160A2B4E030619581A5D8F2D000001254C030618581A5D966155030618581A5D030618581A5D967E0C000004066F2700000A28230000069F030619581A5D8F2D000001254C030618581A5D9658550617580A061F0B32AD2A5E031F3F5F100102031F3F5F62021F4003591F3F5F64602A133003008500000000000000732800000A251F206F2900000A26251F406F2900000A262520800000006F2900000A2680080000041F0C8D2B00000125D019000004282A00000A80090000041F0C8D2B00000125D017000004282A00000A800A0000041F0C8D2B00000125D016000004282A00000A800B0000041F0B8D2B00000125D018000004282A00000A800C0000042A1A7E0D0000042A1E02281600000A2A3202731100000628280000062A56032D0B7201000070731700000A7A03732C0000062A2E7326000006800D0000042A32027B0E0000046F050000062A32027B0E0000046F020000062A00000013300500F60000000100001102281800000A032D0B7201000070731700000A7A02036F050000067D0E0000047E11000004027B0E0000046F02000006280100002B2D3E720F0000707201000070721F000070281A00000A027B0E0000046F020000068C2B00000172B90000707201000070721F000070281A00000A731B00000A7A027B0E0000046F020000060A061F202E0E061F402E2A0620800000002E402A02027B0E0000046F03000006156E5F7D0F00000402027B0F0000047D100000042A02027B0E0000046F030000067D0F00000402027B0F0000047D100000042A02027B0E0000046F030000067D0F00000402027B0E0000046F040000067D100000042A000013300A00800100000700001173480000060A06027D39000004036F1C00000A20C00000006A2F09020304282E0000062A061F0C8D2D0000017D3A000004067B3A00000416067B3A00000419067B3A0000041C067B3A0000041F09027B0F000004250C9F08250C9F08250C9F089F067B3A00000417067B3A0000041A067B3A0000041D067B3A0000041F0A027B10000004250C9F08250C9F08250C9F089F067B3A00000418067B3A0000041B067B3A0000041E067B3A0000041F0B21EFBEADDEEFBEADDE250C9F08250C9F08250C9F089F061F608D2E0000017D3B000004031F6006FE0649000006731D00000A06FE064A000006731D00000A046F1E00000A02067B3A000004067B3B000004162834000006027B0E0000046F020000060D091F202E0F091F402E1B0920800000002E232B53067B3A00000416966D281F00000A0B2B48067B3A0000041696282000000A0B2B381F108D2E0000010B067B3A0000041696282000000A07166F2100000A067B3A0000041796282000000A071E6F2100000A2B06732200000A7A072A133005008D01000008000011734B0000060A06027D3D000004061A8D2D0000012516027B0F0000049F2517027B100000049F251821EFBEADDEEFBEADDE9F251921EFBEADDEEFBEADDE9F7D3C000004061F108D2E0000017D3E00000406167D3F000004031F2006FE064C000006731D00000A06FE064D000006731D00000A046F1E00000A067B3C000004198F2D000001254C036F1C00000A1F38625855067B3F00000416313A067B3C000004198F2D000001254C067B3E0000041E282300000A5855067B3C000004188F2D000001254C067B3E00000416282300000A58552B32067B3C000004198F2D000001254C21EFBEADDEEFBEADDE5855067B3C000004188F2D000001254C21EFBEADDEEFBEADDE585502067B3C0000042835000006027B0E0000046F020000060C081F202E0F081F402E1B0820800000002E232B53067B3C00000416966D281F00000A0B2B48067B3C0000041696282000000A0B2B381F108D2E0000010B067B3C0000041696282000000A07166F2100000A067B3C0000041796282000000A071E6F2100000A2B06732200000A7A072A0000001330020049000000090000111200027D450000041200037D460000041200047D470000041200282400000A7D440000041200157D43000004067B440000040B12011200280400002B12007C44000004282600000A2A00000013300200490000000A0000111200027D520000041200037D530000041200047D540000041200282400000A7D510000041200157D50000004067B510000040B12011200280500002B12007C51000004282600000A2A000000133006009600000006000011050A3884000000160B2B7603078F2D000001254C0406071E5A58282300000A5855030718581F0C5D8F2D000001254C03071F0A581F0C5D96615503071F0B581F0C5D8F2D000001254C030796615503070307967E12000004076F2700000A28360000069F03071F0B581F0C5D8F2D000001254C030717581F0C5D9658550717580B071F0C3285061F60580A06050E04583F72FFFFFF2A0000133005005600000001000011160A2B4C030618581A5D030618581A5D967E13000004066F2700000A28360000069F030618581A5D8F2D000001254C030619581A5D96585503061A5D8F2D000001254C030618581A5D9661550617580A061F0C32AF2A0000133005006000000001000011160A2B5603061F0B581F0C5D8F2D000001254C030617581F0C5D965855030618581F0C5D8F2D000001254C03061F0B581F0C5D966155030617581F0C5D030617581F0C5D967E14000004066F2700000A28360000069F0617580A061F0C32A52A133006003900000001000011160A2B1A03068F2D000001254C0405061E5A58282300000A58550617580A061F0C32E10203283300000602032833000006020328330000062A000000133005005800000001000011160A2B4E030619581A5D8F2D000001254C030618581A5D966155030618581A5D030618581A5D967E15000004066F2700000A28360000069F030619581A5D8F2D000001254C030618581A5D9658550617580A061F0B32AD2A5E031F3F5F100102031F3F5F62021F4003591F3F5F64602A133003008500000000000000732800000A251F206F2900000A26251F406F2900000A262520800000006F2900000A2680110000041F0C8D2B00000125D019000004282A00000A80120000041F0C8D2B00000125D017000004282A00000A80130000041F0C8D2B00000125D016000004282A00000A80140000041F0B8D2B00000125D018000004282A00000A80150000042A1E02281600000A2A56027B1A000004027B1B000004030405281E0000062A6E0304027B1C0000041605282B00000A027B1C0000041F5F05D29C2A1E02281600000A2A00133005008500000001000011040A2B7A027B1D000004188F2D000001254C0306282300000A5855027B1D000004198F2D000001254C03061E58282300000A5855027B1E000004027B1D000004281F000006027B1D000004168F2D000001254C03061F1058282300000A5855027B1D000004178F2D000001254C03061F1858282300000A5855061F20580A0604055832802A000000133005006D00000000000000051F10324D027B1D000004188F2D000001254C0304282300000A5855027B1D000004198F2D000001254C03041E58282300000A5855027B1E000004027B1D000004281F000006041F10581002051F10591003051631160304027B1F0000041605282B00000A02057D200000042A1E02281600000A2A56027B21000004027B22000004030405281E0000062A6E0304027B230000041605282B00000A027B230000041F5F05D29C2A001B300A007C0300000B000011027B240000040A027B260000040B06398400000006173B1E02000002733E0000067D29000004027B29000004027B260000047D21000004027B270000046F1C00000A20C00000006A2F7707027B27000004027B28000004281D000006166F2C00000A13041204282D00000A0D1203282E00000A2D3F0216250A7D2400000402097D2B000004027C25000004120302280600002BDDE3020000027B2B0000040D027C2B000004FE150700001B0215250A7D240000041203283000000A0CDDA6020000027B290000041F0C8D2D0000017D22000004027B290000047B2200000416027B290000047B2200000419027B290000047B220000041C027B290000047B220000041F09077B060000042513059F11052513059F11052513059F11059F027B290000047B2200000417027B290000047B220000041A027B290000047B220000041D027B290000047B220000041F0A077B070000042513059F11052513059F11052513059F11059F027B290000047B2200000418027B290000047B220000041B027B290000047B220000041E027B290000047B220000041F0B21EFBEADDEEFBEADDE2513059F11052513059F11052513059F11059F027B290000041F608D2E0000017D23000004027B270000041F60027B29000004FE063F000006731D00000A027B29000004FE0640000006731D00000A027B280000046F3100000A166F3200000A13071207283300000A13061206283400000A2D410217250A7D240000040211067D2C000004027C25000004120602280700002BDD42010000027B2C0000041306027C2C000004FE15250000010215250A7D240000041206283500000A07027B290000047B22000004027B290000047B2300000416027B290000047B230000048E69281E00000607027B290000047B220000042821000006077B050000046F02000006130811081F202E1411081F402E29110820800000002E3A388000000002027B290000047B2200000416966D281F00000A7D2A0000042B6B02027B290000047B220000041696282000000A7D2A0000042B51021F108D2E0000017D2A000004027B290000047B220000041696282000000A027B2A000004166F2100000A027B290000047B220000041796282000000A027B2A0000041E6F2100000A2B06732200000A7A027B2A0000040CDE191309021FFE7D24000004027C250000041109283600000ADE14021FFE7D24000004027C2500000408283700000A2A411C0000000000000E000000400300004E030000190000002600000136027C2500000403283800000A2A1E02281600000A2A0000133005008500000001000011040A2B7A027B2D000004188F2D000001254C0306282300000A5855027B2D000004198F2D000001254C03061E58282300000A5855027B2E000004027B2D000004281F000006027B2D000004168F2D000001254C03061F1058282300000A5855027B2D000004178F2D000001254C03061F1858282300000A5855061F20580A0604055832802A000000133005006D00000000000000051F10324D027B2D000004188F2D000001254C0304282300000A5855027B2D000004198F2D000001254C03041E58282300000A5855027B2E000004027B2D000004281F000006041F10581002051F10591003051631160304027B2F0000041605282B00000A02057D300000042A0000001B300500C50200000C000011027B310000040A027B330000040B0639E60000000273430000067D36000004027B36000004027B330000047D2E000004027B360000041A8D2D0000012516077B060000049F2517077B070000049F251821EFBEADDEEFBEADDE9F251921EFBEADDEEFBEADDE9F7D2D000004027B360000041F108D2E0000017D2F000004027B36000004167D30000004027B340000041F20027B36000004FE0644000006731D00000A027B36000004FE0645000006731D00000A027B350000046F3100000A166F3200000A13041204283300000A0D1203283400000A2D3F0216250A7D3100000402097D38000004027C32000004120302280800002BDDCA010000027B380000040D027C38000004FE15250000010215250A7D310000041203283500000A027B360000047B2D00000419027B340000046F1C00000A1F38629F027B360000047B3000000416314E027B360000047B2D000004188F2D000001254C027B360000047B2F00000416282300000A5855027B360000047B2D000004198F2D000001254C027B360000047B2F0000041E282300000A58552B3C027B360000047B2D000004188F2D000001254C21EFBEADDEEFBEADDE5855027B360000047B2D000004198F2D000001254C21EFBEADDEEFBEADDE585507027B360000047B2D0000042822000006077B050000046F02000006130511051F202E1411051F402E29110520800000002E3A388000000002027B360000047B2D00000416966D281F00000A7D370000042B6B02027B360000047B2D0000041696282000000A7D370000042B51021F108D2E0000017D37000004027B360000047B2D0000041696282000000A027B37000004166F2100000A027B360000047B2D0000041796282000000A027B370000041E6F2100000A2B06732200000A7A027B370000040CDE191306021FFE7D31000004027C320000041106283600000ADE14021FFE7D31000004027C3200000408283700000A2A000000411C0000000000000E0000008902000097020000190000002600000136027C3200000403283800000A2A1E02281600000A2A56027B39000004027B3A00000403040528310000062A6E0304027B3B0000041605282B00000A027B3B0000041F5F05D29C2A1E02281600000A2A133005008500000001000011040A2B7A027B3C000004188F2D000001254C0306282300000A5855027B3C000004198F2D000001254C03061E58282300000A5855027B3D000004027B3C0000042832000006027B3C000004168F2D000001254C03061F1058282300000A5855027B3C000004178F2D000001254C03061F1858282300000A5855061F20580A0604055832802A000000133005006D00000000000000051F10324D027B3C000004188F2D000001254C0304282300000A5855027B3C000004198F2D000001254C03041E58282300000A5855027B3D000004027B3C0000042832000006041F10581002051F10591003051631160304027B3E0000041605282B00000A02057D3F0000042A1E02281600000A2A56027B40000004027B4100000403040528310000062A6E0304027B420000041605282B00000A027B420000041F5F05D29C2A001B300A005E0300000D000011027B430000040A027B450000040B06398400000006173B1E02000002734E0000067D48000004027B48000004027B450000047D40000004027B460000046F1C00000A20C00000006A2F7707027B46000004027B470000042830000006166F2C00000A13041204282D00000A0D1203282E00000A2D3F0216250A7D4300000402097D4A000004027C44000004120302280900002BDDC5020000027B4A0000040D027C4A000004FE150700001B0215250A7D430000041203283000000A0CDD88020000027B480000041F0C8D2D0000017D41000004027B480000047B4100000416027B480000047B4100000419027B480000047B410000041C027B480000047B410000041F09077B0F0000042513059F11052513059F11052513059F11059F027B480000047B4100000417027B480000047B410000041A027B480000047B410000041D027B480000047B410000041F0A077B100000042513059F11052513059F11052513059F11059F027B480000047B4100000418027B480000047B410000041B027B480000047B410000041E027B480000047B410000041F0B21EFBEADDEEFBEADDE2513059F11052513059F11052513059F11059F027B480000041F608D2E0000017D42000004027B460000041F60027B48000004FE064F000006731D00000A027B48000004FE0650000006731D00000A027B470000046F3100000A166F3200000A13071207283300000A13061206283400000A2D410217250A7D430000040211067D4B000004027C44000004120602280A00002BDD24010000027B4B0000041306027C4B000004FE15250000010215250A7D430000041206283500000A07027B480000047B41000004027B480000047B42000004162834000006077B0E0000046F02000006130811081F202E1411081F402E29110820800000002E3A388000000002027B480000047B4100000416966D281F00000A7D490000042B6B02027B480000047B410000041696282000000A7D490000042B51021F108D2E0000017D49000004027B480000047B410000041696282000000A027B49000004166F2100000A027B480000047B410000041796282000000A027B490000041E6F2100000A2B06732200000A7A027B490000040CDE191309021FFE7D43000004027C440000041109283600000ADE14021FFE7D43000004027C4400000408283700000A2A0000411C0000000000000E0000002203000030030000190000002600000136027C4400000403283800000A2A1E02281600000A2A0000133005008500000001000011040A2B7A027B4C000004188F2D000001254C0306282300000A5855027B4C000004198F2D000001254C03061E58282300000A5855027B4D000004027B4C0000042832000006027B4C000004168F2D000001254C03061F1058282300000A5855027B4C000004178F2D000001254C03061F1858282300000A5855061F20580A0604055832802A000000133005006D00000000000000051F10324D027B4C000004188F2D000001254C0304282300000A5855027B4C000004198F2D000001254C03041E58282300000A5855027B4D000004027B4C0000042832000006041F10581002051F10591003051631160304027B4E0000041605282B00000A02057D4F0000042A0000001B300500CD0200000E000011027B500000040A027B520000040B0639E60000000273530000067D55000004027B55000004027B520000047D4D000004027B550000041A8D2D0000012516077B0F0000049F2517077B100000049F251821EFBEADDEEFBEADDE9F251921EFBEADDEEFBEADDE9F7D4C000004027B550000041F108D2E0000017D4E000004027B55000004167D4F000004027B530000041F20027B55000004FE0654000006731D00000A027B55000004FE0655000006731D00000A027B540000046F3100000A166F3200000A13041204283300000A0D1203283400000A2D3F0216250A7D5000000402097D57000004027C51000004120302280B00002BDDD2010000027B570000040D027C57000004FE15250000010215250A7D500000041203283500000A027B550000047B4C000004198F2D000001254C027B530000046F1C00000A1F38625855027B550000047B4F00000416314E027B550000047B4C000004188F2D000001254C027B550000047B4E00000416282300000A5855027B550000047B4C000004198F2D000001254C027B550000047B4E0000041E282300000A58552B3C027B550000047B4C000004188F2D000001254C21EFBEADDEEFBEADDE5855027B550000047B4C000004198F2D000001254C21EFBEADDEEFBEADDE585507027B550000047B4C0000042835000006077B0E0000046F02000006130511051F202E1411051F402E29110520800000002E3A388000000002027B550000047B4C00000416966D281F00000A7D560000042B6B02027B550000047B4C0000041696282000000A7D560000042B51021F108D2E0000017D56000004027B550000047B4C0000041696282000000A027B56000004166F2100000A027B550000047B4C0000041796282000000A027B560000041E6F2100000A2B06732200000A7A027B560000040CDE191306021FFE7D50000004027C510000041106283600000ADE14021FFE7D50000004027C5100000408283700000A2A000000411C0000000000000E000000910200009F020000190000002600000136027C5100000403283800000A2A000042534A4201000100000000000C00000076342E302E33303331390000000005006C00000050110000237E0000BC1100007C0C000023537472696E677300000000381E00003801000023555300701F0000100000002347554944000000801F00007007000023426C6F6200000000000000020000015797A22B090A000000FA01330016000001000000360000001B000000570000005700000063000000170000003800000034000000020000000E000000070000000D0000001000000008000000070000000400000001000000040000000E0000000B0000000000CB080100000000000600FE06CA0A06008107CA0A0600C705740A0F00EA0A00000600EF055F0906001E075F090600DB05AB0A060033065F0906005207FC0806004E06E007060068075F090600C2065F09060037075F090600E1065F0906007F065F0906009C065F090A00FD0371090A008A09710906002106FC080600E50BFC080600AC05CA0A0E00840566050600B501D00306000702D0030E00A703730306000309CF0706005505FC0806000606CA0A0600DD011C0B0E00EB0373030600E401CA0A06005005FC0806001A05CA0A0600C301CA0A8B00390A00000600EF04CA0A9300390A00000600EE09FC0806006706740A0600D509FC081200E404160A0600FA07FC0806004302FC080600B909FC080600AC02FC0806009F07FC0806008402FC0806005A0AFC080600470CFC080600A109FC081200FD01D00306003C0BCA0A06000705FC08060057081C0B00000000D0020000000001000100A100000025080108000001000100A1000000B5070108000001000200A10000001D010108000001000600A1000000520C0108000001000600A100000049020108000001000800A1000000670C010800000100080001001000B6070108510001000A0001001000530C0108510004001200000010002709010859000500170001001000680C010851000D002500000010004309010859000E002A0000010000D9020000510016003800030110006C00000051001A003800030110002A00000051001D003B000301100040000000510021003E0003011000FD000000810024004100030110005600000051002D004300030110001E020000810031004600030110006C000000510039004800030110002A00000051003C004B000301100040000000510040004E0003011000FD000000810043005100030110005600000051004C005300030110001E020000810050005600130100008D02000081005800580013010000B30200008100580058000100A604110301007604140301005F04140331008C0417032100C7071B0321001702140321007D0214033100020B1F033100850B260331009C0B26033100670B260331004B0B260331008C042D032100C7071B0321001702140321007D0214033100020B1F033100850B260331009C0B26033100670B260331004B0B260333014A0331033301F80231033301010035033301210331030600120B3903060051083D030600B4034103060051083D030600120B39030600B403410306003C0811030600120B3903060051083D030600B40341030600A10511030600220A45030600120B39030600C2034D0306001509510301002B0155030100570241030100AE015903010062026203060051083D030600120B39030600B403410306003C0811030600A10511030600220A45030600120B39030600C2034D0306001509510301002B0167030100570241030100AE0162030600120B6B03060051083D030600B4034103060051083D030600120B6B030600B403410306003C0811030600120B6B03060051083D030600B40341030600A10511030600220A45030600120B6B030600C2034D0306001509510301002B016F030100570241030100AE015903010062026203060051083D030600120B6B030600B403410306003C0811030600A10511030600220A45030600120B6B030600C2034D0306001509510301002B0173030100570241030100AE016203000000000000C60DAA0777030100000000000000C60DB80B7C030100000000000000C60D260480030100000000000000C60D690280030100000000000000C6054A0577030100000000000000C6059A0584030100000000000000C6059A0589030100000000000000C6059A0590030200000000000000C6059A0595030200502000000000E609B80B7C0303005820000000008608CB0B01000300612000000000E60926048003040069200000000086082F049C030400722000000000E6096902800305007A2000000000860873029C030500832000000000E6014A0577030600AE20000000008618670A06000600C120000000009608D704A1030600C820000000008118670A06000600D02000000000E6019A0584030600DD2000000000E6019A0589030600F3200000000091186D0AA6030700FF2000000000E609AA07770307000C2100000000C608B80B7C0307001C21000000008618670AAA030700202200000000C4009E08B0030800C023000000008100B208B0030A00542500000000C4006708B9030C00AC250000000081008008B9030E000426000000008100390CC6031000A826000000008100340CD00314000C270000000081005C08D00315007827000000008100CB04D00316009027000000008100C604D0031700F427000000009100EC0BD60318000C280000000091186D0AA6031A009D28000000009608D704DC031A00A428000000008118670A06001A00AC2800000000E6019A0590031A00B92800000000E6019A0595031A00CF280000000091186D0AA6031B00DB2800000000E609AA0777031B00E82800000000C608B80B7C031B00F828000000008618670AAA031B00FC2900000000C4009E08B0031C00882B000000008100B208B0031E00242D00000000C4006708B90320007C2D0000000081008008B9032200D42D000000008100390CC6032400782E000000008100340CD0032800DC2E0000000081005C08D0032900482F000000008100CB04E1032A00902F000000008100C604D0032D00F42F000000009100EC0BD6032E000C300000000091186D0AA60330009D30000000008618670A06003000A530000000008300C400EA033000BB300000000083007501EA033300D730000000008618670A06003600E030000000008300DE00EA03360074310000000083008F01EA033900ED31000000008618670A06003C00F5310000000083008100EA033C000B320000000083003201EA033F00283200000000E1012B0C06004200CC3500000000E1012D0520004200DA35000000008618670A06004300E435000000008300A000EA03430078360000000083005101EA034600F43600000000E1012B0C06004900E43900000000E1012D0520004900F239000000008618670A06004A00FA39000000008300C400EA034A00103A0000000083007501EA034D002C3A000000008618670A06005000343A000000008300DE00EA035000C83A0000000083008F01EA035300413B000000008618670A06005600493B0000000083008100EA0356005F3B0000000083003201EA0359007C3B00000000E1012B0C06005C00043F00000000E1012D0520005C00123F000000008618670A06005D001C3F000000008300A000EA035D00B03F0000000083005101EA0360002C4000000000E1012B0C06006300244300000000E1012D052000630000000100C80700000100C80700000100A40700000100A40700000100A40700000100C80700000100C80700000100C20300000200150900000100C20300000200150900000100C20300000200150900000100C20300000200150900000100510800000200C203000003009809000004004C0800000100510800000100510800000100510800000100510800000100CF04000002001A0C00000100C80700000100C80700000100C20300000200150900000100C20300000200150900000100C20300000200150900000100C20300000200150900000100510800000200C203000003009809000004004C0800000100510800000100510800000100510800000200C20300000300980900000100510800000100CF04000002001A0C00000100FF09000002009809000003004C08000001002F0A000002009809000003004C0800000100FF09000002009809000003004C08000001002F0A000002009809000003004C0800000100FF09000002009809000003004C08000001002F0A000002009809000003004C08000001003D0500000100FF09000002009809000003004C08000001002F0A000002009809000003004C08000001003D0500000100FF09000002009809000003004C08000001002F0A000002009809000003004C0800000100FF09000002009809000003004C08000001002F0A000002009809000003004C0800000100FF09000002009809000003004C08000001002F0A000002009809000003004C08000001003D0500000100FF09000002009809000003004C08000001002F0A000002009809000003004C08000001003D05020045000200490004000800040045000400490006000800060045000600490008000C00090014000A0010000A0008000A0045000A0049000B001C000C0018000C0008000C0045000C004900110085001300850017008500190085000900670A01001100670A06001900670A0A002900670A10003100670A10003900670A15004100670A10004900670A15005100670A10005900670A10006100670A10006900670A10007100670A10007900670A10008100670A10009900670A1000A900670A0600E100670A1A0009012B0C060009012D0520003901670A0600A100670A06004101670A1000B100670A06004901330B2B005101DE0B3C006101670A4300C900310853000C00670A6100C900090A67008101F90A80008101F90A86008901F8098C009101670A06008101AA029C0014009A05B5001400250CBE0014005308CB001C00F308EF002400670A060024002204FC00A1013D0C020189014D0C3D012C00F70B720134004F0A85013C004F049701140038049B013C00060CB201F1001004B701B101F70BD20121014F0AD90129014F0497012901060C06001400EB09E7011400100CEE0114002D05200021008B0094052E000B0009042E00130012042E001B0031042E0023003A042E002B005C042E00330085042E003B0085042E00430085042E004B008B042E005300D5042E005B00F7042E00630004052E006B0018052E0073007C052E007B00890541008B00940561008B00940581008B00940583008300370723018300370740018B00940543018300370760018B00940580018B009405A0018B009405A1018B009405A3018B009405C0018B009405C3018B009405E0018B009405E3018B00940503028B00940523028B00940540028B00940543028B00940563028B00940583028B009405A3028B009405C3028B009405E3028B00940503038B00940523038B009405800393009905A0039300FE05A0048B009405E0059300680600069300CD064008AB009405E008AB009405400AAB009405E00AAB00940501002C0000001A000100300000001B0027004A009400A300D400E4000C0115011D012D014A01F4010E024302020001000300020008000500090008000A0009000B000B000C000C000000C007F2030000CF0BF70300003304FB0300007702FB030000CF0BF70300003304FB0300007702FB030000DB04FF030000C007F2030000CF0BF7030000DB0404040000C007F2030000CF0BF70302000100030002000200050002000300070002000400090002000A000B0001000B000B0002000C000D0001000D000D0002000E000F0001000F000F0002001200110002001700130002001800150002002500170002002A00190002002B001B0011008200270011008400290013008C00270013008E0029001700A20027001700A40029001900AC0027001900AE0029005700AE00E900F5006B017D018F01DC6B000016000C6C000017003C6C000018006C6C00001900048000000200000000000000010000006F02010800000400000000000000000000005D02C703000000000200000000000000000000006602870A0000000002000000000000000000000066026605000000000400000000000000000000005D025A05000000000E000A000F000A0010000A0011000A0012000A0013000A0014000C0015000C0016000C0017000C0018000C0019000C001A000D001B000D00330038004B00C6004B00DF004B0028014B0038015F00A6015F00DF015F0006025F002F025F003B025F005502000000000045374239444233453031303744334638443835373039364344313530303244424536313443363630003C3E635F5F446973706C6179436C61737331305F30003C3E635F5F446973706C6179436C61737331315F30003C3E635F5F446973706C6179436C61737331325F30003C3E635F5F446973706C6179436C617373395F30003C436F6D70757465486173684173796E63496E7465726E616C3E625F5F30003C436F6D7075746553686F7274486173684173796E63496E7465726E616C3E625F5F30003C436F6D7075746548617368496E7465726E616C3E625F5F30003C436F6D7075746553686F727448617368496E7465726E616C3E625F5F30003C436F6D70757465486173684173796E63496E7465726E616C3E645F5F3131004953706F6F6B79486173685631003C3E385F5F31003C436F6D70757465486173684173796E63496E7465726E616C3E625F5F31003C436F6D7075746553686F7274486173684173796E63496E7465726E616C3E625F5F31003C436F6D7075746548617368496E7465726E616C3E625F5F31003C436F6D7075746553686F727448617368496E7465726E616C3E625F5F31003C3E755F5F310049456E756D657261626C65603100436F6E666967757265645461736B417761697461626C656031005461736B6031004173796E635461736B4D6574686F644275696C6465726031004861736853657460310049526561644F6E6C794C6973746031005F7365656431003C436F6D7075746553686F7274486173684173796E63496E7465726E616C3E645F5F313200496E743332004953706F6F6B79486173685632003C686173683E355F5F32003C3E755F5F32006765745F5365656432007365745F5365656432005F736565643200416374696F6E6033005F5F5374617469634172726179496E69745479706553697A653D343400546F55496E743634005F5F5374617469634172726179496E69745479706553697A653D3438003C4D6F64756C653E003C50726976617465496D706C656D656E746174696F6E44657461696C733E0041383446373744424638393233424538383831324445323132433733303033433442463435354544004637334232343546303245464336414346363544334231423039353433333335393836334145454400343144304643383131444435434641424131453035383331423743454236343538384130333742460053797374656D2E446174612E4861736846756E6374696F6E2E436F72652E5574696C69746965732E556E6966696564446174610049556E6966696564446174610072656D61696E646572446174610064617461006D73636F726C69620053797374656D2E436F6C6C656374696F6E732E47656E657269630049556E6966696564446174614173796E6300494861736846756E6374696F6E4173796E6300466F724561636847726F75704173796E6300416464006765745F53656564007365745F53656564004177616974556E736166654F6E436F6D706C65746564006765745F4973436F6D706C65746564003C53656564323E6B5F5F4261636B696E674669656C64003C536565643E6B5F5F4261636B696E674669656C64003C496E7374616E63653E6B5F5F4261636B696E674669656C64003C4861736853697A65496E426974733E6B5F5F4261636B696E674669656C640053686F7274456E64006F706572616E64006765745F496E7374616E636500456E756D657261626C6500436F6E666967757265645461736B417761697461626C650052756E74696D654669656C6448616E646C6500494173796E6353746174654D616368696E650053657453746174654D616368696E650073746174654D616368696E6500436C6F6E650056616C7565547970650053797374656D2E436F72650053797374656D2E446174612E4861736846756E6374696F6E2E436F7265004861736846756E6374696F6E4173796E634261736500437265617465003C3E315F5F737461746500436F6D70696C657247656E6572617465644174747269627574650044656275676761626C6541747472696275746500436F6D56697369626C6541747472696275746500417373656D626C795469746C65417474726962757465004173796E6353746174654D616368696E65417474726962757465004F62736F6C65746541747472696275746500417373656D626C7954726164656D61726B417474726962757465005461726765744672616D65776F726B41747472696275746500446562756767657248696464656E41747472696275746500417373656D626C7946696C6556657273696F6E41747472696275746500417373656D626C79496E666F726D6174696F6E616C56657273696F6E41747472696275746500417373656D626C79436F6E66696775726174696F6E41747472696275746500417373656D626C794465736372697074696F6E41747472696275746500436F6D70696C6174696F6E52656C61786174696F6E7341747472696275746500417373656D626C7950726F6475637441747472696275746500417373656D626C79436F7079726967687441747472696275746500434C53436F6D706C69616E7441747472696275746500417373656D626C79436F6D70616E794174747269627574650052756E74696D65436F6D7061746962696C69747941747472696275746500427974650076616C7565006765745F436F6E666967004953706F6F6B7948617368436F6E666967005F636F6E6669670053797374656D2E546872656164696E670053797374656D2E52756E74696D652E56657273696F6E696E6700537472696E670053797374656D2E446174612E4861736846756E6374696F6E2E53706F6F6B7948617368004953706F6F6B7948617368006765745F4C656E6774680072656D61696E6465724C656E677468006C656E677468006765745F5461736B00456E645061727469616C00436F6D70757465486173684173796E63496E7465726E616C00436F6D7075746553686F7274486173684173796E63496E7465726E616C00436F6D7075746548617368496E7465726E616C00436F6D7075746553686F727448617368496E7465726E616C0053797374656D2E446174612E4861736846756E6374696F6E2E53706F6F6B79486173682E646C6C006765745F4974656D0053797374656D0043616E63656C6C6174696F6E546F6B656E0063616E63656C6C6174696F6E546F6B656E0053706F6F6B794861736856315F496D706C656D656E746174696F6E0053706F6F6B794861736856325F496D706C656D656E746174696F6E0053797374656D2E5265666C656374696F6E0053797374656D2E446174612E4861736846756E6374696F6E00494861736846756E6374696F6E00706F736974696F6E004E6F74496D706C656D656E746564457863657074696F6E00417267756D656E744F75744F6652616E6765457863657074696F6E00417267756D656E744E756C6C457863657074696F6E00536574457863657074696F6E00436F7079546F006461746147726F757000466F724561636847726F75700053797374656D2E4C696E71003C3E745F5F6275696C6465720072656D61696E64657200436F6E666967757265645461736B41776169746572004765744177616974657200426974436F6E766572746572002E63746F72002E6363746F720053797374656D2E446961676E6F73746963730053797374656D2E446174612E4861736846756E6374696F6E2E496E74657266616365730053797374656D2E52756E74696D652E496E7465726F7053657276696365730053797374656D2E52756E74696D652E436F6D70696C6572536572766963657300446562756767696E674D6F646573004765744279746573005F76616C69644861736853697A6573003C3E345F5F746869730053797374656D2E546872656164696E672E5461736B7300436F6E7461696E730052756E74696D6548656C70657273005F53686F7274456E64526F746174696F6E506172616D6574657273005F456E645061727469616C526F746174696F6E506172616D6574657273005F4D6978526F746174696F6E506172616D6574657273005F53686F72744D6978526F746174696F6E506172616D6574657273006765745F4861736853697A65496E42697473007365745F4861736853697A65496E4269747300466F726D6174004F626A65637400526F746174654C65667400436F6E666967757265417761697400476574526573756C7400536574526573756C74007368696674436F756E74005374617274004D6F76654E6578740053686F72744D697800496E697469616C697A65417272617900436F7079004953706F6F6B79486173685631466163746F7279004953706F6F6B79486173685632466163746F727900000D63006F006E00660069006700000F7B0030007D002E007B0031007D00001D4800610073006800530069007A00650049006E004200690074007300007B7B0030007D002E007B0031007D0020006D00750073007400200062006500200063006F006E007400610069006E00650064002000770069007400680069006E002000530070006F006F006B0079004800610073006800560031002E00560061006C00690064004800610073006800530069007A00650073002E00007B7B0030007D002E007B0031007D0020006D00750073007400200062006500200063006F006E007400610069006E00650064002000770069007400680069006E002000530070006F006F006B0079004800610073006800560032002E00560061006C00690064004800610073006800530069007A00650073002E0000000000B4026B9D14D5324BBE07209D4AE1D33D00042001010803200001052001011111042001010E042001010205200101126D06200101128085030701080C1001020215125D011E001E00030A01080600030E0E1C1C062003010E1C0E08070412381D050B080320000A09151280BD031D050808052002011C181820040108151280BD031D050808151280BD031D05080811690500011D05090500011D050B072002011280C508070703123C1D05080600020B1D05080A0702114415117D011D050615117D011D0508000015117D0113000730010101101E00040A0111440820001512750113000A0702114C15117D011D05040A01114C040702080805151261010805200113000806151280CD0108052001021300090002011280C51180D508070412501D050B0807070312541D05080A0702115C15117D011D05040A01115C0A0702116415117D011D05040A0111640C0005011280C5081280C5080820070A0812281D051511808D011D0515118089011D050B1180951180910812809906151275011D050A200115118089011300020715118089011D050920001511808D011300071511808D011D05032000020A30020201101E00101E010B0A021511808D011D05114404200013001A20041280D908151280BD031D050808151280BD031D050808116906200111809102052000118095070A021180951144062001011280990520010113001107070812281D0511809511809108128099070A02118095114C20070A0812301D051511808D011D0515118089011D050B118095118091081280990B0A021511808D011D05115C070A02118095115C1107070812301D0511809511809108128099070A02118095116408B77A5C561934E0890880C9288E394C132280A0002400000480000094000000060200000024000052534131000400000100010085F076D56D0E4C1461DB01820A06D1814C38D171CEBAD2714BF251A15AD82214FA3C51CD0C76E26265B4E46F96DD5AB5C9843B7406815D301BEA7D7904C61C21AC54F4921B95A79443D801EEDA3FFD6D32C3F458F73BABB09A22D06F303DFD1AFBB6E27EECFFD072C8FE17C669D666B954C8A423EA9B4A9313691DAF942A74B102060802060B030612140306120C060615125D0108060615126101080306121C0306116C030611680306122803061D0B03061D05070615117D011D0503061279030611690306124008061511808D011D05040611809503061248030612300306125803061260042000120C032000080320000B04200012100620011210120C04200012180620011218120C042001010B04000012140300000105200101120C0820021D05126511690C2002151275011D0512791169092004011D0B1D050808052001011D0B0500020B0B08040000121C082003011D0B1D0508072003011D050808042800120C032800080328000B0408001214040800121C0801000800000000001E01000100540216577261704E6F6E457863657074696F6E5468726F7773010801000200000000002101001C446174612E4861736846756E6374696F6E2E53706F6F6B794861736800002801002353797374656D2E446174612E4861736846756E6374696F6E2E53706F6F6B794861736800000501000000004901001A2E4E45544672616D65776F726B2C56657273696F6E3D76342E350100540E144672616D65776F726B446973706C61794E616D65122E4E4554204672616D65776F726B20342E352101001C446174612E4861736846756E6374696F6E20446576656C6F7065727300000C01000752656C6561736500001301000E436F70797269676874203230313400006301005E446174612E4861736846756E6374696F6E20696D706C656D656E746174696F6E206F662053706F6F6B79486173682028687474703A2F2F627572746C65627572746C652E6E65742F626F622F686173682F73706F6F6B792E68746D6C292E00000C010007322E302E302E3000000A010005322E302E30000004010000006401005F53797374656D2E446174612E4861736846756E6374696F6E2E53706F6F6B79486173682E53706F6F6B794861736856315F496D706C656D656E746174696F6E2B3C436F6D70757465486173684173796E63496E7465726E616C3E645F5F313100006901006453797374656D2E446174612E4861736846756E6374696F6E2E53706F6F6B79486173682E53706F6F6B794861736856315F496D706C656D656E746174696F6E2B3C436F6D7075746553686F7274486173684173796E63496E7465726E616C3E645F5F313200006401005F53797374656D2E446174612E4861736846756E6374696F6E2E53706F6F6B79486173682E53706F6F6B794861736856325F496D706C656D656E746174696F6E2B3C436F6D70757465486173684173796E63496E7465726E616C3E645F5F313100006901006453797374656D2E446174612E4861736846756E6374696F6E2E53706F6F6B79486173682E53706F6F6B794861736856325F496D706C656D656E746174696F6E2B3C436F6D7075746553686F7274486173684173796E63496E7465726E616C3E645F5F313200003501003053706F6F6B7948617368563120686173206B6E6F776E206973737565732C207573652053706F6F6B794861736856322E00000000002CB51CF63C682E9662D10019B07A710045EA1455976D0F8D76B44E85B0F1E9D3B1730AD3238329D958A24551EBA967ACE93196EE3BB0C4B544FE3ACCF1E029244D02714E99DA38806144BDFFD07CE34FEFCE1308F9946E30B52D22DA20AA3608B423B3CA0DD73350B5015E65F78B455AEEC7BCD532834D6D00FBFC8B55B33B7C0000000075AB68FB00014D5002000000A6000000DC6A0000DC4C00000000000000000000000000001000000000000000000000000000000052534453186A90E897457E4598B208CBE004327C01000000433A5C70726F6A656374735C646174612D6861736866756E6374696F6E2D69367964625C7372635C53797374656D2E446174612E4861736846756E6374696F6E2E53706F6F6B79486173685C6F626A5C416E79204350555C52656C656173655C6E657434355C53797374656D2E446174612E4861736846756E6374696F6E2E53706F6F6B79486173682E70646200AA6B00000000000000000000C46B0000002000000000000000000000000000000000000000000000B66B0000000000000000000000005F436F72446C6C4D61696E006D73636F7265652E646C6C00000000000000FF25002000102C0000000F000000220000001500000026000000210000000A0000000D00000026000000350000002A0000003600000032000000340000001E00000029000000360000003000000026000000250000003E0000002200000005000000240000000F000000340000001A000000330000001C000000090000002F0000003600000020000000190000003F000000000000000B000000200000002B0000001F000000110000001C00000027000000390000003700000036000000160000002E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000001800008000000000000000000000000000000100010000003000008000000000000000000000000000000100000000004800000058800000CC0400000000000000000000CC0434000000560053005F00560045005200530049004F004E005F0049004E0046004F0000000000BD04EFFE00000100000002000000000000000200000000003F000000000000000400000002000000000000000000000000000000440000000100560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000000B0042C040000010053007400720069006E006700460069006C00650049006E0066006F000000080400000100300030003000300030003400620030000000D6005F00010043006F006D006D0065006E0074007300000044006100740061002E004800610073006800460075006E006300740069006F006E00200069006D0070006C0065006D0065006E0074006100740069006F006E0020006F0066002000530070006F006F006B00790048006100730068002000280068007400740070003A002F002F0062007500720074006C00650062007500720074006C0065002E006E00650074002F0062006F0062002F0068006100730068002F00730070006F006F006B0079002E00680074006D006C0029002E00000000005A001D00010043006F006D00700061006E0079004E0061006D0065000000000044006100740061002E004800610073006800460075006E006300740069006F006E00200044006500760065006C006F0070006500720073000000000062001D000100460069006C0065004400650073006300720069007000740069006F006E000000000044006100740061002E004800610073006800460075006E006300740069006F006E002E00530070006F006F006B007900480061007300680000000000300008000100460069006C006500560065007200730069006F006E000000000032002E0030002E0030002E003000000070002800010049006E007400650072006E0061006C004E0061006D0065000000530079007300740065006D002E0044006100740061002E004800610073006800460075006E006300740069006F006E002E00530070006F006F006B00790048006100730068002E0064006C006C00000042000F0001004C006500670061006C0043006F007000790072006900670068007400000043006F00700079007200690067006800740020003200300031003400000000002A00010001004C006500670061006C00540072006100640065006D00610072006B00730000000000000000007800280001004F0072006900670069006E0061006C00460069006C0065006E0061006D0065000000530079007300740065006D002E0044006100740061002E004800610073006800460075006E006300740069006F006E002E00530070006F006F006B00790048006100730068002E0064006C006C000000680024000100500072006F0064007500630074004E0061006D00650000000000530079007300740065006D002E0044006100740061002E004800610073006800460075006E006300740069006F006E002E00530070006F006F006B00790048006100730068000000300006000100500072006F006400750063007400560065007200730069006F006E00000032002E0030002E003000000038000800010041007300730065006D0062006C0079002000560065007200730069006F006E00000032002E0030002E0030002E003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000C000000D83B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
WITH PERMISSION_SET = UNSAFE;
GO
ALTER ASSEMBLY [System.Data.HashFunction.SpookyHash]
WITH VISIBILITY = OFF;
GO
CREATE ASSEMBLY [Spooky]
FROM 0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C0103003752D8D90000000000000000E00022200B013000000E000000060000000000000E2C0000002000000040000000000010002000000002000004000000000000000600000000000000008000000002000000000000030060850000100000100000000010000010000000000000100000000000000000000000BC2B00004F000000004000006803000000000000000000000000000000000000006000000C000000282B0000380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000082000004800000000000000000000002E74657874000000140C000000200000000E000000020000000000000000000000000000200000602E7273726300000068030000004000000004000000100000000000000000000000000000400000402E72656C6F6300000C0000000060000000020000001400000000000000000000000000004000004200000000000000000000000000000000F02B000000000000480000000200050094200000940A0000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000072281100000A6F1200000A0F00281300000A6F1400000A6F1500000A2A72281100000A6F1200000A0F00281300000A6F1400000A6F1500000A2A1E02281600000A2A000042534A4201000100000000000C00000076342E302E33303331390000000005006C0000008C020000237E0000F8020000A803000023537472696E677300000000A00600000400000023555300A4060000100000002347554944000000B4060000E003000023426C6F620000000000000002000001471500000900000000FA013300160000010000001A00000002000000030000000200000016000000120000000100000004000000000060020100000000000600530123030600D201230306007200CD020F004303000006009A0073020600360173020600020173020600B901730206007301730206009E0173020600B10073020600860004030600640004030600E50073020600CC000D0206007C036C020A002101AC020A004100AC020A003B00AC020A008C01AC020A00890352030E0094033C020E0093033C020E0001003C0212009E0285021200FA018502000000000F000000000001000100010010006703000041000100010050200000000096005502420001006D200000000096001800420002008A20000000008618C702060003000000010083030000010083030900C70201001100C70206001900C7020A002900C70210003100C70210003900C70210004100C70210004900C70210005100C70210005900C70210006100C70215006900C70210007100C70210007900C70210008900C7020600A100C7020600B10050001A00B9005D001F00A900F0012400C90030022900D100270224008100C702060020007B002A0124008300BA032E000B0049002E00130052002E001B0071002E0023007A002E002B0087002E00330087002E003B0087002E0043007A002E004B008D002E00530087002E005B0087002E006300A5002E006B00CF002E007300DC0040007B00720244008300CD03048000000100000000000000000000000000050200000400000000000000000000003000320000000000040000000000000000000000300026000000000002000000000000000000000039003C02000000000200000000000000000000003900E002000000000000004953706F6F6B79486173685632003C4D6F64756C653E0053706F6F6B79486173684C4F420053797374656D2E44617461006D73636F726C69620053797374656D446174614163636573734B696E64006765745F496E7374616E63650043726561746500477569644174747269627574650044656275676761626C6541747472696275746500436F6D56697369626C6541747472696275746500417373656D626C795469746C6541747472696275746500417373656D626C7954726164656D61726B417474726962757465005461726765744672616D65776F726B41747472696275746500417373656D626C7946696C6556657273696F6E41747472696275746500417373656D626C79436F6E66696775726174696F6E4174747269627574650053716C46756E6374696F6E41747472696275746500417373656D626C794465736372697074696F6E41747472696275746500436F6D70696C6174696F6E52656C61786174696F6E7341747472696275746500417373656D626C7950726F647563744174747269627574650053716C466163657441747472696275746500417373656D626C79436F7079726967687441747472696275746500417373656D626C79436F6D70616E794174747269627574650052756E74696D65436F6D7061746962696C697479417474726962757465006765745F56616C756500494861736856616C75650048617368696E670053797374656D2E52756E74696D652E56657273696F6E696E67006765745F4861736800436F6D70757465486173680053797374656D2E446174612E4861736846756E6374696F6E2E53706F6F6B79486173680048617368696E672E646C6C0053797374656D0053797374656D2E5265666C656374696F6E0053797374656D2E446174612E4861736846756E6374696F6E00494861736846756E6374696F6E004D6963726F736F66742E53716C5365727665722E536572766572002E63746F720053797374656D2E446961676E6F73746963730053797374656D2E446174612E4861736846756E6374696F6E2E496E74657266616365730053797374656D2E52756E74696D652E496E7465726F7053657276696365730053797374656D2E52756E74696D652E436F6D70696C6572536572766963657300446562756767696E674D6F6465730053797374656D2E446174612E53716C54797065730055736572446566696E656446756E6374696F6E73004F626A65637400496E7075740053716C42696E617279004953706F6F6B79486173685632466163746F7279000000000072C4F9BE5D26EB49BE572338085C182300042001010803200001052001011111042001010E0420010102040000125D04200012610420001D0506200112691D0508B77A5C561934E0890880C9288E394C13220600011D0511550801000800000000001E01000100540216577261704E6F6E457863657074696F6E5468726F7773010801000200000000000C01000748617368696E67000005010000000017010012436F7079726967687420C2A920203230313900002901002465633131353164632D386537632D346338322D393865382D66663834336364626463336200000C010007312E302E302E3000004D01001C2E4E45544672616D65776F726B2C56657273696F6E3D76342E362E310100540E144672616D65776F726B446973706C61794E616D65142E4E4554204672616D65776F726B20342E362E318146010004005455794D6963726F736F66742E53716C5365727665722E5365727665722E446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038390A446174614163636573730000000054557F4D6963726F736F66742E53716C5365727665722E5365727665722E53797374656D446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038391053797374656D446174614163636573730000000054020F497344657465726D696E697374696301540209497350726563697365018146010004005455794D6963726F736F66742E53716C5365727665722E5365727665722E446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038390A446174614163636573730000000054020F497344657465726D696E6973746963015402094973507265636973650154557F4D6963726F736F66742E53716C5365727665722E5365727665722E53797374656D446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038391053797374656D446174614163636573730000000012010001005408074D617853697A65401F000012010001005408074D617853697A65FFFFFFFF00000000B4A1BE8200000000020000005C000000602B0000600D00000000000000000000000000001000000000000000000000000000000052534453D007DA6212582A4F89D0EAA4587E7EDE01000000433A5C55736572735C7061756C775C736F757263655C7265706F735C48617368696E675C48617368696E675C6F626A5C52656C656173655C48617368696E672E70646200E42B00000000000000000000FE2B0000002000000000000000000000000000000000000000000000F02B0000000000000000000000005F436F72446C6C4D61696E006D73636F7265652E646C6C0000000000FF2500200010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001000000018000080000000000000000000000000000001000100000030000080000000000000000000000000000001000000000048000000584000000C03000000000000000000000C0334000000560053005F00560045005200530049004F004E005F0049004E0046004F0000000000BD04EFFE00000100000001000000000000000100000000003F000000000000000400000002000000000000000000000000000000440000000100560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000000B0046C020000010053007400720069006E006700460069006C00650049006E0066006F0000004802000001003000300030003000300034006200300000001A000100010043006F006D006D0065006E007400730000000000000022000100010043006F006D00700061006E0079004E0061006D0065000000000000000000380008000100460069006C0065004400650073006300720069007000740069006F006E0000000000480061007300680069006E0067000000300008000100460069006C006500560065007200730069006F006E000000000031002E0030002E0030002E003000000038000C00010049006E007400650072006E0061006C004E0061006D0065000000480061007300680069006E0067002E0064006C006C0000004800120001004C006500670061006C0043006F007000790072006900670068007400000043006F0070007900720069006700680074002000A90020002000320030003100390000002A00010001004C006500670061006C00540072006100640065006D00610072006B007300000000000000000040000C0001004F0072006900670069006E0061006C00460069006C0065006E0061006D0065000000480061007300680069006E0067002E0064006C006C000000300008000100500072006F0064007500630074004E0061006D00650000000000480061007300680069006E0067000000340008000100500072006F006400750063007400560065007200730069006F006E00000031002E0030002E0030002E003000000038000800010041007300730065006D0062006C0079002000560065007200730069006F006E00000031002E0030002E0030002E0030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000C000000103C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
WITH PERMISSION_SET = UNSAFE;
GO
CREATE FUNCTION dbo.SpookyHash
(
@Input varbinary(8000)
)
RETURNS binary(16)
WITH
RETURNS NULL ON NULL INPUT,
EXECUTE AS OWNER
AS EXTERNAL NAME Spooky.UserDefinedFunctions.SpookyHash;
GO
CREATE FUNCTION dbo.SpookyHashLOB
(
@Input varbinary(max)
)
RETURNS binary(16)
WITH
RETURNS NULL ON NULL INPUT,
EXECUTE AS OWNER
AS EXTERNAL NAME Spooky.UserDefinedFunctions.SpookyHashLOB;
GO
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.