@d-healey
If generating dynamically, use String.fromCharCode with parseInt.
Is there an equivalent in HISE?
@d-healey
If generating dynamically, use String.fromCharCode with parseInt.
Is there an equivalent in HISE?
From the web:
\u is used in JavaScript and similar languages for Unicode escape sequences, but it must be followed immediately by a valid four-digit hexadecimal code (e.g., \u1234).
@tomekslesicki same is happening here. Looks like there's an incompatibility with the latest CUDA driver. I'll have to tweak that
Reaper has a button that can change any plugin GUI into a simple slider based interface.
Is there an easy way to recreate this in HISE? I have a bunch of panels that contain components and it looks like it's not possible to dynamically change parentComponent and place all controls in a single panel.
@ccbl I'm still working on the scripts, so they aren't 100% yet. Feel free to dig around and see if you can trace the issue.
I don't remember it being too hard to setup. I'll boot up a virtual machine and run through the process to see if I hit any issues and post the results here.
@Christoph-Hart said in Getting copy protection to work...:
spent a few hours setting up his own server
@Christoph-Hart I think you meant a few months
@Morphoice It was no trivial task and took quite a bit of time to design and setup. In the end, I made a fully wordpress integrated license manager that uses the unlocker.
I'm not sure how much I can share on how to do it cause it involves many tasks that are beyond the scope if HISE, but I suggest starting with the basics.
If you need something that works and you don't want to deal with bug fixes and webserver security concerns, I'd 100% go with HISE Activate.
If you want to DIY a solution, use a preexisting License Manager available for your platform, and then creating a script to send the end user their encrypted license file.
I'll answer any questions you have.
@Christoph-Hart said in How to get CPU serial number using HISE?:
Your copy protection system must cope with the scenario that computer IDs can change though.
My protection system and I are in therapy. Hopefully we can cope soon.
It's been a shit show the past couple days.
I've been testing their platform, but thankful I went with FastPanel for my webserver.
@Christoph-Hart is it possible to have access to more parameters on the system ID generation?
I'm getting system ID changes when people perform OS updates, but there seems to be ways to only use the CPU/Motherboard to generate the ID instead
â—† getUniqueDeviceID()
static String SystemStats::getUniqueDeviceID ( )
static
This method returns a machine unique ID unaffected by storage or peripheral changes.
This ID will be invalidated by changes to the motherboard and CPU on non-mobile platforms, or performing a system restore on an Android device.
There are some extra caveats on iOS: The returned ID is unique to the vendor part of your 'Bundle Identifier' and is stable for all associated apps. The key is invalidated once all associated apps are uninstalled. This function can return an empty string under certain conditions, for example, If the device has not been unlocked since a restart.
Check the XML file to see if "chain" is being used in place of the actual network name. I've had to edit some of these manually for the same reason.
@ccbl I didn't add any flags and it exported correctly.
@ustk I think it should be doable. My plan is to do a Grey Box approach. Use ML for some items, and then analog modeling for others.
Test out the snippet above and see how much CPU it uses.
I'm still in the "trying to make this work" phase so I haven't gotten into measuring or optimizing yet.
@d-healey I remember seeing this a couple years back. Can't remember why we went with AWS, but Bunny looks great if you just need CDN
@jeffd We're using Wordpress with no issues at all. It's the most tweakable platform by far and I've really enjoyed making custom plugins for it that perform special tasks. With the combination of AWS file storage and distribution, it's hard to beat.
If you're looking for a simple solution and don't want to consult a proper web developer, I would suggest Shopify instead of Wix. It's a pretty robust ecommerce platform that covers all the basics.
If anyone wants to start learning about RTneural, here's a snip that contains a model of the ProCo Rat pedal:
HiseSnippet 20992.3oc6810imccdcmUKp1Rh1dlDj.ja4vqjAnXN6226XXXY8VFgQThPjQSBBLLJ0cQwBpYWDcWTxLF494qPta9ZL24OR4avLqeO+qlc2h7+dQqoRPvfoSfEqpN0oN+2m89400yZ89O6lGc0ye9MO6hG7c9vO+Su5hG7m8vO3ye5se7O7iu75mdwO8GcwCdyG9K+ve9Ue1yt7IW7C97O8xm+7qd7EO3Auw+V94O367MuH92+0+5evkO4xm9nqd425hK9U2b8it5mc8mb8su7699e++2t9IO4mb4iu5Cu9Sdkqt98+oO5lm9Cu4I27Y5Y4Md3wEe5kO52d4u4pe9kbYeiGdwC9S9wO95au4YevsWd6UO+hG7M+A273O+C93a98O8z0+qt94W+qexU7EoK9.ciN8s+I27jGySLe2K9ge70O4wu+K9L+7Kzc48e4JvabZE3e4Ceuqe70ew2+kqD+yheva8xeiWc83AeiW+w6MdsGuzq93c7JOdeEORO3Udj9lmdj9m+vO3QO65O81W9S344O8g+zmd6UO6itTK6u5ixoq8h23c9QO3g+vazk7zae2O4xe6U+jmou3K9U9t8ii24sz+m+h+x27M0Z+yu8sdue1mbyiu5Iu0e0a8O7luk92ae8S+6d9Ge4md0a+u4s9OFeG92S+rm7j24LeUJ9u9aO8Md6mb4me0yd9q8K+O7E+WwUb6mG2729IO+1O4semW+mc4it85e2k2d8MOkq3O7m9ket9peh1+cyGu125u8O3Oxu+pq+Me7sO+q7OyW96b9uK+66c7tGkUtTGqY8H0V0T+c1c04dt1x4Zczl8i1ZyUe7ty0QZpKO0GszwZs6ZSkYstJiiYOczzCztK9n2F0xnsxiZclGkcWbNmFqbpj58boOG6uy4wPOtY8aLJ4Qps8CXdpqMsFoiYV2451qM0Si9fG21n0mau3RtcTOJ0iZtz1eooZN0Z0kdB547QZ6qui7pNzMMUFrdm1sLykenGidq0FirdRzh81OgG5faunG67penm68uUpGsQOUmGkh9Lr+khVaSixPqccsuqs888QYrzF4wT+Os7rl19XzyiiUaNlo3SnY4nmV5QdoCASciyqsWdR6+mq0TapSCcVor8pG5Ey7PuQz6whd12u+uVV04ZNR4dQuiN+EmdWsWt06Is+b1zG08qzMssuLKozgd2zq411qNMz67RoUq5by7X+6kj1Tu5q0pdzmo5tsGrVOa8iZSux0C+w3nue8XoscsiVJqUOYFa+9CYynMJU8njvt29S37Zt0z0ps+ks2XttZIos+ZuzpX1bn2wZcanih85Z3Vm05VKw0ejMKyG5SmLMOl8o19mOLKyIcCWxhfVoWklrPt2ViNhmq8UsVko28Kyozb1X0qO65guaVmO57.26qCYo7XuWnCsk93HkKSYbrk1+JjMGU8pqvowg7Ds8VuzVzVQO0itN3l1usaVkIwp7VUzqHsBd9KN+tyRWaPJxH8bjkEuc2XsyWGsWyoV7ZGyoYmTopGDYXT2X8aV2e0st1fpKWqwEVr2ejUN1lM8bu5krwA2w.WlxBoBhPQTr+PXQVZjke4Ibsxa8vom4VtkOFUtT8Xu2Bl1ymlI8.mzle44e+MVGmj8bsQMszF5lwhTIul53hr9NKGi49McJPhCYBSFSGKsqd+sFK4Irun210xbqKq9Xpm2rLqO3HvduJE44NujIukdrMNNmyhNKUVxR97vsXnWeZy7XHic5xy62Yn6ltNEo4p14IZ+FZcPUduayTRwOdrx6eRvpqr6mzakjr6sOhTE0QgfZT3OGiQYsOvQEKSi.TNZxgQqXVQjcCYKPFSakb4HuOZ2YuWkwVs0P1kl6uyJl.EIn7Wn.i0YKS.rccma8ZUGTjivwdCoJ1NcxhfoUH54R1b.Pa90sOqjDj66TwDpYQqEXuSwtISz68rncQy4pMV3pifv2uCIqcdx2sdv0Yq59GjDGEU3IxlfL9m16fqKiRGGJIjgdxMAgUjo.cjUWormJqoFGsZ2TVVNVkDAyt2A.d.0Qrd3NrsO5XEKphCKIqB5s9XYhTRQ8HmEJ+iFI2nykekW7e6W56929N2KIaJaEJWL8mszORKWHREEbohKtqPHFaMdE1PaEk6He3jmyQs6dOqTZhbJTrOlnMzQUYVVwp0Tn70ism+zYzAwOSN0J3bW9XEseSIFlvekhMoXhQJcTwnn9m7rr8wfCRxMgxoubbrO7RkQuBjRtcx5wQ24lIaZ8zpHXjOYEcRs497oTtIYLY7Wa62Glq96qTeZXTTFy6ysWsN+qjYk8YxtWgqseqjhdnIm2Jz.E75gyfgBfI0zaQsZq8flMGJEBclV4XkWojoHGU9noWfJgod9nt2daRIeTvDvP6UU986C3HQTnJPhiAeDKi8gTor+6gsSYVpISi6OrjUzI5dqWl4CSHw5TxQVI5IicoxZ+yblzZ5IEEn100WtXjjaD4+VwyL6TAJi414XzKJ1jFgw2bWdQISqDjKDLwPaP1GEQknRT1RZW0vZESGCOV5TqVMpKyqbtw0tLbrj2yp4NKCiy7fsQTFLyYb4f+.yRxSgRFJMc9tWopN3JKoILBuOKnYUm.00qHR0B99BLn0V8zpz5U9aK8tbercGj.jrQO5ZIwX8fJbjx3SSFUMQarHyJ8JWVQIyPi8.Y4.W7knND6WLjUWEKfBNQqwXVZWgYTdwJ6CEFpBxsZLyHCRxrAqE5YHObamaxZgxDanDUZZO8buQIEnlLvz4bHQ5ZR4UgFoPNHEV8bu8NO5xPfhNQwjPov1ahVGN5J8iEATQob1uMR+kkGKk4aD1Zxj+gNrJO.0UTdHsdahjPIzqjjo3gqtLlse0S2yjBKVwuJaiqCSlr5dRIt0hcGCH6epKZmgbNqjlNvwgo1jYYetKKBUYPmJNt+XnLKlkmELSqHdM0LfJwoHz0t+j1qLcwznGkCYjQICwal8KeSk8u1mTZxQvZePwEkozwjG7l1R6JM4j24wqasDV2dnsp6pdZyr3sTJBlp.K2DZChhjXp0u0dKMxxemxQ2pzi.EhkYoSYHqUXEfU5zK+sqGZOsLipsQjae17fH6yT4B1gbLwT19c0KV0Hn2jNdkLmt3Ht7fJy4soRsX6ctwqQckUp7X1EJlNKp7BSxl2DOnlCLQo.z00p7bTMN4TFCjG9ZonB06njw0rdUKaXJX8V8Xs2JoRAnxGRLNPxd6MkM04uDkwTq0r8a+igdOt3PtL+REibdMnjfccDSOyq88I6PgSnzEzQQRwuadyjivITxbxed2UEpTjYwj5WWoHIku5jNem+omPo1DsTp8JCmbSd51aGKyCgBSWlQzaRSUnzAJYmgZnqOoJojsUNSgpOzAf0hpFzcUQgpfcPUtNZ819PuIPZkhwAkDojM9laDHs16ezHCijoTXxUThfCzehdsruNvZKDNvoCs3uauwTE6H9Wz0qT8Sl7PNzI7dUwaRFWlZyqqRKXZ0ntnTJFGhTiktVIh7szx3Xe8nUJYKNFRMdObYKvQPYuixynbXLowUUPdxHCa9qygqLQ57gx0ZrhTPUFZlfllc8BmLqa1Z1lj2Ppx1nePKqG6SymBYpDnTl6cWxVIRUoSqvIjkwXe4pj66nQ35UYQlab0Ydo7C408fCBl9BknBPKZipBSXauMhBGGOy4Zli3Glx4qzfV530rTUxElZ8I+Dc4jqF8sPQraJf8fd6slzpmw1acDa0jddoM02YIcysNwF0LVapGJn2owAGghQsD0ybZHiBllp0RMsnrHH7oyvK6kU5ExZpVFkCizdadYZxdOqDth9vY5yhhcSwHToYY48QtoSV.IkFqh5Lf4TKHXPVbnYVJgNiYL4yTu8T3aJJujocVTMbYZTAP1kOiZ20WAxNSuHGxxmRBNu2p9XQSbV3fKk22p.kXepq8PDPQqatuGTEwgNSoUttoPdYJ4QzhcE.oqCzsoxXmCVGipMHLEs6rSIlTFTJQfhs+k5QQoiH+97K12uUZLkwFEdfBQXPBAlxQ0oEX5AR1ZxtBYjT.0T6+N4pZaGXWlOzYqAsUPAfLLsYuRg+JzyNdR1uaRgMtFzYx5HRVb+mQ5VgrQlS.2jVeY5xWE7WP+pWGqrAgSfJkD8DQoAmxMiawDw3giiIKMi86nzknDbR5Mjx2JUSlh6Lq5nH.DSaDStdsqTEGxhdT29byzvrLUrmbn3nKfJaO.fzFZYnVldoEdlH6OTBnx1woZnsn78aiIiHazgfhLSpCYlvDTBc8njdqRQYxzbMXltbKOF5kY1rwNqblk+hlh1Rokj2+Pqc15n6nGkFXn.V150P1ZTTpYYEVYwX5XFH5QVH0x2jFtaBpfJwJ2gfKvkrEeX7wfkTZZGgIjLkgLpllV4T7aJ5y8EVTdKnojjM.Mqs41dDomEQmpzAL95XQtpiJMEXcu1sYQ0ItFRbP1Jc8tFKvSJ6KIaa5qKURSeD0Agi9Wi9zPoiJIveFs4pc+jTIcWNpbEwD1butUN3EhpgX12V9pDmqNHiqAU32UwMBfrh07FFUMQxp7aTHaKL.SraCa7GCpOHs+TmYml7nhmCf9BO3t3uU.JGjGmhnfnOL6M5zFXvclB1L6LyrJ4bQ9aI6gsdD0sRwLMoCWxMTdeMzTB1fZUY6Uqeq995YqMDJfIEiPZNTnxiU2jaaBO3.hE.WpYmTl5BHycf7EJ+895BT.3fkRsB1J7GAkEoC4bSmuR6KmsBFTOpS.VshYeeMBkc79Qk.NqSGDthZNpT3zZRgpLsOlFRSPeBa5QPwM02CGpNlP0qCBTwDXp9w.XCE7SbDee82oYRk.+h.mLCHrkmslh8Qoqj8c8WGMjmdsNC.OjMWSl3DVPKBRJf529npnRQZEICb9StG5wT65p.zk5p6NUoDw0IOclpRWoa6M0ovVIL8ohxzAAB7P0UHLoJ.hctG2FJsW.UDvrMYwsQI1DGKZyzvzw.EBZgVHloI9tF.qXuTXAJMtnWKEmc.siXFgUAfg12.wJf6n1K5tqmaClyxAxE0FZvnYeeoCHhDspoX9aJw819HSTJxJjj.OmYZFroawfejdoBTnnQQ6eLJMxApfKqzzTdvCYskMQzCelLDSUJO5TQIsGMqS.ltdNoX.x1I.ItVMcVPKWx7LuOFwdu8kRboczJ0I8Xqys6yBRgtzTNYM5ZbcKNLXiDERL.DeTug01Z+HahxyMspUI7s0F5IeDxaF.dDjn1G95nKerijbqQiDMk2hBhTAlGJ5jkaGcixF.fGU1oJ3ts1jZfLxL.zTaSJNjvB1Lo77M4Ij.e1WjxFnhD.zuXLi1tuqFEtSeHkisjqwqZKGkj.nkK+wi8mUNXbSHlwF1RMgDzwHPYIG7J5jwtTSSuqNlP80J5IG7et8imdOz.qPKp0lou7oIXJW4p2oB4lDdkwb42QAWpP8SDi49ifKhgADvImwKGNqvXQmYUHScQLglTxbBQl45ATHb8e6XLo7jo.CP66PafjTskVgyI6iFj6Jibr+LKC50gxQvLtP.jRkxc3s2hdjhreEy1VBj83K.fRqQ1Dz9+xXucTlXuor9qM9G66p7ozZj+OEy3g9EVyj4XkxjgqkCVSiciZfjYllqDPKZXlXtB0krCdWT5Gy6qDG0o0QA3.NlLsDl59efGM8RLCTTGJ108nMVwvbbvj.ModsIyMmy2UlQxCdsWMsQ5ftjon909jQLkVcSkYn6M3bgQFJs0lN8YQgXRyT4jvzLybU84rOiX1nnvtb25TCyTTxf49W5.3+9hjH0RxdCoLZjIldIhvLcXl9R.2mrLtNMslU25bEXxwrsIeg.i1817NXXOZfyUFgOWsIilXRJmZ0n6h8+fyW3CeICZtdP.BOxju2hdBtG5wT.tJNrnGvl1tpyeDRbixPPGtcvZaI2wqAQq.BZ2uIU9MYaJCrPIkZtHoST5+CJnE0ZvDSiV6XvgXTSWGMyPFUi4HIw3FpTA12B+HUVkkJ9tjEASixvzKotovzq19HwD.MIOOkZs1vlbFmRfC1FsObnjIc8zUly01iB.ly0lEFb0BnoWGCF6m0oLcWoEilaK0JlYWklfyXksZU4Kce3+D5i1gvXmDows+hKiwhvUTRmyUeeW0nTGEsmCr7NRNKBCZdNyIYSlQalouWWDivNn5T9QM4rHWs0zf5MhY8jYZrU3+xKqheSlyylCsKlryn94Z6+vflxkbornXi5YW+B6GdOkgmhPoRmFWMeu90GtJcjzEHMMDEPkNYVHvrt6jhhOHAZ.0yQd+P+ps6MFlKJ09X3Z.BMzf9U20xVFLHaFnxJkNjBH1sFG0xf9zAfJpLlVtQqQVzIOHJxdYu+vACENlAnoFUSc9ThE5EGENWgUqfNcwktX1PlTDEZ1jAeZMPJcIZHtbrzMmuo98EEVfbJa5VcO2.y1xIaK6liq5TQFPRY5AXteqQocB+53mntcGZjLTXyO0acRzwU4bYuWwXJGDLoSlw2PIvNntqxQKS1fqwh5eJB1Tfc7r4AoC170SPMSUAMYgnkYvllLSC9I2aI3f4seRaEi1O35+gb.obHi5aiEOS8TAvkx0irp6JcGnbQqxZwaE3evTfMR0KAcODyj218FAUOzjuXYs0fg3DY3QgZUvTZUouegSFhnOF8vV99xXRVxJ8.J3XotJlA+BxdfLTYzsKVnC.fohyILK688EPgt6JynLNdEfKa2hubvqRB13.H1tusof3BPBddF3AeqktFCiGvEQOMq8AeQ5Dz66DnzVuIuuxgLCFeJPPEAv9RNvAMFJEYkERoBNGMQO.CiHCiQIeFlXMhvaI.BPJ6QdXhoih2yctoGGSwFab56TG3gWTbM4sGsZSum0mxrqWWZmOlMj+dZhbY5nQBc4LWtx8c2fzrDNHVT0roLPOLnaQthitncp.5loSozYTZB.QtRNPQTTVMxkVT1+koCjLlnrH2F5guXVoasRLIYAafXPgNUhaxvO.jRYxNK1o0A3bnWkckmhYdlYxRSLAsin7+FXQLX.WWY4i63v0w4L4gANXxT.EGbAUbCMnoEZ0TpZ3nHhVToyWobDokgba.KlDWGwoQEg2e1Jc.MHP87oFM66daggjrAXH2GlKMSfVMKahc.2xzEwAU1lh8DDSxXt8Qlp82XNOz41Z0P7KYFIbYYhziqVXs.nFoG7GgW.SsjVv7QJrR.J6z31j5BoXuzaQvpWYOR6kQ5JnLiR4q216y8.xjgZEKiFohoEjJ7uXFLZLQ3CSPArIhtllGTuQCcBnjL6JCyocb.qLBu.lV.54bqGyXZFVAv4W4dv2OICFlzFtB9eNJlsmoblJW1BfjxfBa.oBSP.KGoSEKaerkLVX33l586ZlGUVTusiRxbTLr1fBAdvPJKyR4wxAtxFEfPtR3WvDOUh2IDvC8ez.giAtSxELKWMSiEAGQM4WyX90WlksfN+fVJVrE0E.3fSTxfAUnJaxpRgbob.ovaUNor2lObOBTjFCQSYenkGzaDYg6KFtOyjrAa5AzyqwzZrOdfC5vkLLulw7+ru.DSbPoqES3i8e9n4bv0ccY1nQgeMcemFjn.ifV0BdKzMr1JP.Jjp76XbmjWM53MrICC9ichvJrwWmpzuV2r8nvFHxPmdoIanlYWexz0dnbS6ksi0TBCRyUghUL.9GFbFovJUHALXZz6CC8VoXnRLqp.Y95djhAll6c.RXNXqCSb4GmJ1KXlyTVClNUJhbAJxvLYg5O+AdpBPzh698mtoEdfEZEThxk2P1DLuJz5fdLSQK2VTlC7N.OuPTtl4PDlTR14Z.bTlz2gicVht0zHiWEU79XKYbhBlN4X0N5lhZy.mxy7hsnirI545X.+VAVWqtRfqrGAs7cPg4w59J2Qf7qNTQh+YldL2fGQ5tJ5kDYRerbnfNSi8SfoDFpHSsHY5nGsX.C2lQSjOuNLUHePZLP2h4Ix4GXfNCxuX4HssnR+LywU1cah3moTB3DNXnYsT5DU7gptBH4SikCKSJGhUNZoMAPObSmLSt9QCXF.8gXXH0ghCTonrfWF1eu4Ve.Aop+uPnE.lBSCrljmP39xFo4AXHGnv.f1cPaLA0pAIslXbQllxZImVU5uITckqWWAcLNNf9KSmJhtgCGpm.3xRYhLbCyrNI.oHdvfZ1bkuPNwGiSkYS1dxFFBtfExQTLZGfZ6SL0.IEkgDSc8BRFFKzDMLRYLtqfzyT+W4Q.93zLBCGPIP7VuDC.mqaWLxaAyigoACkvA5YzBsrlcX1cHO9ZOwDxAhWglB4zo6l5bRgLec8BphILchpR2JMiTMwcOfEBHqnggIbl0iQ6.eWf8IGrivMaz0YJImClySJhItVjQohoSu4LznJ4LPFWFFaJvgr1fnyg0HaG2fNxPtynmV.3CFKdkfNWOHSmwb43rLlbbsCU1c0AVyr7ePsSzZgBlV+NCCodC7Xw3n9XhCOSkOKAikMho11fDffQWfAeYHFoLdtVwPB3ZKkxbQ1mZN1WUN7kSKlwbPZv9WiC.8FbuRUQ7MLLydp1NHNAfra0DNVhY97.N8dQuYWF3NbnnjILccXeZnTUJzdA+4G7733xBlflF37D5A1MI3LBaUlAJRYsalMG3vhgdajYHPlq8nvEjIoyq3CGNIu3KPeAKHEhGxgIYcBb.2xjoIR08jyKEfRAd.EfWA6oNmKL13v4ovLNNXb1xf5Nl53AXnzToFP2tVRnKKPXqFloJnLVnnHk1pAKv8f0UZMP.UZ4x3BPz0w7O8CzX8.Nm3DBJmTDlsl0UzozJT4RlheX5+8QLvHJUtAb3+d2xoXx0k8fYLjUK6fR2G3VFFmF1tL6RDV96YN.mkijglQhwpMSgfOBkGXeUlY6l7MulC9m408PIwQEt50bMa1abPzO.SD4OuZRaNGP9l4MCPPYF3FfW.6hHPBkUogygn4XvsM5t2gjpMgVoyoZKM8axHHFAW+VpPW3Pr168YoXHRASjyHjA5uu2HXGT8AFrhIHXqaPuILC..YUFTsvJOSt8nJGwrLL2Oa4sns1MDcgRtLc.qMJF.vXBU4vDqzhfGkKVnpdavfcpfMzQR3J2zifns1vE4ClrBSO.mXFRd4YxsX5hLHTMwLi.HoNFlzNgzIA5bkjN15D3BXxfEKFvNENtJi9oCjj0SA4MahaDNZpMQqCTNjcSDXJSc.nJoltboXkSwFiAL4nRgxQWq5SVE3pbP1PtLg.+p.ZyT.Kyoq6hInUAYN5fZ.sG6EvoTP2P5+Kj1TwzmEFeelOU.sUStCSF1pYAwXojQR3t2PfgvlAf4NslCtsbtuSjWeTgbmFdTBVbGdESVnU3ltgGdPJNDmNbthIbWF7MDxfXR2c8aUgvPlVsf890yuYCUARPCEaAuFCybofX5PJskI7QhKnM4IdQtYfai0vAnUHmZxFmAhpXncwbm4yDPERQhalTytqaK85QLXVlAXTuEA0tTogQ2L5MTg0dPjVLY21wmu.5wTNkn+Ti847w1hX8fLRlN1wk93TigCSgU2ptguFsLPohzBUaXY.zcANdUuqyxNh4nXFBPMPUKwIXYS5AM7QFpaQOOLrgCGRVcFsNXWroiCrWSlMF41BZP8nZbHAdW3jH0.BaqaixaAKALXN0HbOmutnp5A25wjPXxaQO1JVVV+PiS1e5RFFKT36AyEhLVt8pgo2BkIPN0gyZLyvBCIFPdYkc78VllJOhtbyrhYjxfYvhVSZQB3OyLtD.C2dPB7yb2Plz.LMbMuVv9tsjY+QNWBhgiQxHsubCmXsL3TLny7AosZr+x.X.MmAe+Xh0qH+bYF7EN8VZNhILiB.UomQsso8Ey3Az0GiSFPFxLEKifG.6HlSTMO2f8.kSvvUfGCljbWPYLtIL1zYp.Sw4gFrqCOcIydEqpioyfL9rLJz52XXvFbmp0jPzi56krmTHlGAW6ehbALmBpALjnfkEhC2X+MgZkzXFAVl1WHeJmpe1hA8qV6N.oivjAbZvWiYJBGETVvH.enfNCcWkhoiDpm.vS3XpwFsjl1nmQ8TbyjJTzBv0F5TrmbZ5z.gaT9kPJGRtAmPlGUbdyfd9cE6BJ2R6S0acHFDkEy8FNWwBCykEpPPos2aDBNSPMmXFyIjdMDPhBy0OvzbYkYN38H.0hRGXkcZTYCYcBZlBSqlPkQDKnnyybBAPp5X3rDLdBmdcBMWgDofvmUh9xb1vMIWLamJABF1alxh8oCiElCbAzspoDMGAw.EJCfIRxodhGSBgiNYbfao8JyHGsAsCLI2Td38nHjDmYCMvRPKNNLixgWD4CFEggijofXKpn9dJDt84KBqyAM+Q0tZoCW2.jwN8Tz6D0Bhmv90ZJJ0Au4g0CbjpHQIvjxC5cZEC9Sfxl5.mxBvxwza+Bi3bJjhMPEgAE40fB7T7oT2lV0QrDCZ.0nFDX7wduhxMDnNedPZiSWUHIZ1XbD.AHFTlBgBsv5Nrc49TzJPc7nFIDKoi3aWAUDGZ2Sd3XMiIjs.gvdRyZ2utEX9P2RTJIL0rOKJrIsBtRep+m8mqTjOX1sAMEYFdODSIHXInEAj4MiLBMAOkPsRvvYtPSAWHfoK8eLLEOJUiBfFDHmdo3RyAhqGw0.BdolmtFzncmAzBn8cllNRdYZurbY.hmLgKgrtQwrgJTIAImcW1d1fq9X1cL7BB5YQv74Jti1dKXP0sTqDtVkkcxzHcftceAhSHGQCs+i7NzCTPX.kJA8.8p1AH1JP1rYbaAGKAQomLbUAibIDdKCIBkSaZIWoNEvcFRMminCoAoDfxL3hOm29BCdYm20c1T6vOWEYnMna1iPALLDACZiUuEONKq9UAbu6f37YHUFtrUyP..vMnGIq3egHLw.2lNA2n8o80YoH5hNM+2DaEPVlgV9qQ+bhDaBcrNpZuYL.BdwMCmjoPNbi8THF5.SdFbf8ZPV5cQitwxDVz2y7C3ChhQo3i4.iB8XO9XgONQitkQuQ0oMPYHEDFiC4jStEsF7Tn+MfHHzmgiW7gwtwZJQtMllBElwqBHohcI48.VfgKEbGRwqzy8dKBvBSqPD4iAKt53DbpeKMh8zrqseqDC9gBPtyt08xf.Bd+DIaZAnVL8EDhPXTgrQnh1IaenH9HPWWfYXW7ZJfwLMfB1nr4TGRzh5vcKhEV1pUACxrlxo.Fzb5f.puph9OXklZ5di0cNhAA.DWWBRDwnQ8qPPCnJg0poPCXRhOgsriGGBtTg.GOIVHtyIAUYP42Y1MKldWGzPfhGFtqrX3PpVP7J7DP5aMC40rXeOLELCIQ03ERmWgfwnaN0pis0ZQ6BlcJb.rwggc8XrvYvCKnrAFvqRFjsJRSMfxvoA4mpSJBLHiU+xPuqLSGPnivcMFVC.M9kQCeDdhLMqRw0AWzRZY5HqSFdh.yancJNFhnGy9AOFS3MCCHIAQ6TGmFZeWwIDIxKUEHskzqbfAjozpnPAny5582b5t2H.HrEMPrVyMJ4LfAvmJztijQpIBoYov3NbXnU9P1smmDdiAbLoYtyIWH4SC3aP4NLHrC9SKJtTqD7.79I1phn3BJpzY2joHrAzbQz1Tj2to1j1ARMenrDjkpq23jrWYFDBkqKof9FHoK4weA52GFjuP4H.LYMhlNa.USsFJ58HTRTCGRQFKfrg.24rSc+5mrGn2hvWoPkOlys.nXTP8JfdxjgyjoQ.rEnbVLa7zSg1ssnQ9PsoUKKwizDA4aUbDNHwowX.HeVZky06oA0xADhkwVpSplXLGfnRQcMalJkhJWyvicRX5bcC4HpiChSZYTbCBID+yJj.jQ0zCGniR3cQ89V46YfFBE2cgPxnfdQ+s2WXjNwzkvv6XczVVH3Py7kOeXJTCTmPyJ.K6PMA08NvkArLHN+HGLrpwyYnPkjiPnM.FgPGRrlJnqn.gGObTxQLS3GHt2L4vNdrENcrPgRUT5zYg8Y2fnfBNVfq8bp4gNfPF3T.pR2vnIgjeQxP7V2VzXY5B8TfAJ+vPUiSTuKL2BFwNpN8CsCL1gj+ykkSDjoXzAuSCMz2cXwlZtvnHhNYiLSXFnbv3ZDK1dlMJJYbTnVFHLXs9ioC2FgpeMgNaMH0rGjzabiaN49hTZ5vCwLnJGlKtG4UEphALPjA.UPB+5Uhdz2OlfgEIHozLcPp.poMI8xgDvTQdzcrcfRdDsAoSvwSpfm64fgcC1+Idku+4nfZthnPxBhwXNjsXNxeDvwuxNSRg9Nm0d4kipOZPmVx1QKgfg6.+.++Pf5AMR5Y59CiqxarhI4ELciiEJo2N0.9w.RFSETlTg4Q.xOvkkYJ9TzIbiAaXzAZmHITPrfB010zlhRjLQ8DWN5zAzSBWCnFG4kn0cU9T26NVQiwJ7vvXQYkDKCV1D4OH6qpZ3HpfV5IaelNpUPBPIRsP4frv0D44So8hSK4.0MNlSzZ2F3Iah2q8mtPqcqH1EGfNECAJOYljOBlOe3hnWlBzdCZEOAnOM0mDNpqybRUgSoc5bDMLIxLrx7.3jVVTIsgdRXDHsLZPv9AT4ZZ7zzznyV4DIdPwQLCPJHPBDLh4lhIKAH0kkLfEzPmY5aavMyUDXYTQzpCpKfxpYve+UCGbw.9K6h.krZfGZya6JUHchS7Q3XzzDIvqGjZBP3d4HxPzmRHvyFM4vTxpNg4x.Zvc1wlGJblLlYNw6nFgEjdT2qnmeqokLvzFznBJP9u1g.NeBOf0.I4EmHmmCosEzy1C4Ry8JOQ005f7RTZQiNc2nonjaHogu2RcB4rBT2fBFUMpa3ASiIEVhp0Zh7ngtWNlQkCbrgL7Rdvi.LNNl4+pfbkTIuWPUee+bnwmeJHRkr6aFicP3FDwQzO249RggVHoSI5cWlbKJlI.FU+lAM5fgD2XhYA7W0qD5Aw9abCd8FxSBBvp5H.Hkk9fAnRKCybyoHXL9YP70GL7saKYVBZl8..1hdaLcrOh1+F5TBEpZeCPNwMtHPALH9xfpgiDOXp9QmBnI+tZj1.eMnuCcHNr1dbKpnzHbd4cSQHOMRm2fvuVmDQ0lo5qL4uCjdNciYXLMxH3hAyhZj1sDY3AgXRv4kkqo8Q+DnY1czggf6JLuTvrUlQlYBgot+fBJKMv84DpDLr3jbTxnk9E5YiI4sAC1o7fCS663KHkdiLGF4J.SKmrDSKb0MrIcCQ3bZ.jdmQmKliDsBtO5DZNF8tm1OyP2sOcuwLnyZTVpiTx0xDvD+pgoQlysrw8M58B4tQBCN4KBpKuFc5WgHObX.jXFolRwbEaPYdMHY4IYblnfUtASp.htCAXt3lyBbHSlMzu2ilC5hXgFPlQydBf2XV9.jACv0Zv29MiXqjg5hCIlCYt8dKYRpSKMZQVq47hAdxLYY813zv2tWQTOAS5fMcgtpsyTHz5FTeKiRRuYBYCdRIzF6AfM2P+g.PevdGMaU6vMMrHlzIlbektUo3T3pNQVUok0Mi1.bZROF.ubHuEyMtBm9N5wyx3qA77YNtOfrFPJq6VgbIlr.XQ.5OpatIGyN7L.PiukcZwCGWaXNiRisbjhAfhmIRCpQ1.0EnFcvfJp9UwUpgLyEBJJPA8N0AoHpQCvtohHblrrbAB3NPtjViZ9.hxofoClDWGPUKYFqLkdZBjTZNHJyy.5M4I.BxqaR6j5vByUrhQLyo3WHNF55JfOYGvvXpxh5RCsI1bzcLQLETwakQC0pABKX6.Neo2JFNepQSHfVVQiJ6F9JjRZBqbUxZmc027W5Xc.IKXsv8gxpLEvT8AYmYfEODDckQHMEpqPwUsCfh3hFOUbpNOvEDJzGEzZTMwLgnlC9zpLUskCGFSRDPOhfvxvqmvXFqVkNXdLYxBLBmB7+4XMF4fQybe.Q9HfWG34wT6ezwCD4AJC1dDJ78xuanA0vy70XZO1ycFT7N.H2QfHd2DySciQzboKsGYm.xufEcvWKx1tozALHszaOPeW2ILp0v.lr0L51tfq0AhKsQlKcSkR6Xs.t8B.XzM0fBpmHC7MWvBn6aDXeFTOHUtHaF7Fj9P3t6.6eYCJsWL5fJJSfpTu3nl7UL+aPuuSbXYPHD06OFyIFMQCcgFSWRvMaLs7FIjT1a0FSF2.F9Qiw49o19B00nsc6KitrrnK+HDM6wV1sSV4x4AxFZ8NzRYdLfcATtjYlNxlSn.CX4zY9pgT5MP.IGLzFcNcQONL8OEx9S16YBpnjel4hMT8CR+svKRi5kpsyjuNy.GvVr6xpf0sxfYDywKGJk1ZH01mPUmKO7YnTB4fp1x6G.BznVrYPShYWpQ23zBbJz6QXPCSgcg4GxPQyHDUYC+0vL2rB3REBn3V5xE79KOxw7rSygbjEcLvYMX7ugi4MIGxHMkixWC9biPs0VCzyrfMobZj7f1tRGg.a4lQbEYJjJufin8QPyv2M01zfqfV6GSAFm3BEFAd+.iG2a.ZE3lBihRGVRtlfSKQAFcnbhJdFS1G5zcGMPrnysfsi8A1QYqgG7PfcZFnHBObDScYi3dVNmazkQlbpf7LFFnnfF7Ps1XFYZNldhQHfPni1a3vshxNXvrlSU+Ln8OyNeXHzJhDdwjVCjpAD8WEV8zkAIgQsfRDfB+RFFMm5CQ89ALXIPpv9n9AfF74Dz8YK3B9dzJQhfSxNJ.f19FSN9jj6SF5rhmTzZHFQLpnoQ+TxP6+Po3b0tAMAkwfsed5cI3IkAD6L8qCI3zwYuLDrCjJCJdfgXc0QqRzqGYkt3HaX8R4T5RvsEJ9NimY4qJivIxPqlFl3kPtWBicLqUcaqEFAeGWOk.tgrDAE358dL7dU3OXGaMuz8GCBAFCMb7KkrkrNY96MmcoBrcDBw0jQ4xTQG3MrFsDIvcYwQkNDeEC+k93QPNlFqQqEv.R35na4AK5SUHuZIC506Hg6T0aPr5x0EZzucvxChipi5pYjekYZpsuh6crepWXFq.SqPaQf838PNHH+mLPnmpqVM5BDyVAN4TdNGaSaIQYokoQDxEZjoCz3KDcrNs.FNow.aPJY1fdNgT9tLUCKR6TajVLncH.E66svgbvP47Y3NSlrTkYIv7bMfvnhsv7RLwJbHI50XLG1WjlHfZnT1CHPImNXfBcyNCpOR1Y+.tBfRlx.WYZFG86eQiHfi0Mpn.8Ul1xr.UVGNwjjZRThB3Av+yUSvaA6qQvGxbvQw7LGdUnGl.iQmPbRMGw8BR43zpHzUFSsECZdjW9vnYSQMDC5BbOW2Q8OKrOMCvoVl2JxdKcU6PQRNYRnMaSglW0ZV8HJkgCnPof0iWA0X6TPmAXCFRAFrRXxcmt.xr1tf6LxkpooVoXxZ.zWGtwKEc2isQEfR+vf6xLL9JJxo7Asp1YjD79FzjUfh9CSetSQyIkSYferBsMYUIHlPlZGDuzbpXM3akFXy1ilQPUY33GYBauMJqtiRfqXqAhBTwbl2GPVjGhx3BRPeZxOCFGAyXAio2coFEsLtbhdz3bqovzJ4SfdyLXqsCyruW4sNrncFFV2H3gnulXQsTMCd0IgqkvpyHTOzcs6urJQ3ggFthQz0XDSuji3umHLZ8tKdof5RgiQg6qLAtUBxRjHTgfFLXjg51lH1mUn7a6yCXNH0cRGVI5jb8gSNgHVI8xFD6zrqG7+KXo0w9BNbTBEQPIBvr3H6MlkiBg9PkooMQFpXmn0ZyPauTh7lgWBtCgoNLTfamrc.c7jwpAYY2byuALKVPDR.8LyJGJ3vhI9.LEWcRULfiufZzFL6rgs+fxMgBF6.gcWt9MPJwQLr7Jph1zIn8ZuWFIYWuGMd.NxQVYArdXZPccOm.kV5kXO3x97drKE.C.NgrcTc9kOhlRBUttNZFRQXw4ouVJ+K0YnfFenUOsqauaV4QApPU2SGkudZN1ksQX5dnE08NfFTspB.t5vB1QF.Zc65z0hZ0.HJP9VDYBr5oUrhZAgpqTZmvVXFuDGHcsfEDp2wgY9ajEQZEubroGjoatu.aXvnWHZx6WLlAoeBf8PjTJVdGZgKdFS+kA45L6V5UBpJdlrKbCAmdNICqf5TyMig.HNgNC6pd8kWl9OSX4f0QHlJWmsIGYlEJzrbXmGCn8ffI6ckn.5Db01GBZ..C9KcKyQJlo.5+jdOCt5xM8YfyvBvtYTlFYngICV9cHwhx5vhKQZuG5iHnzwQHHUNtB8eQ+6Kld.P4jHvXFYFj0z8O1PGqJH2Rv9DUmSVvfG7Y6Dofce0DQFqWjujxTtc3HARFD0JJAFn01X6.RoWm+TT2TUroQNKj2JrFTONBkkyPRc.M.BOutbzkd3HjmAze9tYzFB09oP5rGwnU2brnbL78ZaJndzs6.oVqdD3FYJu.FLlTHJd8pQqFGGolknRqAuqPiIWVsgHiZvRAj0lI2TRRJm.upYjxrY4SVkV46FUee8iosBLpBTZPsCzQ8CA6.gDfwXOser2QKnVLKR.BupgVuP5dBIWGtlesmvQXLTaIPeWMTYu8lZXbTgY56ouFfLL52O5C+XYlmwP+DX5DQ3TA0pFpAOHi64H31qkcXtzVelicxBA4fz0UWhpih1B8KZl+9f0gPIvCVkX+5rdqg7XIa6zKLyTBGYRWo7c0ho8ngR0S2glL2n2aL1Jz59PInDLqwxhzWY3pSbUjEzvoLViX36kKH5l6V5P96cBA6v2x4X7nZlJFbPgHXPRzhWYMr.pKXjGsXCRhaVv6RtwM.SLcq0jAoRLrCy6xic2vz8LlXZwf2jEGBJkeM.UTFu9c27MPqUfmJNJg5EOM34eBQGBsVTLjkD0MgVxf56Ry72GNCiVTCVDZEx7poQOxgEEp5TOmLXRochzs5nMWPlaFjpRFMqPnjFkpqfAJHS3BMXbGLc3X2LHkj.R56EY7SjsihaT2cEnoRFxARTlEJkkNz.OsneueB43b1HBI5OpahqPdM4PKQJE30aukwE8ujonJl.TS+GFfsHFCAvQy9vplLaET3I3wvxvnSRzY.xSWuyg4+MM+k8aknWctNUzwCeBAbiQraeDGGg5tQAiw9uQxEUbLZqIHWoAcVYXXVDmHEaGFORltl2BQlSm.lfp0gorqAAKCkP64Pw9INT+.McmdgXjNBj7hIcSNse5mOITYyS18Yxg.ugF.TpjDP+35AaR6DLvv28.hXhXG2uYldMAecCAR6BQBxzFdQoFfBvji.mRYjCTzknd4lx1Qix6YFDnNfqyvIOGLL8uPSkLFcAW9TNBvQLwP6B3Po6B2xTf6gbtMWAy8nksXTr22imDR02AJzEzYjQp9fSTfX6olDfdcWKQKmjkNBlOcXLQqf5nZ6A0T0MTzUEZtB3PIadNa+502.g+Mnv1rYVBhwzQl4xsVrydeLw.vwVfhX.htSU.Jz8kJHCnZ55PBxum9KArkL3rGVWIDV46XA+pi7WRzaSxvJcXTQ8DECePLzHfJYmNVWH8eZ4KLgA7tkC35893jlQvvNY7TrB9BWIfS8ZKlJ9S0sUbDS5VQwX7Pg+Aor24z8xTAEbwBVbQJYT3GlZ5NgKg34Fz9t0HstonP2TlEFBIWGNQ2Olc8ZAP2avdDb2VLfIo.flltcc27hR.Dsdyk68A1PYJqBxHyPalTTjCxMENcwrxgx6DkErQ5o6SONgLGUCDfLKFF1rBe5CcUBaRTM.LDBZggCKTFwrASBHJXgFho..2GwQTRqCxRAkQTFy2u+DVoHdcnc+Lpv2aSF4AkXAHMA6VdjlV.TxXXSelPJOLSZauQtzJJIF4ktSsYBUK7.gJClG1xItn9TEXp90gi6bPvb04T4Oo.m33zGa5ZTvhDLBIUKe0bDvdNEr8ooyCc1tI2gxeXae0kOUCXlVATzOpjhSCEkMFD4SNIheHSrAsDz0WB090z24ShURCcYW9gHiRGzmaPA3QswoHQcSiHKvdOGrMYkbPG.kvhlJBkHC81sOxJ4kqtBEBtasOlyAgHjfxj0Boo.hJCxB1lVgybGGlvHrLYryF9AWRlj53Em3zCkIxD4ARB.SI4hW4FzV1fHsxUXmVzUUGs0njj60XxSV6Ilv6JdWdDiBjVH0yiChgMJnICCDsLyAelZzQ1.K3NiHmDaI.vKCH09JoT.Mec5FCBIWywX2vRPnyswrjXfbrhuLBjNDAMSigRA64bPtB5Ptczi6HDKH7FEnyDCfKQiJgHgdgAaiMUEY0jOekV10PFXMifpCBBdwnKnoTn2LfFW8JLuOd5D.+XVhYCYrryNQnDWj2IL7heNuqzA7NvQoLLHLrhhPOARvwD93lUepjYNpfGXTtapePvz94CuXVGRmBsnBUbdYfhBlMlHbh3WZKXsSAyZGkph.BMb1JvmD+DGnqf4halLZn71SFS.Rzww65Lo9HvlCf8oiM4fDCUTabd0OCZjI6LjdxSRvS01o3L.CdxzUa5SFR+Tuy3hw3Olb9xAe4CFPqrVYRlbnxAszxrJnfbVtAOTGUI72Uvv7cWQAH.DDV9I0eznOzYN.v7n1o3bt.kwYeYgsFGuldRAuf3honlkXrMcoxgZqimYJnc0pH3CjgAJimrpZJDD875fXxnzsSCHqBDG2GgzrPwRLleCwBlReSklpoCmxwRybRnYIKzVuriNLB++DYc0n6EGTbNH8MnCltgRO4rNZ7cMTJu8CPDjhVcw5L3fJYUxbNEnyVfQktiA+.hiQGqkgJGIGkkMZ5nDE+KiWcqnVqqEV6hdyXp0kRFtDo4y4QWbjIH6aksOpUYrMwQQyTYGZOJ4i5l7D37oTKbFrrMPuGMepEU4YOw6DXBYFEyXh8IBQ7dSQIGLcMy.xDy4zEiEzNEGYqLN0NZ1FknErIR2hbI0w7vQph.UgpUJDZvlZKRVrZXHpPvslQgdUH3oQ0pufDcpLqWkgxILWgIpBDVXc2Kv6lykqPqvM3c8+OA+RXXLBHC6CpEitsMSG7Pv.QndgRQ5MS8PoVFn6KYnj2toCkn1hA43DjZtyj.K1gzq.9TFla8AkalQeAwVqrLEpCsbGGtAWrm6l1ovAFn2cP1+gsuiJtZLTNNNw0bl7A.tNUHB2IvI1.2VEHDhvTvoYZyc1T9zAcoOQ8PlVq0LnrGLJt.RPCI.EwIyDlkPqj5l.qGLvc.mrScgYeWcZLhpY.0ucRwQ3NQYRYZbY4aXH48VDGIiwgrvu1qFHs.+AKXQ3tiXmQK5AoSCxAc+0J+DHFfv+IoU2IMPQW7KjsXFsHy33Rt7qD5ag2fI2xLPBjRe0fIapNPxPbaJrCk879XYYf8o8qZc.fLlMu+nV1KjUFlinkSYTzGwFMuNPSukP3CE2sCusLMgKAe9f3OBwcMxF89AZMjn0GJsR4HvA9LZyPv4Z8PuVqNkQg9rES03xkkM08qVXNvxfREKfqfksg0dowXohCvNqBvHoFLj+p3nhNHoPkqnR.b+vveBxsmFALPwZYO8xoOhnVlkYTUHCVtRITjbftsd1KtfOfA6U7+A.0WTIDCO.gVOPDHgXBk2knMyGKv7f8F4h6sRtCt2YV2PjMLsE.AmCYXVoxofDllQ4lj9PMUz9ZsX6J0ek5pyjKyHL6RuEbqBAqvvZsLM1gyfz2wIVTatQBBR0L5F6fnjaNkgFgLBU.fpJWbZsSJ3pbfTbPUSNfSSiawdmbrPkkMs5ZFgbTyySPzvz2nvyBMIzHtpQESv9zB15uB2FXT.o95HXSChnsYlo7B8bfQySK4FswUtsjII.2L6VsCX4.EnYDXgArt4nQLriQAd.e5FuhLxqCjgrAQ7suAjTHYnstlbd0W1abJmhzxXv+FNIRAMhDB4JEvzxzPkAt3VgxMoXO1ZySwPLw4LPCDz7s2yEYwAj3nZ0CCyTJGsIlVXFC8zdOygnmBN4oL7Fw+MloEJpMTnQ69iBdNNMamiDjelgiBY9NYX44fJjPU2rrAOuvb6CZmpUqp0fIN4IRuNlCCCaEvHtE67Uf8caANwADDdvcTxksRFK7zBg7hPV4TW.nscphAbdmShRymFS3X7Olly2MLiCkio8+8dwTwsDrLMnrfirVNEGAOr.Uni7IXZ7RvrCUj+zwI0p17QrS4kF.AKcN20+LZRzHnuTF8aSjrMHJjiXV..dbl1zrHA.k5IEjeXF5hFrNKZDWnkgFwH.zdj.uQz2aW+lKn05znnET4kQOqOIrpAidqsraeIB38nOuZQI21mZXCY5CVzlV0OVNt9JnFGXhzDs9duwNPPnNxlfU5L7dOj1tRJaEZhqb0ZFjIDmKFInPZk1emgvuGzz.YeTlmxlBovTcASZp68b+AknmKji.T71vUo4AEfsA4sx1YydHFNkVH2tTtHGBqoT8npqDm9dmULB4bttx+iq8BCZqLDh.D4TaOHBykP9MPmHYGhAvZPgS.yhSjJ8zndBGon1wsthH.BBaOMJb.ZCYQtPjUlBuSCZwNdFhxsazrl5oVPjZHPVkpSS8voBV4XjBMCY8BDAchMaASP6qZPLX3qCXeJjMCSwLo7ELv.inON6esP+GnJengIyrIsvN0OOsHANqVqSOb3D3DngObrn.5EkrFv4Pro6nM6AC00KEUdm0YFW+EZo3n3XYdLKWh5Rz5GNZFHvfwjRWPkDMAQv3VvQf4jpJ0LhYM0PTuIgQYqi99PWozHGoEB7g1iZnbD3jUsgiY3qlMz4LCwA0QQGzQQNrTNxXdZP.RJRoihi35HhG34CT5C24PnN3JIAoLgJgHluu9EmXRgIgaHu2qsz.ZGlirEgcWcvmivdPSAlfyslUojz6iCnoJDxAyD.CJwPXyP9UJFmrxjQCZqg4M0fByLxsdIHiWJLmoTsTswRvtRXq1D4JBFhdOCjPIdaCveI7AZy8ji4NVze.NwNn+MHdTGFOKkXnAfEVTTz5biICRszU6LnyPz7cmSKnw7HD5AEBcOkgNGnulTxrB3tcOpWPjryA7MlJvFSeWW0PjhGPccN.VDjNNR6cVg9rxGlLNkIWpaGSxsdpu25HIopbppOvvcF0egIZAMEqBOOs1mVOvdf9stTvqorozSUT1OlDydOFlOiQWTZWn4O.i2gov+AgpqadGIFzcXg15AKQmB3HmcZPF35L3TKZTvvgyZEGJElAzxOcRPYnMjElcmSLr698nT3DnxsD3Qx.1azfIPJLLahoN.T0DDh4Jpna0wekTqc.JGS0X1AQRXNMjrIsFuP7zLLtFCVlhPIwxxzPtiY5vtV0Bx+eezcrimn96.3k8TTBJXZGN3kqNahSJA3b..iInenxzUSDZQvjQTLynwYJpKSfYhA1GH.Uy1nY.fII5+WSuV12+sJ5EK57F5W9QZ5fsGzjRBQ8kVKaZEoxSYhVNFJW1dWrzzW3GAHuf79f4CAbIQ+ll.VXC+5cRtUjmP1MumQZjgwEcKryC89JRByQokKp5DL5uaLZmnQk5sRj3axv0fCxqAhCtB7YctiYuCU8sPK6KlNQBEoW95ftjSTJArW0ZAzDxlJolngrE3ksE7.libWlmTDW5X9.xi7cLLDWfpIjVfQduNOm.eAL4IDGZYO5fSPHfTMP.SIBx496L91.CC8RLUUFISF16HF1NH6CCOuxfL1Y1syfxDyLyD3bf2JHfgYmayhxCCIatJCXZSkCZ0DqAUslYynjcceVlixTbuCJrz9B4bDylJJrLjXukaNgJXoqam3icC850Km3MInwaWsnw8st3B8MGS0l4mf9TfvBfDpXl26LRtHhmaCVVxPpPMvMSLJ6XPvjXChrNSVbf1KGADgxpgGqBT82dUD86EJfb.tO8Nj4Ss5.eArVrxvoCI3YRXAQP.7+y+jkLyrVHyFcT5pIvN6vb0Ltxglj.oYe33FJziMRFBdcH7yYZwY7ZGbSKeRl9PF.TFqXjXQ1b5ZDuEgiYfedNL3CB7F2QAtAZ+6qGNx5mrHAWXvr.aVo6kXzgzoKxrvAPH1DACvw.jZFb4L3ASAORfDi5JatyrSslCTjYlT8BLti7dmCcXM4GCAnBuiPnLlkxxIjcoP4qUTr75wQ++xyUGjRAxbmlrHWGA+6JaXECEySV2nsS5bXKzH28CBI.j.p2cPgOMhNDL0xAzOZfJg6OPsxfBK2EwPebXxrAP6VYj5SYPfQ2z1HkVSJZ4qWO3P83pfxrxcI2ajVvjL5qMbPDL8gSfH6g7rbnnqVyokDVfyVUzXLn.IyfKWXljThEJ7CkcQ0b5dfFSAcKu.7JlhjNgKegoyX.eMrNRAdigCUPls5ffgaIzUefL1MQDjLppwogTQ4OsN.AMtravXGi5uNa2qty2nU3wvhUfalMdgNo1PHP6cXOOShx5uNCPBJoap6lbtRO536frk2+FjJrQIk5zLFmdLSPcPs1Pqo5U9gy4lrNB.k.Zlk8412vgbRaOKdVXYAYNPM9X5dSNgMirwNnZHGMCE92GknYofpvpcZWyn1EncCHE308c.gItoDZ0TTR7zdayXOT6LOPX.Nbj+.86d.ZU3Ovd30.m3h6AniL7JuuZY0.xxLar5yoY79IHdE0EipY1Pzfk9AwjS8hOb0NIfr.yD.3+BN.yIs3JZtEeJQ.qL5P9oAHP15j0fUxPOCzJzJzBMX6Z4nSqXvvSsvLdd+RGSMHHrjgTaXPaJTxI4nDEkYb3pa9.Fdd.4uerLjLHQdtZz4MXpaOCktBJVCwPu.UAYo.LDdOfn8fAZ2oWmDKvLHet1zgxgEX1Gdvi3bylJ9zYPugQbJzkXiWPDyIsapwDvuLUW63HjDaH9JEQU5vNlDAukWhCWIijCiadFt4.DyCGoin8oUpdwHT7JyPR.7u3rcHFtFDFSxqHQ8HtlbrwMXyo.pjKHjx19TlhonQuRTjqn+S58ui22XBWNNwUD5sigtr4vchYvGxY1HAC3FrDfhSl1qKWv4sI0xbR.PKmN0CuuAP3gQqgOmc7+.0wO5rM4.XJeALlmLmxfRffqXHeWXXbDS6nzAltmRg3.FSz8xikaJxm.qKn6iTALXs8pqfXkIBMMO9FNyag9sOn97KO2UBT7I9bEKsR8ranHzIiqGjURF0dy33pOQrXGAJZZNgFJzlTF1vE8YzonMfG.fjL.XASI64csLYtgTJ1vefQRCZM.qN.PBxA2TMyPLGOPKzgT0MFTUL+JSY7hqP21u1ovLkYrjL+NPn7btLhYBGqAAhV26TrDB9Kh3aGL6d+Q8NKFLGfhUHpMlDPH1iLnboS3al5qkinQA6e60OWpAVI3JxTBntb3BSQGPfJDRgnikrchIXSZXXF3Qp887pDDn4LXTWjyt8GXGxAqdCFVdMrnFU9ZBR5BtiwTRvCHUaf7WBtpxDKA0tDXjyhsREyN9.vocUh+f1q6ZaR4NRlLpmZcOzYZARUjAWHb48OzDIHnyfxPSJCNd9iw+Ke.lLqF91AAHDAFJit3ZRJDc7.9rV9AYWm63JbmlBPIAM8.D92mv4A5g6LqTafkUchqL0QZwneBleFlXMq.wLYDf9WVn7R62kp0iFxSOxnwxpDJEhhczBJKXr+VSJrxkUfob3A.yPOnL8HlzfKZNbwgEv2jJXzidfaTlBHcM3dQhFqYDvNV6H1jIDLSypL0vo7sPwp1C6zHvJPrKCCXGNowjR6JHh0FSuxQtsbBoGH4C.rALNmtDJkw4.Uzw06xJZBXNB97rNcJ2LSRDTWIcGczMOEZGGeznijGtRagVyLgMvALVtJtjfxS3..oJrbQRipFCYpLltfv3EdPrQZ4XwDPubhCoBwEFdri7Ys5tHGWHYn.qii.Zeto+jjrRHC8xSmiiO3YEl3kVQGtRMbyObSx7twOxTMEh73DymvXPa1TC8xPMiA9oECHNY.vgGAg7M0tEST5k.XB5PnLA2RslSg.PyDYL4FlY6NEiTp1fPsAJYGst.e1xfi.98aK2n8Ekabg.UzAqPFOLfGYJd1DtSn3v7I8heh5RovAU.9SGp2Rftcs+lLybXJBZ6ErBxHSWcCzCgwhPOqOscSSnKfPOPECDlkw.4ALWC1YfOeN12y0LhVd.WpQxM0rPkVU5zeGo+a3nGSF.azvNNFVbQzGTYnBdrMcDGBCaYEHrP3a6MOdJOKvvOhmhg07NgqIEyQHJzDc+9Pw.d6y.CFxrmolsJP2A5rEhpTfZbyXg0BWrv0HolQsSyf2.zQLDI9dwMIAMnxh9f4edsbytEQRirh.dFN5F34PSSFjJ9Wigwh7gFgHWo21YSLdj045fzYQEUaNKoYpLGGqA+7FjtP68oiuPy1vjDF5MfIOkTTCQT43LoR9leMRt7qNwR4ynB7sP66jWoyxEAeuz6RebAiggrSb15BiBuEi3HRW9LeVdSHB+mZ9f2Gpn94rNGaNCxKT13Hm814.7idFYh.RKFvczrs0YuiM3LqR+D19OqjG.hmTbsjQihpjzpN6MDDOpM3LlVHYEm+IbfZwhNDzCF4ndtUmBcopUhoIABQ5rqhkVzqmwKXOmyegIp6XiPUFsypEa2c7FHOzfEIFmsvfeuLbbRPRSC5K5YgMOsfeET93hIc9rVDCYqqRfC.YYF7myccTeyDj3HVXOKMMvryEzPzodIrNWaOhYkIPgZE9FqbV.TgqqPeaynseLocm40W9cYbIf41ox6mkaSSXjVICUOQpA0yc3K8tvFsPT0HyCswY+7Nwq.0rFPne1XRRuKUIlTzo0Cy95rWGRGhdkUN8mue1GO.QLdQoEums3J51AXlohJv1Gmkx0RHhCLXQbpaVJaLKzSznEbOOlmCh6gke3kPXztFExXd9kuI43gJfdzVm+sAjOLge1C0e9bmjzwiBzfDR0S5rU9JXi.DvvCc9HDCoyuom7IQhFAfa41F6kLziUvOEShync1yQPfP3AGDJP0UN61TbCgklZBilm89wHAD+KC8kbVr1DSiB58WiwoKyrqe1Ozxlu9yhTKAUpe1EG.qObSsBYHSxim2RchJTEg8k1QycALpfP4gYl1fxzu2oRSEFpavlZmK1onmlfm.XtZ33ty16XhCBnnyP8qC8Dhy4MXxbyJapob.Xzy5SlgqZA0XvnJrN+iHMWDbjlkG77liJIBEEVuAuimcdYi44aEXAkGyy2NineuPQI4f3qym8rLX5oDLJeP.E4ytuQgzLh.xJq5Y6DVTCgDn5g5khZSc16GLuKtsoK2iy4A6NdRGzSB6CTYRyO6J3DP1qrMKniRm89AmZhZlAcY1Wm6Cr7PzCAFF4SEJW+7VafrUA7prvbVRXIZILyykxGPwntFmUdnAsZ.wnZnlIkyJK555zlZfwBBOz3r34j8pDoPFNP.s.47u5BLjxjFBk7b1I++DySC7NxbYkylIjVq0YSvVEgdTNqrRECnPHgwToaHC4448Qw.p1NI0DnjFme+eElaRAfCPS6k5Fudv47X7nbZxIO6FLjzTH1wfYhOR4y+9KjZGc.f7Rxm+8B0yIPBQGiMm8HZgkvP383s2YykLBwsBKvC00hPH+l6yq4ke0+4WdG+GdsK4su8y+zqd6+Mu0a+3qd5yu5se8+vu8kO51q+cWd6027Ttj+ve5y+3Kie2ubdRO8ydxSdmule2zatIMr292e00+lO91m+U9W4+3eLJwAEMSYaTQxeXrhum5zXG+tibjpJyhZ6pu2Q6diTdzSsNNfUJpR+w8nxVBqPPdx5nNhvx8WeWyHpMCkeECPBCG68ysNgj0.xQjuLlWmw79i4ilAN9OP2.WxJ981hLIiCD6SLb0G2aHjN5dYTzclYtYZcuciY7cYpfy.9TBv3d6NOwTGqwAVdl2eRrSOKmtSEXRnUSiw8H.BXBqPLHzBACHy81ctx7jJG1cFrUE9+80hLzvaAcUKzgs6sC0Aj2PgCmvAlLHi2aqD.BkL8zSgHCXhx2a2YXqWEI3Dny2XKx82YDFv8fp5GK8ne+cDYLfMalHSSAt.tuqeYT8UXWGpY.AHqPm95GGwad5q+O+W9lu4+5+0+u7Ve3O9m+A+he4O4m8K9e+sduewO5G+ydq+p6q+8lu4it4oO+1252c4ydqa+n25u5s9wO82b8Su5cezyt5xau5me0m8rKexO+pa+827re628s+PE7xMO6m7ja9828sd6+h+R8Dd6G8tO4lKe7K+ou2MO9pm7ceue1mv+6egthO5yd5iH7l25lm9yu41q9EO869W7l+Cu424M0my+vezG8Qek+re3MO81mcySdxUO6q7G+gW+Im4mb2u328oe1m7qu5Yui9f9jO6pu3Bu3Aeye7iu91ad1Gbq9397KdvC+A273O+C93a98O8hG7FOLcwu55me8u9IWc5K9fadxM7ecbgVzt8pmd6qbg27ze5Su91ewmd0ce8E+vO95m732+Y27nqdtVVd9E56b5W5BcA28To+KBL7hG7+zC+fG8rq+za+fmb8iu5YWb8iu3AeqG9Se5m9Y2dQ7.ewC9NeyKdw+9Z7K+se3u3yt8+W7a+ie5k7o9O329+5e8E+69o+nKu8R8Q3A28oQeB+zqd1sWyh2C9QW86t9QW8gw8867vezUO+2d6MeZ7w8S9zadJe1evel8C7e+K+C9e36+4u7Kt96+IW+3G+jqd+ad907x8k+j7+3yu8pO8Ct9+zKdV++7+x+k+u9q+jqekK4+v+3mb4e+qtN77O6i9nq024gO7sd7O3B1od5Q9QW+qu5IW7ou381OUOX+Y28r9V+j+8oK9zKe1kexU2d0c+j3Q9mc0uS+NW705S4W7l4kOMe+O6+A+i4e9cOye4OmeK+dnW4w4ouxmy+wm88+C9zDav9Z9D8l2c2+ke3EW7Emwzg4Sa89m8PYA5ydxk5b8O7iuTqO+zeDey+s5+7te.qq+fO+Su74O+Jc2dva7SYurVu+7W8Y4AeiW21vabdaCGuhsguhS9eMeD+m+v2+5aezG+U+L9M9JdF04v+awy3ab5Y7O+g+3O5it5Q29xGvu4C+I+6es0s6s+7O3Ae40n27tW+5uI+wescCu5Cwou8EO3+iG9RC+e5ytRaXt5Cu48exke9284W9Iep1rnmw24s90O4lG8aYa2W1awca99AbEe2G8wW9zmd0Sd9eLNU9S9Zupj1+R4Wdymc60O827dWd6yhSw+7O6S9fa9rm8nq9g28zou2C9FXU+zWevWy9hO3pm933K9+V+6teXhu9A28CSu3G9R2RWbmW830wc+25H9o09ezy+zW7s9UW8rmGFl9VOTAR8tGW727D4zGqBWe21V8RI9du+MO4y+zO9lmd8i3ac5Jdwi9eymbymgIjSO++ud4y+vKu9IrO+C9rmKunO9W7zOPW7SezUw9rG7yCSWeqexkORKre96e4seLmWvOr1bd0yd2G8EaResm0WtOgU3etrf7GbA7Z48egokme5UB+s9g50xm8rWrbpG8OIL38MdntD94rH8Fmdn9S3u5exC+M7.7ZOe+o546YW8twO3q5A4teGyetuwq73oe6u3qzu+6c8S+UmbQ+se32Kcv6h26x+969VOj2NW7AegQ1+kO7DbX3egRGk5Z22u8pe+om4Kdv+hG1d2ZP2xn8yUPk+Em9ngkyK9a9rau4SzF5GeW.Ne0OHm9q9xmhu8C4u4+zdP3Bn6xEcAvVnqwQJdR9Se3G7I2byserNRbwc2++jGl4tew+8eY4O6g+xqd9U2d519Z27Kdkfht3hWYSxe9Ce9Mezs+c+5XuvquW4e0qrW9Uunup8Mu9swsa8UeXzloSekbh7M3I5+4WthRLzu3yw2TqpewGiWbsJZmm+q3N8nKexKtPc38EmFdvq7A8a+vmFoN75eF+yen1+7wu6c+nupOYewum8Lwq9g5A+AOneqGFYf7hmw+EO7Kk3xqreI788pewq7w3aEGPS+S6T8K9k9++X8+e5i0m+02cmUdYlA+29G7W6dE4l8zqhfUd9Eu1WpscrsjPnuy4y6+pgUe2VhK9C+z75I.7+P9w4Em5bed9l744URe37awe3CS5qu6KHTmUe907g40MP+9udlKegMiK1ZD6LVa+iIA7+6RXjexkO5Y2728nSQFyGnuc7czYimFlE+NO783qeqzWtlDJg2q+6dzid8a0W5WL+G6uX4O1ew5er+hs+X+E6+w9KN9i8Wb5+EeO8024kfs4Wbw689+3XS3CdvoiQQVXW7+CvggePC
I'm still working out the details of the training scripts for my own models. It's mostly working, but seems to stop training before my desired threshold of tolerance is reached.
I'll post more when the script is working.
Ok. Finally getting around to exporting a node.... instant crash in my DAW.
I ran into the same issues as @Gabor-K with the exception when trying to parse auto shape = parent.at("in_shape");
My model has this parameter listed as NULL:
"in_shape": [
null,
null,
1
],
I'm assuming this model is correct since it works in HISE and other models on the net have this value as NULL.
Here's the trace:
> RTNeural Debug.vst3!nlohmann::json_v3_11_1::basic_json<std::map,std::vector,std::string,bool,__int64,unsigned __int64,double,std::allocator,nlohmann::json_v3_11_1::adl_serializer,std::vector<unsigned char,std::allocator<unsigned char>>>::at<char const (&)[9],0>(const char[9] & key) Line 21109 C++
RTNeural Debug.vst3!RTNeural::json_parser::parseJson<float>(const nlohmann::json_v3_11_1::basic_json<std::map,std::vector,std::string,bool,__int64,unsigned __int64,double,std::allocator,nlohmann::json_v3_11_1::adl_serializer,std::vector<unsigned char,std::allocator<unsigned char>>> & parent, const bool debug) Line 608 C++
RTNeural Debug.vst3!hise::TensorFlowModel::TensorFlowModel(const juce::var & obj) Line 326 C++
RTNeural Debug.vst3!hise::NeuralNetwork::loadTensorFlowModel(const juce::var & jsonData) Line 624 C++
RTNeural Debug.vst3!hise::ScriptingObjects::ScriptNeuralNetwork::loadTensorFlowModel(const juce::var & modelJSON) Line 5209 C++
RTNeural Debug.vst3!hise::ScriptingObjects::ScriptNeuralNetwork::Wrapper::loadTensorFlowModel(hise::ApiClass * m, juce::var value1) Line 4991 C++
RTNeural Debug.vst3!hise::ApiClass::callFunction(int index, juce::var * args, int numArgs) Line 331 C++
RTNeural Debug.vst3!hise::HiseJavascriptEngine::RootObject::FunctionCall::getResult(const hise::HiseJavascriptEngine::RootObject::Scope & s) Line 336 C++
RTNeural Debug.vst3!hise::HiseJavascriptEngine::RootObject::Expression::perform(const hise::HiseJavascriptEngine::RootObject::Scope & s, juce::var * __formal) Line 657 C++
RTNeural Debug.vst3!hise::HiseJavascriptEngine::RootObject::BlockStatement::performWithinScope(const hise::HiseJavascriptEngine::RootObject::Scope & s, juce::var * returnedValue) Line 537 C++
RTNeural Debug.vst3!hise::HiseJavascriptEngine::RootObject::BlockStatement::perform(const hise::HiseJavascriptEngine::RootObject::Scope & s, juce::var * returnedValue) Line 548 C++
RTNeural Debug.vst3!hise::HiseJavascriptEngine::RootObject::execute(const juce::String & code, bool allowConstDeclarations) Line 2745 C++
RTNeural Debug.vst3!hise::HiseJavascriptEngine::execute(const juce::String & javascriptCode, bool allowConstDeclarations, const juce::Identifier & callbackId) Line 815 C++
RTNeural Debug.vst3!hise::JavascriptProcessor::compileInternal() Line 1398 C++
RTNeural Debug.vst3!hise::JavascriptProcessor::compileScript::__l2::<lambda>(hise::Processor * p) Line 1489 C++
[External Code]
RTNeural Debug.vst3!hise::MainController::KillStateHandler::killVoicesAndCall(hise::Processor * p, const std::function<enum hise::SafeFunctionCall::Status __cdecl(hise::Processor *)> & functionToExecuteWhenKilled, hise::MainController::KillStateHandler::TargetThread targetThread) Line 417 C++
RTNeural Debug.vst3!hise::JavascriptProcessor::compileScript(const std::function<void __cdecl(hise::JavascriptProcessor::SnippetResult const &)> & rf) Line 1511 C++
RTNeural Debug.vst3!hise::ModulatorSynthChain::compileAllScripts() Line 239 C++
RTNeural Debug.vst3!hise::FrontendProcessor::createPreset(const juce::ValueTree & synthData) Line 429 C++
RTNeural Debug.vst3!hise::FrontendProcessor::FrontendProcessor(juce::ValueTree & synthData, juce::AudioDeviceManager * manager, juce::AudioProcessorPlayer * callback_, juce::MemoryInputStream * imageData, juce::MemoryInputStream * impulseData, juce::MemoryInputStream * sampleMapData, juce::MemoryInputStream * midiFileData, juce::ValueTree * externalFiles, juce::ValueTree * __formal) Line 363 C++
RTNeural Debug.vst3!hise::FrontendFactory::createPluginWithAudioFiles(juce::AudioDeviceManager * deviceManager, juce::AudioProcessorPlayer * callback) Line 69 C++
RTNeural Debug.vst3!createPluginFilter() Line 23 C++
RTNeural Debug.vst3!juce::createPluginFilterOfType(juce::AudioProcessor::WrapperType type) Line 39 C++
RTNeural Debug.vst3!juce::JuceVST3Component::JuceVST3Component(Steinberg::Vst::IHostApplication * h) Line 2210 C++
RTNeural Debug.vst3!juce::createComponentInstance(Steinberg::Vst::IHostApplication * host) Line 3677 C++
RTNeural Debug.vst3!juce::JucePluginFactory::createInstance(const char * cid, const char * sourceIid, void * * obj) Line 3813 C++
I guess this happens cause HISE doesn't embed the external script? @Christoph-Hart can you confirm?
@Gabor-K Once I add the content of my model as a parameter like you did, everything appears to be working.
If you want to give it a try, here's the model that I'm testing:
@d-healey said in Loss of Image Definition?:
@dannytaurus said in Loss of Image Definition?:
@2x so HISE can recognize the format.
That's a thing?
Same question. I was under the assumption that the images were automatically scaled.