<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Snippets RSS Feed</title><description>Small, copy-pasteable code snippets by Abhith Rajan — C#, SQL Server, PowerShell, Git, JavaScript and more.</description><link>https://www.abhith.net/</link><language>en</language><image><url>https://www.abhith.net/img/site/brand/icon.png</url><title>Snippets RSS Feed</title><link>https://www.abhith.net</link></image><item><title>Decode JWT Token</title><link>https://www.abhith.net/snippets/javascript/decode-jwt-token/</link><guid isPermaLink="true">https://www.abhith.net/snippets/javascript/decode-jwt-token/</guid><description>Get JWT token payload using JavaScript Buffer</description><pubDate>Mon, 29 Aug 2022 09:26:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;method&quot;&gt;Method&lt;a class=&quot;heading-anchor&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#method&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;https://www.abhith.net/_astro/ec.jq21y.css&quot;/&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;decodeJwt&lt;/span&gt;&lt;span style=&quot;--2:#54666C&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#AE4B07;--1:#FFAB70&quot;&gt;token&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;base64Payload&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;token&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;split&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;.&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;)[&lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#B22E6E&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;];&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;payloadBuffer&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;Buffer&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;base64Payload&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;base64&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#1D689E&quot;&gt;JSON&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;parse&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;payloadBuffer&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;toString&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;());&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;function decodeJwt(token) {  var base64Payload = token.split(&amp;quot;.&amp;quot;)[1];  var payloadBuffer = Buffer.from(base64Payload, &amp;quot;base64&amp;quot;);  return JSON.parse(payloadBuffer.toString());}&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;usage&quot;&gt;Usage&lt;a class=&quot;heading-anchor&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#usage&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;payload&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;decodeJwt&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;payload&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;var payload = decodeJwt(  &amp;quot;eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c&amp;quot;);console.log(payload);&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;</content:encoded><category>javascript</category><author>Abhith Rajan</author></item><item><title>Output Environment Variable</title><link>https://www.abhith.net/snippets/powershell/output-environment-variable/</link><guid isPermaLink="true">https://www.abhith.net/snippets/powershell/output-environment-variable/</guid><description>Print environment variable to the console in PowerShell</description><pubDate>Mon, 25 Jul 2022 09:26:00 GMT</pubDate><content:encoded>&lt;p&gt;If you want to print the value of an environment variable, you can use the &lt;code&gt;$env:variable_name&lt;/code&gt; syntax.&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;https://www.abhith.net/_astro/ec.jq21y.css&quot;/&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;powershell&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#5B6900&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;--2:#1D689E&quot;&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF&quot;&gt;env:&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt;MY_VARIABLE&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;$env:MY_VARIABLE&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Replace &lt;code&gt;MY_VARIABLE&lt;/code&gt; with the name of the environment variable you want to print.&lt;/p&gt;</content:encoded><category>powershell</category><author>Abhith Rajan</author></item><item><title>Delete All Local/Remote Git Tags</title><link>https://www.abhith.net/snippets/git/delete-all-local-remote-git-tags/</link><guid isPermaLink="true">https://www.abhith.net/snippets/git/delete-all-local-remote-git-tags/</guid><description>Remove all git tags from your local/origin git repository.</description><pubDate>Thu, 02 Jun 2022 09:26:00 GMT</pubDate><content:encoded>&lt;p&gt;On rare occasions, you may want to remove all local and remote git tags from your repository. For that, you can follow the below &lt;a href=&quot;#recommended-steps&quot;&gt;Recommended Steps&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In short, first, we are replacing the local tags with the remote tags, then removing all remote tags with reference to the local tags, and finally, removing all local tags.&lt;/p&gt;
&lt;h2 id=&quot;recommended-steps&quot;&gt;Recommended Steps&lt;a class=&quot;heading-anchor&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#recommended-steps&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;1-delete-all-local-tags&quot;&gt;1. Delete all local tags&lt;a class=&quot;heading-anchor&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#1-delete-all-local-tags&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;https://www.abhith.net/_astro/ec.jq21y.css&quot;/&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;tag&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#AD4013&quot;&gt;-d&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; $(&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;tag&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#AD4013&quot;&gt;-l&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;git tag -d $(git tag -l)&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h3 id=&quot;2-fetch-all-remote-tags&quot;&gt;2. Fetch all remote tags&lt;a class=&quot;heading-anchor&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#2-fetch-all-remote-tags&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;fetch&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;git fetch&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Retrieves all remote tags giving you a complete list of remote tags.&lt;/p&gt;
&lt;h3 id=&quot;3-delete-all-remote-tags&quot;&gt;3. Delete All remote tags&lt;a class=&quot;heading-anchor&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#3-delete-all-remote-tags&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;origin&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#AD4013&quot;&gt;--delete&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; $(&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;tag&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#AD4013&quot;&gt;-l&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;git push origin --delete $(git tag -l)&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Deletes the remote tags with reference to the local list.&lt;/p&gt;
&lt;h3 id=&quot;4-delete-all-local-tags&quot;&gt;4. Delete All local tags&lt;a class=&quot;heading-anchor&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#4-delete-all-local-tags&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;tag&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#AD4013&quot;&gt;-d&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; $(&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;tag&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#AD4013&quot;&gt;-l&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;git tag -d $(git tag -l)&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Once again, deletes all local tags.&lt;/p&gt;
&lt;h2 id=&quot;unnecessary-details&quot;&gt;Unnecessary Details&lt;a class=&quot;heading-anchor&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#unnecessary-details&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;One of the rare occasions to delete all tags in my case was, that we were maintaining a monorepo in Azure DevOps, and wanted to migrate it to GitHub, but in a &lt;strong&gt;repo per component&lt;/strong&gt; manner. So,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;First I did import the monorepo by following 👉 &lt;a href=&quot;https://www.abhith.net/blog/github-vs-azure-devops-for-code/#code-migration-from-azure-devops-to-github&quot; rel=&quot;nofollow noopener&quot; target=&quot;_blank&quot;&gt;Code Migration From Azure DevOps to GitHub&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;Then removed all other component’s code from the repo (git history is still dirty with other component’s old commits)&lt;/li&gt;
&lt;li&gt;Re-configured the existing Azure pipeline triggers, i.e switched to a tag-based trigger. So, on each new release in GitHub, the connected Azure pipelines will run.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now, the monorepo had so many tags including the tags of the other components. So, I wanted to remove all the tags from the repo before proceeding with the GitHub releases, and I did use the &lt;a href=&quot;#recommended-steps&quot;&gt;Recommended Steps&lt;/a&gt; above.&lt;/p&gt;</content:encoded><category>git</category><category>github</category><author>Abhith Rajan</author></item><item><title>Create New Database Level User</title><link>https://www.abhith.net/snippets/sql-server/create-new-database-level-user/</link><guid isPermaLink="true">https://www.abhith.net/snippets/sql-server/create-new-database-level-user/</guid><description>Create a database-level user in SQL Server/Azure SQL.</description><pubDate>Sun, 23 Jan 2022 09:26:00 GMT</pubDate><content:encoded>&lt;p&gt;Connect to your SQL-Server using privileged account credentials (eg. sa) in your favorite IDE.
I still use &lt;strong&gt;SSMS&lt;/strong&gt; together with &lt;strong&gt;Azure Data Studio&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Set the query target database, In most IDE, right click on the DB, then new query.&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;https://www.abhith.net/_astro/ec.jq21y.css&quot;/&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;sql&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;CREATE&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; USER [username]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;WITH&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;PASSWORD&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;#39;password&amp;#39;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;-- add user to role(s) in db&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;ALTER&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;ROLE&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; [db_datareader] &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;ADD&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; MEMBER [username];&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;ALTER&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;ROLE&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; [db_datawriter] &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;ADD&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; MEMBER [username];&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;ALTER&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;ROLE&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; [db_ddladmin] &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;ADD&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; MEMBER [username];&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;GRANT&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;EXECUTE&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;TO&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; [username]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;CREATE USER [username]WITH PASSWORD = &apos;password&apos;-- add user to role(s) in dbALTER ROLE [db_datareader] ADD MEMBER [username];ALTER ROLE [db_datawriter] ADD MEMBER [username];ALTER ROLE [db_ddladmin] ADD MEMBER [username];GRANT EXECUTE TO [username]&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Execute the above statement after replacing the &lt;code&gt;username&lt;/code&gt; and &lt;code&gt;password&lt;/code&gt; according to your choice.
You can also manage the roles as per your needs.&lt;/p&gt;
&lt;p&gt;Some of the &lt;code&gt;Fixed-database&lt;/code&gt; roles are,&lt;/p&gt;

























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Fixed-Database role name&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;db_owner&lt;/td&gt;&lt;td&gt;Members of the db_owner fixed database role can perform all configuration and maintenance activities on the database, and can also drop the database in SQL Server. (In SQL Database and Azure Synapse, some maintenance activities require server-level permissions and cannot be performed by db_owners.)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;db_ddladmin&lt;/td&gt;&lt;td&gt;Members of the db_ddladmin fixed database role can run any Data Definition Language (DDL) command in a database.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;db_datawriter&lt;/td&gt;&lt;td&gt;Members of the db_datawriter fixed database role can add, delete, or change data in all user tables.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;db_datareader&lt;/td&gt;&lt;td&gt;Members of the db_datareader fixed database role can read all data from all user tables and views. User objects can exist in any schema except sys and INFORMATION_SCHEMA.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Note&lt;/em&gt;&lt;/strong&gt;: In order to connect to the DB using the new credentials, &lt;strong&gt;you need to specify the database name&lt;/strong&gt; in the advanced options from your IDE since the above credentials don’t have the privilege to list the DB’s in the server.&lt;/p&gt;
&lt;h2 id=&quot;additional-resources&quot;&gt;Additional Resources&lt;a class=&quot;heading-anchor&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#additional-resources&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/database-level-roles?ref=abhith.net&amp;amp;utm_source=abhith.net&amp;amp;utm_medium=referral&amp;amp;utm_campaign=snippets&amp;amp;utm_content=create-new-database-level-user&quot; rel=&quot;nofollow noopener&quot; target=&quot;_blank&quot;&gt;Database-Level Roles - SQL Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/t-sql/statements/grant-object-permissions-transact-sql?ref=abhith.net&amp;amp;utm_source=abhith.net&amp;amp;utm_medium=referral&amp;amp;utm_campaign=snippets&amp;amp;utm_content=create-new-database-level-user&quot; rel=&quot;nofollow noopener&quot; target=&quot;_blank&quot;&gt;GRANT Object Permissions (Transact-SQL)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>sql-server</category><category>security</category><author>Abhith Rajan</author></item><item><title>UTC to UAE Time (Arabian Standard Time)</title><link>https://www.abhith.net/snippets/sql-server/utc-to-uae-time/</link><guid isPermaLink="true">https://www.abhith.net/snippets/sql-server/utc-to-uae-time/</guid><description>Convert UTC time to Arabian Standard Time in SQL Server</description><pubDate>Tue, 07 Sep 2021 09:26:00 GMT</pubDate><content:encoded>&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;https://www.abhith.net/_astro/ec.jq21y.css&quot;/&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;sql&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;SELECT&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#1D689E&quot;&gt;CONVERT&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;datetime&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#1D689E&quot;&gt;SWITCHOFFSET&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#1D689E&quot;&gt;GETUTCDATE&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(), &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#1D689E&quot;&gt;DATEPART&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;TZOFFSET&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#1D689E&quot;&gt;GETUTCDATE&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;() &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;AT&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;TIME&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;ZONE&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;#39;Arabian Standard Time&amp;#39;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;))) &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;AS&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; CreationTime&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;SELECT CONVERT(datetime, SWITCHOFFSET(GETUTCDATE(), DATEPART(TZOFFSET,GETUTCDATE() AT TIME ZONE &apos;Arabian Standard Time&apos;))) AS CreationTime&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Replace &lt;code&gt;GETUTCDATE()&lt;/code&gt; with your table column that has the UTC time.&lt;/p&gt;</content:encoded><category>sql-server</category><author>Abhith Rajan</author></item><item><title>DNS Lookup</title><link>https://www.abhith.net/snippets/linux/dns-lookup/</link><guid isPermaLink="true">https://www.abhith.net/snippets/linux/dns-lookup/</guid><description>Uses curl to get a response from the specified domain. Useful for identifying the intermittent DNS timeout as well.</description><pubDate>Wed, 23 Sep 2020 09:26:00 GMT</pubDate><content:encoded>&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;https://www.abhith.net/_astro/ec.jq21y.css&quot;/&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; {&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;1..10}&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;do&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#AD4013&quot;&gt;-k&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#AD4013&quot;&gt;-o&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;/dev/null&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#AD4013&quot;&gt;-s&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#AD4013&quot;&gt;-w&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;DNS-Lookup [%{time_namelookup}] Time-Connect [%{time_connect}] Time-PreTransfer [%{time_pretransfer}] Time-StartTransfer [%{time_starttransfer}] Total-Time [%{time_total}] Response-Code [%{http_code}]\n&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;https://www.abhith.net&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;done&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;for i in {1..10}; do curl -k -o /dev/null -s -w &amp;quot;DNS-Lookup [%{time_namelookup}] Time-Connect [%{time_connect}] Time-PreTransfer [%{time_pretransfer}] Time-StartTransfer [%{time_starttransfer}] Total-Time [%{time_total}] Response-Code [%{http_code}]\n&amp;quot; https://www.abhith.net; done&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;sample-output&quot;&gt;Sample Output&lt;a class=&quot;heading-anchor&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#sample-output&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;root@pod-name-69d96c5494-bd97v:/app#&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;{1..10}&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;do&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#AD4013&quot;&gt;-k&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#AD4013&quot;&gt;-o&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;/dev/null&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#AD4013&quot;&gt;-s&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#AD4013&quot;&gt;-w&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;DNS-Lookup [%{time_namelookup}] Time-Connect [%{time_connect}] Time-PreTransfer [%{time_pretransfer}] Time-StartTransfer [%{time_s&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;tarttransfer}] Total-Time [%{time_total}] Response-Code [%{http_code}]\n&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;https://www.abhith.net&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;done&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;DNS-Lookup&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; [5.465393] Time-Connect [5.542967] Time-PreTransfer [5.626041] Time-StartTransfer [6.024135] Total-Time [6.261565] Response-Code [200]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;DNS-Lookup&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; [0.458571] Time-Connect [0.536812] Time-PreTransfer [0.619370] Time-StartTransfer [0.960386] Total-Time [1.199219] Response-Code [200]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;DNS-Lookup&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; [0.005218] Time-Connect [0.083305] Time-PreTransfer [0.167227] Time-StartTransfer [0.505865] Total-Time [0.745717] Response-Code [200]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;DNS-Lookup&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; [5.066491] Time-Connect [5.144106] Time-PreTransfer [5.227078] Time-StartTransfer [5.585845] Total-Time [5.825170] Response-Code [200]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;DNS-Lookup&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; [0.004125] Time-Connect [0.081587] Time-PreTransfer [0.165687] Time-StartTransfer [0.246201] Total-Time [0.481887] Response-Code [200]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;DNS-Lookup&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; [0.005214] Time-Connect [0.083619] Time-PreTransfer [0.168375] Time-StartTransfer [0.510846] Total-Time [0.823167] Response-Code [200]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;DNS-Lookup&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; [0.016983] Time-Connect [0.094932] Time-PreTransfer [0.177621] Time-StartTransfer [0.522677] Total-Time [0.758300] Response-Code [200]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;DNS-Lookup&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; [0.005210] Time-Connect [0.083526] Time-PreTransfer [0.166203] Time-StartTransfer [0.246943] Total-Time [0.481547] Response-Code [200]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;DNS-Lookup&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; [0.010488] Time-Connect [0.088643] Time-PreTransfer [0.172099] Time-StartTransfer [0.517206] Total-Time [0.829188] Response-Code [200]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;DNS-Lookup&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; [0.005282] Time-Connect [0.083156] Time-PreTransfer [0.167259] Time-StartTransfer [0.499211] Total-Time [0.734148] Response-Code [200]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;root@pod-name-69d96c5494-bd97v:/app#&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;root@pod-name-69d96c5494-bd97v:/app# for i in {1..10}; do curl -k -o /dev/null -s -w &amp;quot;DNS-Lookup [%{time_namelookup}] Time-Connect [%{time_connect}] Time-PreTransfer [%{time_pretransfer}] Time-StartTransfer [%{time_starttransfer}] Total-Time [%{time_total}] Response-Code [%{http_code}]\n&amp;quot; https://www.abhith.net; doneDNS-Lookup [5.465393] Time-Connect [5.542967] Time-PreTransfer [5.626041] Time-StartTransfer [6.024135] Total-Time [6.261565] Response-Code [200]DNS-Lookup [0.458571] Time-Connect [0.536812] Time-PreTransfer [0.619370] Time-StartTransfer [0.960386] Total-Time [1.199219] Response-Code [200]DNS-Lookup [0.005218] Time-Connect [0.083305] Time-PreTransfer [0.167227] Time-StartTransfer [0.505865] Total-Time [0.745717] Response-Code [200]DNS-Lookup [5.066491] Time-Connect [5.144106] Time-PreTransfer [5.227078] Time-StartTransfer [5.585845] Total-Time [5.825170] Response-Code [200]DNS-Lookup [0.004125] Time-Connect [0.081587] Time-PreTransfer [0.165687] Time-StartTransfer [0.246201] Total-Time [0.481887] Response-Code [200]DNS-Lookup [0.005214] Time-Connect [0.083619] Time-PreTransfer [0.168375] Time-StartTransfer [0.510846] Total-Time [0.823167] Response-Code [200]DNS-Lookup [0.016983] Time-Connect [0.094932] Time-PreTransfer [0.177621] Time-StartTransfer [0.522677] Total-Time [0.758300] Response-Code [200]DNS-Lookup [0.005210] Time-Connect [0.083526] Time-PreTransfer [0.166203] Time-StartTransfer [0.246943] Total-Time [0.481547] Response-Code [200]DNS-Lookup [0.010488] Time-Connect [0.088643] Time-PreTransfer [0.172099] Time-StartTransfer [0.517206] Total-Time [0.829188] Response-Code [200]DNS-Lookup [0.005282] Time-Connect [0.083156] Time-PreTransfer [0.167259] Time-StartTransfer [0.499211] Total-Time [0.734148] Response-Code [200]root@pod-name-69d96c5494-bd97v:/app#&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Noticed the 5sec+ responses above?
Explore more about the intermittent delay in Kubernetes in these articles,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/kubernetes/kubernetes/issues/56903?ref=abhith.net&amp;amp;utm_source=abhith.net&amp;amp;utm_medium=referral&amp;amp;utm_campaign=snippets&amp;amp;utm_content=dns-lookup&quot; rel=&quot;nofollow noopener&quot; target=&quot;_blank&quot;&gt;DNS intermittent delays of 5s · Issue #56903 · kubernetes/kubernetes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.quentin-machu.fr/2018/06/24/5-15s-dns-lookups-on-kubernetes/?ref=abhith.net&amp;amp;utm_source=abhith.net&amp;amp;utm_medium=referral&amp;amp;utm_campaign=snippets&amp;amp;utm_content=dns-lookup&quot; rel=&quot;nofollow noopener&quot; target=&quot;_blank&quot;&gt;5 – 15s DNS lookups on Kubernetes? - Quentin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>linux</category><author>Abhith Rajan</author></item><item><title>Truncate String Without Word Break</title><link>https://www.abhith.net/snippets/c-sharp/truncate-string-without-word-break/</link><guid isPermaLink="true">https://www.abhith.net/snippets/c-sharp/truncate-string-without-word-break/</guid><description>Truncate string at a word near to the limit specified. Avoid word split.</description><pubDate>Mon, 14 Sep 2020 09:26:00 GMT</pubDate><content:encoded>&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;https://www.abhith.net/_astro/ec.jq21y.css&quot;/&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;cs&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;/// &amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;summary&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;/// Truncate string at a word near to the limit specified. Avoid word split.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;/// &amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;summary&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;/// &amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;param&lt;/span&gt;&lt;span style=&quot;--2:#5C6565;--2fs:italic&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69;--2fs:italic&quot;&gt;&amp;quot;input&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;string&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;param&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;/// &amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;param&lt;/span&gt;&lt;span style=&quot;--2:#5C6565;--2fs:italic&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69;--2fs:italic&quot;&gt;&amp;quot;length&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;param&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;/// &amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;param&lt;/span&gt;&lt;span style=&quot;--2:#5C6565;--2fs:italic&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69;--2fs:italic&quot;&gt;&amp;quot;appendDots&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;param&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;/// &amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;returns&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;returns&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;TruncateAtWord&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--2:#54666C&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;input&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;--2:#54666C&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;length&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;bool&lt;/span&gt;&lt;span style=&quot;--2:#54666C&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;appendDots&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#7E5F00&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;input&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#7E5F00&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;input&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;Length&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;length&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;input&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;--2:#54666C&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;iNextSpace&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;input&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;LastIndexOf&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;length&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;StringComparison&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;Ordinal&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;--2:#54666C&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;trimmedInput&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Format&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;{0}&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;input&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Substring&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#B22E6E&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;, (&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;iNextSpace&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#B22E6E&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;--2:#54666C&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;iNextSpace&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; : &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;length&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Trim&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;());&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;appendDots&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;trimmedInput&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;...&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;trimmedInput&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;/// &lt;summary&gt;/// Truncate string at a word near to the limit specified. Avoid word split./// &lt;/summary&gt;/// &lt;param name=&amp;quot;input&amp;quot;&gt;string&lt;/param&gt;/// &lt;param name=&amp;quot;length&amp;quot;&gt;&lt;/param&gt;/// &lt;param name=&amp;quot;appendDots&amp;quot;&gt;&lt;/param&gt;/// &lt;returns&gt;&lt;/returns&gt;public static string TruncateAtWord(this string input, int length, bool appendDots = false){    if (input == null || input.Length &lt; length)        return input;    var iNextSpace = input.LastIndexOf(&amp;quot; &amp;quot;, length, StringComparison.Ordinal);    var trimmedInput = string.Format(&amp;quot;{0}&amp;quot;, input.Substring(0, (iNextSpace &gt; 0) ? iNextSpace : length).Trim());    if (appendDots)    {        return trimmedInput + &amp;quot;...&amp;quot;;    }    return trimmedInput;}&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;tests&quot;&gt;Tests&lt;a class=&quot;heading-anchor&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#tests&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;cs&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#AD4013&quot;&gt;Fact&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;TruncateAtWordTests&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;()&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;This is a long sentence&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;TruncateAtWord&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#B22E6E&quot;&gt;6&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Should&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Be&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;This&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;This is a long sentence&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;TruncateAtWord&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#B22E6E&quot;&gt;7&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Should&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Be&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;This is&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;[Fact]public void TruncateAtWordTests(){    &amp;quot;This is a long sentence&amp;quot;.TruncateAtWord(6).Should().Be(&amp;quot;This&amp;quot;);    &amp;quot;This is a long sentence&amp;quot;.TruncateAtWord(7).Should().Be(&amp;quot;This is&amp;quot;);}&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;reference&quot;&gt;Reference&lt;a class=&quot;heading-anchor&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#reference&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/Abhith/Code.Library/blob/master/src/Code.Library/Extensions/StringExtensions.cs/#L511&quot; rel=&quot;nofollow noopener&quot; target=&quot;_blank&quot;&gt;Code.Library&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>c-sharp</category><author>Abhith Rajan</author></item><item><title>Domain Name From URL</title><link>https://www.abhith.net/snippets/javascript/domain-name-from-url/</link><guid isPermaLink="true">https://www.abhith.net/snippets/javascript/domain-name-from-url/</guid><description>Get domain name from URL using JavaScript</description><pubDate>Sun, 13 Sep 2020 09:26:00 GMT</pubDate><content:encoded>&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;https://www.abhith.net/_astro/ec.jq21y.css&quot;/&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;domainFromURL&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--2:#54666C&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;--0:#AE4B07;--1:#FFAB70&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;url&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;http://&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;https://&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;www.&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;split&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#BD2B28&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#AD4013&quot;&gt;[/?#]&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#BD2B28&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;)[&lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#B22E6E&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;];&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;};&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;export const domainFromURL = (url) =&gt; {  return url    .replace(&amp;quot;http://&amp;quot;, &amp;quot;&amp;quot;)    .replace(&amp;quot;https://&amp;quot;, &amp;quot;&amp;quot;)    .replace(&amp;quot;www.&amp;quot;, &amp;quot;&amp;quot;)    .split(/[/?#]/)[0];};&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;</content:encoded><category>javascript</category><author>Abhith Rajan</author></item><item><title>Mask String</title><link>https://www.abhith.net/snippets/c-sharp/mask-string/</link><guid isPermaLink="true">https://www.abhith.net/snippets/c-sharp/mask-string/</guid><description>Mask string, mobile number etc. Usefull while logging sensitive content.</description><pubDate>Sat, 12 Sep 2020 09:26:00 GMT</pubDate><content:encoded>&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;https://www.abhith.net/_astro/ec.jq21y.css&quot;/&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;cs&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;/// &amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;summary&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;/// Mask the string.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;/// &amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;summary&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;/// &amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;param&lt;/span&gt;&lt;span style=&quot;--2:#5C6565;--2fs:italic&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69;--2fs:italic&quot;&gt;&amp;quot;value&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;String that need to be masked&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;param&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;/// &amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;param&lt;/span&gt;&lt;span style=&quot;--2:#5C6565;--2fs:italic&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69;--2fs:italic&quot;&gt;&amp;quot;startIndex&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;zero index indicating mask start position&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;param&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;/// &amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;param&lt;/span&gt;&lt;span style=&quot;--2:#5C6565;--2fs:italic&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69;--2fs:italic&quot;&gt;&amp;quot;mask&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;mask that need to be applied, eg. ***&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;param&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;/// &amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;returns&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;Usage: &amp;quot;123456789&amp;quot;.Mask(3, &amp;quot;****&amp;quot;) =&amp;gt; &amp;quot;123****89&amp;quot;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#1E7734;--1:#85E89D;--2:#1D689E;--2fs:italic&quot;&gt;returns&lt;/span&gt;&lt;span style=&quot;--0:#616972;--1:#99A0A6;--2:#5C6565;--2fs:italic&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Mask&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--2:#54666C&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;--2:#54666C&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;startIndex&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--2:#54666C&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;mask&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;IsNullOrEmpty&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;))&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;Empty&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;--2:#54666C&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#53676E;--2fw:bold&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;--2:#54666C&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0&quot;&gt;starLength&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;mask&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;Length&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;Length&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;startIndex&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Insert&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;startIndex&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;mask&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;Length&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;&amp;gt;=&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;startIndex&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;starLength&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#B22E6E&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;)) &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Remove&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;startIndex&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;starLength&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;starLength&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Remove&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;startIndex&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;starLength&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;Length&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;startIndex&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;starLength&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;));&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#BF3441;--1:#F97583;--2:#5B6900&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#1D689E&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;/// &lt;summary&gt;/// Mask the string./// &lt;/summary&gt;/// &lt;param name=&amp;quot;value&amp;quot;&gt;String that need to be masked&lt;/param&gt;/// &lt;param name=&amp;quot;startIndex&amp;quot;&gt;zero index indicating mask start position&lt;/param&gt;/// &lt;param name=&amp;quot;mask&amp;quot;&gt;mask that need to be applied, eg. ***&lt;/param&gt;/// &lt;returns&gt;Usage: &amp;quot;123456789&amp;quot;.Mask(3, &amp;quot;****&amp;quot;) =&gt; &amp;quot;123****89&amp;quot;&lt;/returns&gt;public static string Mask(this string value, int startIndex, string mask){    if (string.IsNullOrEmpty(value))        return string.Empty;    var result = value;    var starLength = mask.Length;    if (value.Length &lt; startIndex) return result;    result = value.Insert(startIndex, mask);    result = result.Length &gt;= (startIndex + (starLength * 2)) ? result.Remove(startIndex + starLength, starLength) : result.Remove(startIndex + starLength, result.Length - (startIndex + starLength));    return result;}&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;tests&quot;&gt;Tests&lt;a class=&quot;heading-anchor&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#tests&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;cs&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;123456789&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Mask&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#B22E6E&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;****&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Should&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Be&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;123****89&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;123456789&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Mask&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#005CC5;--1:#79B8FF;--2:#B22E6E&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;****---&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Should&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#6F42C1;--1:#B392F0;--2:#1D689E&quot;&gt;Be&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#032F62;--1:#9ECBFF;--2:#1D6F69&quot;&gt;&amp;quot;123****---&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#24292E;--1:#E1E4E8;--2:#54666C&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;&amp;quot;123456789&amp;quot;.Mask(3, &amp;quot;****&amp;quot;).Should().Be(&amp;quot;123****89&amp;quot;);&amp;quot;123456789&amp;quot;.Mask(3, &amp;quot;****---&amp;quot;).Should().Be(&amp;quot;123****---&amp;quot;);&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;reference&quot;&gt;Reference&lt;a class=&quot;heading-anchor&quot; aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#reference&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jinweijie.com/2011/09/30/mask-mobile-number-using-c-4/?ref=abhith.net&amp;amp;utm_source=abhith.net&amp;amp;utm_medium=referral&amp;amp;utm_campaign=snippets&amp;amp;utm_content=mask-string&quot; rel=&quot;nofollow noopener&quot; target=&quot;_blank&quot;&gt;Mask Mobile Number Using C# - JIN Weijie&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>c-sharp</category><author>Abhith Rajan</author></item></channel></rss>