public inbox for [email protected]  
help / color / mirror / Atom feed
[pgAdmin][RM2172] Search Objects Functionality
12+ messages / 3 participants
[nested] [flat]

* [pgAdmin][RM2172] Search Objects Functionality
@ 2020-03-30 09:09  Aditya Toshniwal <[email protected]>
  0 siblings, 2 replies; 12+ messages in thread

From: Aditya Toshniwal @ 2020-03-30 09:09 UTC (permalink / raw)
  To: pgadmin-hackers

Hi Hackers,

Attached is the patch to implement search objects functionality in pgadmin.
The feature will allow a user to search for any object in a database.
Highlights of the feature:
1) Search any object with user input text with at least 3 characters.
2) Search can be done on a specific object type by selecting from the types
dropdown.
3) The search results grid will show object name, object type and the
object path on the browser tree. On double clicking the record, it will
locate that object on the browser tree. The columns object name and type
are sortable.
4) The object nodes which are disabled (hidden) using preferences will not
be visible in the types dropdown. However, in the case of all types, the
search records will be visible for those types greyed out.
5) You can also access search objects dialog using the button on the
browser toolbar.

Python and JS test cases added. Docs updated.
Please review.

-- 
Thanks and Regards,
Aditya Toshniwal
pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
"Don't Complain about Heat, Plant a TREE"


Attachments:

  [application/octet-stream] RM2172.patch (519.2K, 3-RM2172.patch)
  download | inline diff:
diff --git a/docs/en_US/getting_started.rst b/docs/en_US/getting_started.rst
index 5b09c5b4c..2595505d2 100644
--- a/docs/en_US/getting_started.rst
+++ b/docs/en_US/getting_started.rst
@@ -64,6 +64,8 @@ display.  To open the *Preferences* dialog, select *Preferences* from the *File*
 for the dialog.  You can access additional Postgres help by navigating through
 the *Help* menu, and selecting the name of the resource that you wish to open.
 
+You can search for objects in the database using the :ref:`Search objects <search_objects>`
+
 .. toctree::
    :maxdepth: 2
 
@@ -74,6 +76,7 @@ the *Help* menu, and selecting the name of the resource that you wish to open.
    tree_control
    preferences
    keyboard_shortcuts
+   search_objects
 
 Before using pgAdmin to manage objects that reside on a server, you must define a
 connection to the server; for more information please see *Connecting to a Server*
diff --git a/docs/en_US/images/search_objects.png b/docs/en_US/images/search_objects.png
new file mode 100644
index 0000000000000000000000000000000000000000..1c5b4be267ab0240dc207c486057e236e18507a8
GIT binary patch
literal 143936
zcmZ^~19)XmvoE}3JCliRJDJ$FIkBA`JCjUo+qP{_Y}>YZ=YQV!;GXY(Yd`&Tt*ZJ}
z)mmL^@6}zsLlxx25n!=l0RRAkq=bkP000^W0Dw3_L;mFyfMdD=0Pu1a!omuY!oq|K
zj&`ON)+PXeL};Qql!o#jj4W*>NppW_37F1MVrcLfRH1M}LRI9%7;sdn2pGY^DBALE
zEd>+^XHj)gbX_<?tHGZbgO^$uaMUzsyVUF|n+1MVUALWg-oUGD7PC)fW)@dSKqq#W
zOj7VESPTPQ%&>T1%}{Ystwb~c^w<wF!w*I;C&poSHxDGi|B3(L!Py+)AS^xXZ0+-l
z8d4}$2mnBZawt+D8VPnI0Jzl(kTU@MMuI%nEFhS_$ptS<Ac6&I6!ooO>*V#NV(Sz(
zNk$wAb$|hwBd3zhz;f2$A1Z_d+4pBUVQSk|C}Tl$#Dh2$2oK?iq5|DCd_K{?1-bN4
z-N9v@``Vi#I^Mpl1Zc#EYmMZh{-%xQ-}|B+{z`i1Iq*Y*S~fRyH}0S|(`Zg_RnAjM
zfplnQWg*8f6b{*v3bgbLQ7qHIN-d}rpMZd+ufWn5I;Y<c78A5abZB8^AlE9N8jlOS
zBMf2z&!nf?CbJx-N2lsTZOCA|rMjsF<CLB}Fdt^WKCtYjenT5wCyh$_D$*Fh+4fZ>
zm6P#Lfdz=sC6EpaRKV575_1qq83nAMhqf|-u{)Y{Q2TI)tPop>gai>tPsIffTV0sE
zg!y~bD%A#l&mUBU*d36N^{%-9?c(x53&9aplA8rYOEB?y5Pr|4WR;2MUL=nrx40X;
z`~xer+i2uz?CzlDnL#@mu5e;Q$gYe|Za%!554RmSf4w(T_p3!jHp5K}(N`ve9KQou
z1dJXUf;K0R4owE+hrsOO#yo<rg-0I<!H6I`G6+YdslG^9n>cJXOb+xrOe{1d<nZqj
zPthFYQ+`BCHhGSi!b>`p=n;r$qDd%4LZnZ%GI2?$PO<=T1(KJccEC^?RC?K!HXf8^
zUL*DafI-@>Ck|5#o=gn2KXkGM3qRy-Z{`{cJ{@Xu$Qvr}!&=@=#+-tOP=~|`*;Y0Q
zeXKjog!b6)eP=a-rF$IH)i2|x8#F#(g@|QxV8RcF5B7CuTX4Gm`@CbLL%E~bM>-D_
z%X8kL7IzpoL?L`GxN=4pe(71>8QVx+*>Up2%s|=?4b@Bisin_Wy?IUOEk!+TL%7<`
zWs7r67YyzYHV_OKaH}DD{a_V0dqiHPsaz1dn^QMOqUe1bU$07eRkClF50|=^1P$If
z0<5}?{GgZUEAXwP+B!YEJ(+p~yOI$7!L>Z=yz3we-r}rl^U_7HZ+?tZ-ivg8RzCz*
zx3+w*>*-H<0dEyM%vaA9zz+Cku$HB4O?rh<I5sYw2g05W0i-HQWqlay9oJC=H-OzX
z(l0?wOfW-1VhM<N{memozOi0bM!0dP!W>*$u<{<Q8W3yHwH~<|C|3V~ZA?yx$pGnX
z>=uM0c?vg3j~=V(U_xk^ToU*J^je{F6!ifx0}_7;Ow`B$l2QrCxJU^UGG;hUzXXzR
zBU;8JO2O|DxB^i`X0a~&7>)!dLZ4!r`Iu6|kqU70Ab9?Diip_1$@9==tevQ}0+Vv2
zr>Pq-HvHN1hNth2*&4vSgB}e5bG<1kY==R$O!OGxg$9}_xak3j28kMUi++tgzOS&0
z{?0~M_QaDtnk_gP{jqMS^gYG9!0W+hEiatSknEo7?WY_3cQk)FMv4~HcW9nIHz9Td
z?A!ze$z`Esc}^I0Wr`iPSP5fPyih)Swjxwu2uo;q=vhd6h<ND5K=8m%)KFt7M>2>Q
zLrE_skkW*PpoRdaK&RAsNe}5oBJEh-k)3_kx&$4WDpETN0&+caexfJEd#Xotekoc}
ziBv&NsTCQET%7_ZrPmTj6>&=dTWp$erhH`{yMnyZm4e>s@$vHU^J&Cf?D6<q>Fi1+
zQ0%B{k~@uP;`dNt;aoxkSwm$*euH*HvJ=;aKfa87{`cwR>9gbElc!@lXRNk<XZJRt
zjn=k>w#c?*=j=1Z`|}4*kNEqrd+LYBQ{DNq#o}Y`W8lNfEAYPj0qJ;a`ie~-GlDgQ
zZG=O^x@Kd$qE}fsE;qm+C3m`Jz&?J*p+6Wt!eDHh89V|aVj?0wLXIRaHXmh*a=2vO
zyjU?^F}gPQhH}q%?__9UC^&*U1#`~-kI^AhGV>E-HOm%KEoL7UF?OA~M1Rbf@Ma1;
z8w@*2YC`HcbF1m?W`YT}X_{5rdc&XlDlFSWL-tAQv=xu~c+(Bx$e>rGZ}4<DZDz-I
zhb67y?j0{Oce01y$35w2>4<5KF|25#w4Jn>=>q70wCY;;P3Lun8W38N6>3^|wXXpt
z<GVGt8mbj&75G-bGYPB02eC8uGd>*gbkcOgbX|5=o6;uhHQKerrphK>7d0273)7W_
zwGUJITC=tA3-z_^Cf~j7<Cxv+PT}}|WpOm|ETdSX&OJPeHszQ(m13>p@<|c1CScVa
z*O4@RNqBPja^dPh9?j|L1+|0j(JEgA<G5>zlg332jx8%kly<Im=i0~4_|8m!crXWo
zFJGUn$ZE&|iCpya{^dc|QP;}HqeOqKkr+m_HP%aWaCmS}{_0*C#Rkhdu*$6dC|t2B
zUnGAqy6t4}8vE>_Q@wmi+>XGm)iuC1IXY85NIr53p$UaMsx!rVD0v%amwV|c=Zc%(
zt{b$Q*T?sz{pIM@?#Y*H)uF-s{%{5f%o_9=1P6=@RMQ{JpC8f%TodXhz%l?Id<_yV
zpc$NhhZE??$;~+>ye_;?^d`J%|It$4DlS|*9Wq@v-Ne{mQ&7`r@YHA1SKoiu?@8Q2
zY$}EuNh%^HN*~?PTfYtC=G>9R#Ajq0{R2fbTq;Bh=YepQObdU583T{o^gOKA)$rV?
zfJwHNFzI_c@uO{q(fWLg-Vn<0U}QP|6Q_^yd&Tn{Ohn)xm^HMY6hWl)vK^WG2?a8i
zvWwDk@>SA4@u+D^v9nA*1J5gaQ^je8QcCG_5*B|fv}Zji0%bMWa#=QLI$1wnMTSG?
zD6%q**{SSibN_h6zr;V8A~P#7H<@{D58qn7bf$KUr;X!-sMly+%V5&#P@SVfgiwpf
z*MZhi*JYVP8CQ>7qC$nz3~r!S8CUL$${9}vWpK3CwrT_4?v!p_4&v`vZjmGq3R`E<
zlxd4)vS;amiHW0JMX$2DY>ndhWLtRx=xE<2AjGbFd<0Jl-sRl88Eb0Vt}hz)Ej){H
zWRm5&8T(C!^04H?`oewELZ{Hjtusw{tv)N>>VMR8ObQ+vPg-PJaW@;=9(9DcuN^8M
z9Zh~UE_b%%Jum!9fS@D8AiI;o_xXOK>s@MF+HpVh^tolH5yFr_YpuQCYCe%CZ_-x>
zJh(haJRrb;!^nO!*hf<3zi0TPHQO}rdGcy9U@~j6lnh0;rDmX@sB&XJxcn`WMw4bt
ztxJo|ePLx(F%d^iS)E4RRYg>tt-4mb-g+Xqakp`)Ot{Q-A!UiS%)MT&<?{A*`vC!m
zmOa7F?JIwOI30(CoqdsOUd@)+mU{i(4S0Jv$6xDPwr1E==ruN6Ia`Uhw%eRpa#vcu
zX4~a$!K+nWakU!TwKqFCojHMEi-6<G<eGQ|*`C<`_55S+=*%<kvEkC>%4XTDyV{iB
z$XAnOmNUP$SaN-SCS!HoM}ORZ5#uZAqZ|Iq<V^4^U?DgHiH=u>SI4pCOJXK=Grul>
zW4JDw*E)0E<L&u*PhCEOd&Y(NbU#&jr#LG6FoVyLe0#jN-p33n!zkN|>&m<9=GW5i
zk8Y2Tw(g1c%A35Y!9(e;WUW>4W`ZtUr<di#X`14y+p4T?3}EGl$LvEo$E=;xI{K!U
z2hG)D_!g}1Sv&6);*Q*k?nis#)A-fG=jHob72;Kt@RRVBo?FcI_M>obzgaYTG@nxv
zPZ58Wm*GRfW$Ex-fbNcN@@LAm_z}xWeb?nIKf-5)`{ljYmR_%~?lIQZ+>6j>-q+P2
zgRGvdH`}SIm7UI2=h92{+h#&1n|J#K-rL5>6V+Arz3iL7tHQ&~i_utdiM;FU-P@aq
z*AG2!^d5cT`Z~a~Ck^0U1%R2n{bKOzFsm3t1jwOEa-CgsNMC|s2f*HzcGfw<htTJ+
zM!X~BurAB@Fk}?q<%LRDL)Xm0$EL^bxIx~0eCloh_|1d%h`amxZnb@WMyDIpGy^!f
zRDs<pFesY{KJco!+BD?w&jbm+AZ?7kV{RHC3V$aUNhTVSrn0gC>c2EJ00IOR0QQ#x
z`TGHYU;`ljg9ZSkKydzxRsx~?w+<)(5NrVe|F@3T-~OK?=5PCp{&x=+7X*O%dxrYA
z1?GVMr#5I<4%mOvAWnZ}06}G8Ny)#xvXP^Si7n9F&dI+(Bj_&!#$G}b2moM^{nJ1s
zl}NAu&XAleR5YA4WM#OF>}==_jO`3f=-q7W|FHw$apU?++L$;Q5W3k|+XA`Vc!~c*
zgX=H-51WCQ@IO?XtaynvWEBX7?Ho-A+2~p68HxE|2?+^#9F0x6ltje-4gY(_OKk4s
zWY5LG;Ogp1@5(}N=V->j^y9}521aHEW@fs-8gxK+TPFiII$I#gzl{8+9T5|tk)wsZ
zlZBlv;Xif_4DFnqc!`Psar9ruzv6VVF#T^&w!nX1*53<c_(#IPM9;|Z|ALvgS^WRN
z{*n9(_8-^vFLylu7~_(6v@rP_@IPVkG4cF|ga3>7-{JjBU&#b$XYKrtx~i>(6Cd-x
zA^(g0KT!Yp{+oOzj>2{}Hh*35{r9-?F#Lan{~M@a;bvm3A!6|t3H*-`Ss7XX4g24s
z|0h)QzoDFrEdLYvKP3M~@-X}}F8^bk{*?s(!Tp;Be6TzW|CLdEu-D@<I{<(HKvG0d
z#SP?K7s^d_a8Xx4h)c30_xGk}HF0MEbl!69Q`OYZt-Gh4`nU5iSatzHfigb`kdw|Q
zRMc7MQql(B%GOl-mUV$&IXpb^3{T^!b!MhhKUmJrSL%x;bi8Jnx(!8R(;Se`*ssK-
zEFs^+zV+4`ZS(u?yCqJo|GBzZE?F<9h-@_&H5v|E#&v(;b-?EmmFQ0uc4*?1=la&?
z;btrM$;))}=f*Z<3?vzh9!dwX1=s$^w&S+fwjUu1lPo<bSFRZOXbxWVl*p{-dsPU<
z5sX0u!)_w+)1r=ymb{;AQgRkZtK^+IW#ldr!H=L2RH72Sa%QPO@Y_$ycW~6b__^zw
zz%5406+}{eK3K-SVwMCtcX3z(!KU0{WvW=HcRVES88aLs;lw?ag1hkgmyPoO6-xD?
z0AI<diuA~cHl>TDX3C&aln&yRqzx}s6bQxdgF|9++6#5`CAR9YbcTzNI<o$4iUv;S
zOR0{>J&*eeO;mBm-t|9(<JzCDN~&@MF?xe?*>kcxjy(r{|I-m6Vg~#yY|nQSuEWF!
zP9h``?jS>%o7IX3N<C`$rF%Q1?uL8X_ZBa1`Z8=pbh=-{!BMx49wM%<=ny6K=>z|_
zv2Dj3dt6QuWEV$rJBaRl8Kv=VN-nWrqsh?=%=OA2?@{=?Vg12K!iF>F{o*pBiPO&i
zee3@n*AYKd)EESuqPpoUYBR_F7!d|KIgi&dbd-d+qKCiei*QFsUIL{@QWl(IO#1x)
zcE2ru1TerMT^}RQxr6j7E{_n%BY;6~#z_IPn3s>$8iD_Y^u`a^VoK6aApcD(FTQ|M
z-4GN+a_;r;$*}O?b&#vg@PDPl`;H&uvi~^=rC5zR*NEO~z;8#;K&%9OauYnE6kjGV
z%!!|-Gc)|X@r-$T22CZ<_TLV=smWXupyRnqztDS1>OM593bKP?{WB7?(%s;9`F1sw
zlSvynNgBSrGp_Ae#9Ac1DB?imEDW(YvzL!@WoKFt`F@spl<7Rg*ZWSAcYmHfmU{7m
zCUtwzTc_9*uiEW>GtK6`a$@%utRAiI%V>a0dvZDv(H0i0)!BWCgz`w9_v!SRe3D#A
zc!I{U+DcSTEM=vh;-QIx-+bV#h}J_@O05F^&Gepwp5G%Nk-y)N@Wslh3#S|1WmUqc
zEoxGOhWa9&PEuDiS}l-@fYnl_lLp`@j2<#19u42wOy7PCttsCsoq)EOXa(36EmmS7
z3;p^;*EAg~nEc^FJCw7D&R(D-A&^xmt~Zz#8h|pWxkUp03+snC{0KT2q5~=l;U9y{
zW?asY5&_>pi09PD<xo+XMO%AW3Eu&TZw#h>jnB?qTsPEyews}zNNGMFcN7}lUdHv-
zV3ePPQ=Ko?YsE*b;U>@(@0xO=Cor)4KyyGWteGE#IMfULD#dw-6Tf3-pK+7aN8XX@
z7kj3xa!mQAW~261<tVBj7aCXBsM6YfZeiCLj|iR_<noPx$sY?zVFFi=s(Hvx-%+Ez
z#yW?PG)DKPP8s?weh>D9C(08{-P83Wkq6}Lz@Ue$vrL2?&*IxjQ%~=uQ3U6I-OB7K
zkjP*tXw-C7`cSL42C+LaHe_s69ltR1fr2?QSNKFk!;Q2=WDH!tneGafW%1=uFmqca
zFmxbG8sQedQ1T~kgmOKSfudKDDZzwG8j(V?F(LJDh%9IftU}2!n?Jxd4mpE+ZJr!^
zd2|XU$W>aQT2oL(QZOL&^QqYH^r7=*SHF=bWQx4JB3x<ddtiJzjH9O%MpMC|dC_6S
zfLQ%S=2#FV7V${Jkm@M$rvTUE<rHgtD>(*}1lnXCsXR9WJ(lq-940}vuI+|QL~&)&
zZdOoAQ>iXBe{hyLsJ6B^#?B4*>|xxG3sFrG^-7+f$$K5FOyvH-;ZkXO1SRs3=;0QR
zCi{e`@$ODF-Ki1L$s}R;S*O%mS)9r+%1~?c+7(sQybL-o--<f!Io~u?z)9JQ@zHez
zDr<I49lt}!!=?C5&c<#1;r|nvp}#rbYs~pGiBQDL6cM!!Dc@4U;SQH3)Kx3dUFl7u
zrZQNv8b^Na?$p@!VQ+!2@MtfTu-kAs-37TE^_j;Zw5NrTzhNJ!LEX{<QVqM7?u@DZ
zvYVc)9I3L}W7raM0*+1gG6`%oIoNVh##8ozwYc1=6Z-a8>6eyqN^Y6O$0Qill#XtV
z_~nS>E3^h2!+4hAb%PFHpa*3U_S+N8pB1E(<~uWz$+11`a#}Spv5@M2wnPCbLBSs|
z#TUiSZY?|sp5~b+*ctqg*;-@fZM>aV^;7<6NxeF0iV&t8Bufe+10Am?+(`Sd-cni+
zzG|f&b7Y`Kv*zO&kXmZ}*DsOKu3ylhFzy)_TU8kOLpfHA`O%VcGmERj6waCjZ1A15
z)1agIQUykm&1$$PH=3dxQ1nv&T+@TSUf{EUZPGGNYEMMFL4zrx<CB=RLKy-Cce(j8
zVvwU=UEe|mwk#3)UIOa}Q3>K`^5h>mfHX&10jcK9epRowQWGxm3gava^aCx1`|St;
z%C_C9W<tFU;+))?JD}d~Jd_;4Qhz`^p3&+-Zl3a+h>CXzDx4%4kIl4b{BTf0z_Csv
z>*nzaZsJ(7n8%^udxtqMUsgNHNrK<{Tp<@e?k1A5@6TU2{Fwots>CpSR3<W$0-3Y9
z8g5%;%Z(f$(Y`k{qmG8K#rukc+R8QLKl~*d6%T$xqO;7R$yQk^W5l{~QoJzd4$8vP
zC5HQgcJE}2gG(eRj~2%{9;oU1zi`zm60)bPEe`TGs^99)j2P=$zX?;}Eew=(3%5R?
zD;^-3Zb?w*Bcen)NtuyBP!ERcIxA>Eo~24={#JMlf2J&U|LLrjPKJPn=MP9MWt6n*
zTc#&dZ`B;H=8L_X*8~jC^_QIyp%`oNB9%jrWaCeRvgM8KR5}0^0}aW+$g#4Qx^(cF
zz87{6yVL1cvyV{8q3Y1+DrsB4N!59?X>Kdds(C-0mwHQ;^C|vZ!)TPBDihNDy>~&P
zhj4~T9h&s2!C(sT&v_l#E4k`@J;s{;o_#DIEh}0dqTk`DDXmhiFq+V8V8+AuY=dUV
z%rfmqK%5#Jz0*3zO_(MPC7L1+VB{r%8(X~SDRECn(R{~rAM7IO&iE)clahNtGR8|7
zx=sbLs0hB4hWsYJ5Z7DOeP2=P(|f3EOu$_HT)<AFbAdpvH}7)u(~E1QDd<LbzTWOl
z%{>mfOFHJUn8QgZpG$Qdv(`kMmM^;&UOR49(Vu54E-Ui8CtKej-I*gH+(6c{NW`8S
zlbtv*sN_{#65F*$uviMOFWV+Dzg98~n>4{8m?9mKFB>~FG=21#Kr%Mj&4`}|D?l6c
z3+pZ2-R0@-BYIza>w9yPV8H6khygbS?N;EEX|)&@Z~T67miK=>CEI?7)COVpldg(|
zQiQbk_i+R70tG`_nq4T9)XL1b2gJW(Ix|@S!!i?4j<>**6_&770r~kGz29#)W=Fjw
zDc9G42D_h2xKGKlp+Ak}kY!I*`+2K<!ao{@F$EbP`X4_sbbt8&{w^L}!k7<@H4;ii
zMgzrSG)sw1>X(CFXO)UfVxyUn;!i566e!|mqs$i(k8?7ByAA5au9(749|g<C;x3}W
zD3u5;MoyMKRy=6v9;{@Jhhm--1?2QBtxC(_P>gf6=$CSPeUx5)MwO5p6A7IrY_L;<
zYRo&@yG2n(9&Zb}=1+;&e_h7(V%f)BjZGqdftCW`%!i5jbrUq9X{hAh6BCi(NI%wm
zIyH_#=3^HUgQ^H-2sU3#^@&MpX$F&j>!-ZA?%!_=)p(hdg{G)1Tl)G=S6+iA1O{)<
z88`0ojUg=QKp5pu6IU{!=+>l_Wpu^~WnPWjqQQf|bpok|R8m1gm1HZjNNg4PE3(|J
zyR$(?DFye>Z3%tysJP0+TCAe1#Fd~|>#KQp&%euE`cB5(o1a(JH+x~6@HUDdXM1xs
zVoKO*MYM0sS*%)U^U#Eqn?Qv;fjPZM>EImHmwFyPyjn?3Ejy8P*j!4%O{p@{+Q<D&
zDj8`QO&DJ%`tOznouKYoo9da>I8ID&lwfmBWH?<3M0Tk2d_@+cUCDve0Xd=s-?aan
z$?mf0vPo5+B7+wmH8I4#Yc?&B^ipe5BWKbi^gLs=GhR0K9<MeLReA2fy|>W7e3T~(
zjr-I7LMl3dL!C4`2b?sA!5gxzbbYj5<R?@!WzR{yLu)0bMDfB{6RiFH&c+ye{DZg4
z!syPimi*`O_iHX(ww~nLzUh$J_8&QC`?UjI#VQ%eu9&RC8Gq4m1C1?j%$pNduWnlg
zOR=CF?e-u_JuXm5DCY6<9FhbN-Ff&2E7}1(lA|0+N#AplYc2dSu6PEMm)QA?4)ra_
zTDe#KSEitMlH>Vyjs`8si1Y@8E512|C4|c`b^i1)GjWE#oTfyXweMF4o}*B-bs`S=
zN3$w%K+{aT_|ucM@&1xO%mZ5wl32^+S$B9g+O6PyFlpg2c3-Xe1X>(bzrnnokZ$(M
zB{#~<b(&!>JukFn*3!djIh+Tl`7S1aF=<&AyKC2YUOSyvH;?;`Zk8INI`et-sAzFD
zzT=L8D)2|c2L^Y&xvn{!{<g4!hMl)NZV!)qrWI6J_+juq_mP-)=^%A0fel}6tsJXy
zw$_HQ(HXFYnU=TEW%}#)4?Iq&5~lqkQ~#a|v?y@qFio_U8S~e4u9^AkD=DEC$z_g4
zpWuQa=I7;2cY3;lL%6HSChFaDcH)YM-do=D6h`G0(8VcK%1I12R$5}lw3zN8Hh4W+
zu^#Nd^fhMA#K*4)tLp^XB6<B*Lm1osWBZ_3Yt6}i88%EY=7OpNZiLmVk0nJQrcj3Z
z2gd&5kuyTC5v~xLu-aA$E4SBQY*)QhhcwB0IiMEjX=k&EZ92yT9rdwzFW6*_vX65F
z=7^F^HCQo9e3a+QnnLc{Kjr$3oD?n4@^)6~9^{vVthuYs%!=Q@44O~h+gwsU)i=KE
zPVbo1ma2?)3=5U*1hkHhqr%4$99_tIjmg6X<AL+3o};a=uud2%b6MnutnC86!iZ|U
zjh_8fX^X=S-nW?yLPI_frRL+fmU35RG!B~^jQaWK@tmQAxI}U2wU6^c*;+3vT=EO4
z-pq;onHE!b(0p1M-8Ka7QVLBf+8)~WP(LoI6iqpRBC6&Il9b1MfuSV4C03~J4U|H+
zB~}rQWkjJ}5_$sK$8I3JQwgSjy9XOv$E*7R;=7QAo%SM-j^a)1KuX_jNsLks(BZU)
zAEEO-T$`aXI;gQcN2b&s{!}Bo=MsAHLRysUSMnJb2cc_}!9tUFh-r4!3W{BUM42#b
zui(q<&N4=PV07~Nfb#@({)3;?A&KE^TxE#-6qBDM;O_UQtW37eW~Sej+PRP<Xu1@5
z4O%nV&VnEvvY5r(@SbV@H^Ci0jD?y+!lIu}7SC@l28Xvc%K|W}`AS47!zSb5G@{#=
zKV>5VtuNDbpMA_wJ(3UxSNCP+O$a(&Ou)cV-x;*Jao{Lh+Z@b!Np7gIP=azZPtk<G
z^-gieDMnl9wdV2Jgy0Vj@rH(k!LzA*bLy;8$NACCNj$TkuLsMkU-m8_(ByphnS+HD
z(QZT;OU;vRNayX}zwkv)ByTjOh<J4wL!Ab`7-5mEM!S}T7GL2;fbsBuBt~}+H-|T+
zM(6NNl<y?bcx(@P1`$5~RxG*<hT%j)rrmnpO}^$IHMw;}aXUZ!JYFmOMz7ZfVRyS<
zAdQ_o+^CD4a^!`w70>XTbx+2qx>opklRc(Qk}$OvM(25RcIb^c-3^(>Q4xjQrFW6O
zI8dVtvyAKt@CRQf32Gu80A0M45g42`SRVD6e<q~T1MRg;q~tSm_~T}_;{so)j*s+c
z6Lnu<O}mO5aC7IfyT#GOLg=tFDvNoa4O1er&9hsCf4o|SQgya~3j$P2cco+c@ofqf
zlio;gz0Y-jh)CCAZF<t}?ag_5xJZYc-|>FO7>bhj6Wfz?C36C4XpC!K^bO+y1uZ#b
zI|ooS#Y7Ev_gJ)p(4<M|@UmKI?(;>dGe?e1lHG~F!Obd|DJdNxqSB*#6?gWpwHkW^
zd%t{AsK#ILR%)0jsi~o7RqgcEF9rq%%XKEw_zEh4u{?)`*KX)Z6pHs@W9<u$b3Rg<
zzc~FzC4a?rQsBXH4DI*}*E5wFgYU*ue$af6;J7*uc1e(NpD!(;V7+tIdAyWaUnIts
z-(>Eg1+hX4^;3Amg0mk4#^3CKB`cuRH!;29DXbGjcky9lH<yPSfYCFf1sA}ALCdA{
zyhWyJfWkOlb{0{DeP@^~6ytZYRV8@p_|Z!X1!>>viUu+|4f##6U5m_m6F=ZAE8Aaf
zLTY!zZZSt~aJD6TY(kiejWA}}XmzgAo8<m@IbpWn5ObCLoBWq6&*ET_zQokxavKdI
zgPdN#+N$a>oGW4;dT{a5v~GG_&=O_tOLwW&HEQowrMeT#t{%~C?}oPFd9<{>YWL%Q
zYBmV#lkQfuQUZ)yxu)|vb4BqC%yisp41TTKX{V${CkMnqtIXe`M1FK496FnW6bD@b
z@nN<LUQgzSwt+@Bq8PJkMM`$+b+DuR`^yu>&fJ0LwRJUQ%iHPCkeqqZOwWxR8L!(5
z`RC!l!j?)|RURK@{zpNqDQ22NW;*i8LXlvlMQX(nu9QeChLZuTS7@;*%>X0<f*|vv
z#E>__JyJoBmv{n&PD85M3+pZ^P_VGQjcT*qR%Wv6=gQ=sZ14Osq?6k3Po1B5sFWaY
zues7QZIU)5s<X`cOM1z>Rnca-JRnrxIA`jGjed>Mz5@>}dDe=lE<5TdnClUV85w)-
z|HNedE&a_qb$rZ`^SFlYdgd4#!_0M^Q59N_J@PW!GF=`k;34U4;iyt4vRt%(>PK04
zHoG7w6l+0{+{EoG%{Di}gfrg$DPQiI9U+$ZArx?Dxz){|7P7iOn7CgHsLvXH>Ux<0
zlv3Dr&##wz3zs_HEU#@DIeSre>Az_yl@)a<Z8?9~KzMYrr*b(GwS+q--j}b}EGZ<#
zZ85n%u@i_A$fN|9XT6}u|LjC_MY4_F{K_a1UYe+9wy?o13q<dAt)>@k4^m|;kcUcO
z!1^_&Ew(oi9HhjI^~d#^(w0!;l+l9z^4Xf+)>;?ht0kAiQnk|j)FFaE<;t74U*cVx
zy~=2Hwo%vUPSNQ}oP{ySTRWX+29o%}hLh}}Iy%D`G9sP+%5-y(@bO|G6>cP(#O>|I
z3K{)aQGOX`3aPZ1pW}V0ozM@bndF<pozjh4?TTCW)Mi$oiq2gB-Ol~s{?_$na`|+v
z_mB1aSsBp9Rda=U=GW$O^C8q3M!muPZ1;0_Ua{y+vWp%oDXObiytnIRtF7(G!gl1h
z%S`b8PYHugA)$9!-S5>aK@7#T`?hI$&xSX)9YUQ(rDGD#LVk1q`NFWxnd30aI(nC`
z_f}C*Yy3ya?V@q%`U>T%sHTLI%jwu&2t#qF=FB0=Kv~#aF`Qj~B-S$@M8`wchH@gc
z%@9h>ZuPh6Jc>-#E2pV!2aGq4n#h>A*v_c0T<`K)8&=HoSRY%<=?zk?^YBmjlLf@&
z#n8U(stI@ruk85CMtSdu58M%kixmu6oJ95#4S?ZrmYWxo5292ubf0swi<r_a$ot*K
z)%D#~c}s@sw>i!~mN1&O>M}e(aeiRoG+iD#s;D|y=|E`1NX-wSpNcM)s*E0!OAaF|
zf|TeHfzoLw^(J-dq~(XxGw3qyiDDFzX8UsBph4?2%6Pw-WJ2$kG>bDTg(*><^9PCt
zKe0c3y||(NeBJg8RHpX$Ao~tdC`3iniW!@M%a8R&viau7MJ<*%v;dBsPw`<2h#BZ2
z8J-Y=B}-XCEy3k-f>!5eLyh-&$73r`7_JOhHNq>D2Mt_ZW(w!BVc{S(I2<A!-(}7z
z-~&Aq+F}l&@1g%_eCo;w(!;0{ON2GC-|Kl4p&GP*tGT4a!!jLxGar``3H-f{A@@$C
zL*AVyE*-Dt?4A*Ci|oIQ5WsD8KmQwip!U#bR9^b#@;=e+CTSCrbTX@ZHUY@U9UNb8
zCLEQtr->k;#2WUIm=R~|#EVp8hmU&$A?EuP4nov?Zx`v4fY?OFs8M6h3(0d&zq^Yz
zbF_=mk}GWUUc-goudOP!ft^@mxWRs|mnh;4uw~D^Khk$$-^AiwnCl8Nu~)rXR1tvh
zp%ZR*D;S`C0s|$I9JSr4vn4GINWMwQJxv_j35NmNKZWPRSEkdSh1IfP7;Pl+LJr7f
zG(sEsY6Udgs=rAYEp{Y6Z<n7yrUcbkduPG)z!{U)cyGzPLNMLD-9)ED62|*oP5OFA
zRZ~o{eYnV8VYK8q%Qg@}|7`PsgXF*EbGeKXmiKX5pQ)o>`-%5$EOB5hzc`;fdAHfi
zjX{f}GMtMo|7Iv(-3Xs-<}SHHRJlujdkBt~0yKQ%EJ3srmdxP{E^|6pl=p71B}-|?
z%=R>r^4CDEvJXqg%oxLo&JlLuOm}{dy{H$rH=nKBp;6Nw^kqjIhbgT_Fc}R;+L8O`
z?8CG9tXGG#5yu>Vo3H0QdRI8UGi;-#)P$uk_1kT`#a)dD5WX-g0D;m=e<1nU?VMJH
zQX92;V-YHP>Sy%Cyrc>q8U=q47SK-U4clb;JqYP$B;|L>P*+U2^fsz%fW&+;YX&)F
zO}s~#W8<heW@&S4Z9u%O<42oBGFx2SsB;2iH<KOQs=ee!Hh~j%i{l7GsZhk1Hw#xc
zC#2`Hyim$lXBFP41B@?OcIh{rKhwef;olIFHwgY&v;Q>3Med6K%(Wk0Z|&Z#pW+k#
z@OY>-o5GL4Vj1#^$sR#H(mxNSiV;!tFdb@uCPRAaW&%Od^+9nRo)>I>jGXYjYNDC>
zh%AL154DC*wz6_i3OQ(Gr>OR^vD`zjRnizfI2@@Vgl{VW;V8yEG}eKSq*34!>RuP$
z^BpXYmg#HACU{);eS-VE`qX3ed8Y4}A{!a_u*g{du`(T5bid7y6e;|>HWwT_QIVMk
z{AQIWmtAR9=@%+gD{cO{FZ^3+J2@KPYT=*O;E4Pc?2C?^bos%jwJKaFCx+-qonMv8
zoy6Fx5v=hhTx4p(^i@G+2}*<K(tV0@lY>-)GQ=S<PB;9WICt3oFVagpQRPLT6QBxR
zGJ&Zj_^B=M{jUvd9#Kf$w{RX#<-ZKULA6Y;W-71`Y1e+?dB!78xis#~mU0;pJUnCY
zaKk&7CvwEaWHQ0D945l714zL8GpiFeM`S-Ou<$z^AQ@|Lcg4h%g_L2YoU4N=<zniO
zs{3rBWjWd`O`u&0NgfA88=*yb-Om<ELY&uSZmOTUizoF^Y+*J0H*L<+Ol}qDlDD7O
zLf6q1AZinEoe7v=QW~IQw}P=O@{^$dfbMmrK62x?T9ER6T;kU|br`JSClE=<l3Xu}
zCAZOv#}T%M9Z2QMR#HkiALZaCH=xBUt^5#YiUEiNOolqx=Cu>$NZw*>F*rDQoaWrn
z3Dlt4w@QDVt{>mt_6$K5yw{o2*}7R`H^UrZ`uV7SMY*+E@fs_@QmL0)y3?+phx>MM
z;K$A*d4I<LKAvuXJdGF6memUi#o4_v$Sjjs%?`t7@Ij)U%e{XhvqvZ_wM-{Hbkuui
zM2g;G#<z=T`*i`=r$ld)ba3kgNtRe<M)&KTPNyzO`AutqGW==yBVsh6%Ju;2Pa<y`
z3EduHR(cC0P_Hec{Q=AYruP=XTPu&F*HQLT2qT)ip(5H}hmTJpF*FR^z$m+Wa(W&}
zJpH(F53!!0G;ll)8-wT>;T_jw;w|-l*-=Ijq&v`5FXzYxGdUV`H6TqOx2xn!`T22x
z%9^7kl5Xl;YyY4Y@s_fE9cvKNwLQ(@+p{@?qqwik&%@eL{Q^DXNyXu_h$>~<J-}l3
z#4$CWHqov~&9f|Vp}bPm<|S@<v(kD~Xm`E-urZydC<_(?5$D;c8^p&T$9gX^W^U!!
z48&d#zP~+LVT`gwbC(l@pXy9OLg6(%MLMZV$}#TZn8KSNLgqnyEkGx-Ae}CBV(iN2
z>cy)pQ)=77dn+k_o?YtBQ*;CDwZ5FY6?G8nM*pi;N$-Ss>}Klg3!6MU=dc&aLCnsM
z5spE}OvCi{bQPSGT{(uAdSP>!xW_y^HHW><9#4@>P!0r@*>jZdZZ6J~FMK&(Y@kj)
zUd_jG_V3!;ccA<pV!rFrCN)ms-HZe2EJW#gWS*+kj)8QL#Xv_Dmf=#7=Wx)0$J5^8
zweazXZCWpR)Gh`RK38kJ@L{^kXi+YLQyP1l_9qxEi2QpM2T_zM>pp9%#hnc2LlYvd
zoG?0>RbTLr1PweQdseylk!|y|HRys(UGg$?IwL0nGToUvRb45Pg(fM*!fQ%0>BT}O
zoBY#*iQ7!4>1hsBb&jyU=_MFL)cTn!(H~O7JT_-bB-qL&Ru9uOdV94vuh>-C#}%tB
zU|;WU*c_I)<d{3N_`R2cr#2>zyXuW~(D=7S%5o{M%rWsQ)t`-tvE!lYan+UyZHdJV
zl9PZ3L=$t9PRc@BD)I``gSz9FZOn0>e9AV3U>T(xV<~6;k4p+E;#R1D9FZ!iRL0ZP
zB=)#UTF~ktl)>7gTXQfCbcWEP%7B6%N<Fgbbv1Cf*XAlvkUM2%HTyfo7?9MdEw;cW
znrQve46<kANiBPATCS#wV7vsx=v?}8c1}%{)}6J&1;v0ea7mrRXkyChn6<9X1YA{{
zpRk2%7=x3XQnAPPAWYX)wJCQNgj|glBDz}gZ(SMBGz7Gl=*bN+Rpb*i4@A|4Zz*Z9
zp-KkpE4&qDv4+%Lm@nn*qc7o0Hu(ynN`kEz59Rs43w&FvaL-t6H$80cxlHd7vRi>6
zAgOacKf_Y3zHfs`(Xwa+jV6oe%r;9_)Ahn}JTRk<lO?#6`W`fZNc)LR-JC{pN3!x{
zUd;#DcshJ}0&iX`ZDhF~Yzl)=8c4L(@9RNnl({yq7ONHGlrHh-zxy;AAb|GLMih!5
zYl@GP(-(&C-#Us^--@+St`b?BP0*ABVfyYOERXJL*PG5VheZ!w#yzvByhB(kR5gtw
zq$PPHJ|pvPUh8yQPIP@plMwcX<(+jF+vz-9Eu)%C!_#8UV^!(|?&KiR&SBs!CAH;X
z7sQn0x_5pg$2OkG;v|7%RobX6h<da^J)@|KG&p9KQ6g)m5rCDq-dLJfI%3}R9E@v%
zGk7t=Xe%)*X1~tV?HqIctL*)b$4RJA?E7P40W{Q+h=?eK(;=^Qv085{aD||-8CZ?L
zy)*heXKlIzo{!g&9?$d=8y-o&g=XgyzQm{Z%filP;Fe<ddN7<LpL)UvcRaD7<N4Ap
zADm!PcPMt<{dsJa*X^vANDS!|o1WYE2M`Ct%L#0iy;L+)I4$LmO#*2I>!JAm8HoGB
z=<mIF2K7A6;V{gv-9jBu874w0v@!u)LrxI4=N${QkFatX`&vU!o?bO}OC_^#78tSW
zXfTAD+>b~$nbm^^p(--DAN@HuwHiQ4bbphQ*ba;D#Tf$UQkQYx>{ld0SMCU8#30hR
zsPK{fROrc)qo8+8vx+EtB{A1#Z%pLiH@i#Y&Hgy_dCjpm+Kr~Ut#7nKdNh?syLP2U
zI=9E$KNZ@{MB{wB?5>03`rK+}h1w6UV?A;>TjSTqdC3cHCnl3jgn@+zC)a33m?U4;
zY$nZ;_8^;3sz`WyQre{|Mj%gLatO^7xTzf@kx4my?fuBC36id1@P0w_V67C=9olTk
zeDy<`+Kiznl{th=A3Tfa3?&fKM|OQhHP_d{jndgOXlNUKOa=kg2G`2JmO9P(YL1$m
zi&FN>elyUyT~xZ~PHx;rycK}=yhRfM&iZVx{#5y49#DAZnum5)aPiFVNabpU{Zv)g
zMQUp<35A4aXn)>@oq!RHUHg)?{%E1;FuaI<PH6Au_v-Bkx@gDe!PIoI8C=Yt9l$4>
zchmFW?J#$+aWf=;774C>vI~P>q<C8(i$3cwGiv$+ZO{ImTE5kNmcEFt%q+qiIr-RP
zD|((c!PY>QJ{4nc%+;?0d$W|jufN}ZuRdD|jtKCiw*dy$-aN#zPDzR{B`eS#1oqNV
zP!J*q>$(@TOUWO{Xh6_s3%3gyi)+0XM1JBbHS2oAl3@E*&qv!`HBO@n-Ph!eKV8_h
zQBQ*4`An-b*I1ioEO2xd{nHrWoc*>XxR!Qsz5U>A-*2+P<oJkfeDq7vMnqCGPTviy
zk1v+*;I-PwzCa!*9Go)7_Y;y)`ZZa^qItbKd}$}MwmXLl#K7U!MtR(4-NnMQ!);4}
z=jIi&gUJJeyt@m3EPEq3b_zip!6&6+tqqE|#CNsKfQ=r6c9=rk=$Q#QLX6dbWMgC{
zeGjIq9P>4`0;lMrAJ&J~T4KCFg%$A7vhqhwGABmY;8Paz6PibAwk3?P7L*@)%k7$(
z<idBKUvGB<#!4aIC9t+ZUj{EU=08`#K!81<d~mOhhzEpBd>{s7=0d@7{c4q3-^w1a
zT_-TdYuQ~{!to?87H033HRqxR=-MB1`6=otY%hZ?4@hET;{1s=(ozG*7O$95`;rnU
zA39s8ety21IoYX9q&$Uqn+a_?{!I5soQe9P!&c!)>7mMvYk+wWVlvu+yx*N&k4*k4
zW3-%lyw-&8;cOX1P%2;aM_mXhfC8GF)qO;BNTRqD(tq^15~k(kiS2l;6@opg1#!=e
zL6lDJXMjh;VPIO+SAN0S<fOCgX1Mm!FitiSVGnih!4hSKPB$LSV?j!xgZ~l%##Jx7
zt!1flCn~+|Pq=W7q3y2T3-}ORiH(x<65v9v30TLAu`8H{EzV-U#0#X?H3<kN2Z)2=
zhxpgfkj$jtrOkAfbmUVfdlYvWFJM4IIS}Mzz<b4qM)r=w5wxo)|9&iJZS$lTfirp|
zE#fh<TrjS(HDe?@y9u!wL3(F@9o&u|-RzW@cN$)<k6>IY@+!MK={3GEg4OZnPy?($
zI3QqLsZ)3Maxjvh-sODw6oEUU>*U_^RbTQ+SHXQz@|4_6KsBClT(2{;t;A*m_4Iv#
zJ0js6(RNp(&NQ4U5@-?4PATojVz|zeuU*=~e8Su!tql6rpTg|RdpbAmg1Z1-a7efm
zi(`%N-HF4+T4lM~tp5VZ^LPQP!*We*ba)s5)rJF<5vJ^&h3Xx)-a3lb75wI3C$@B#
z%+{_MZGFn9^lO4ICKSJQbDcC%z^~bHL#<4fwYLH4&B);@bG>wJdO-TMpwRvY7FHpM
z@OzyjPLN*Ogl_Z0_1rC8!yUA((n%DV4rJ1RJF>q)B5dK!EJwGYuVvex^4o$XEJ?hj
zNY)ppK%BtQS)R$cug)RsCdq<No9?$W?2{vMA3xdyF)|Q4Z@|J~QL<ygowOybdSd(K
zR?+??zHN@hpe&0X&n8s53&k!Med1WhbV|0`UMY?T)*Q=edhH#1N~9zTt#(m5v!j0=
z>8}kB^?beqwfn18RD$&x9R8-|5NR&YO#{ig{$(WmVKF5Fh4xXq!hKEhS|9D&--pq&
z&o?s@%ksLl4jgR_Hi5;qI3thA%<a9wN=Rz-rh3euY(|N(q~%`}wYpZ#gL%Hi<ns>*
z{Yd<Dy+MUA&@JP0L$A(d+nEedSf#~D5H89}JPtD$Qge;1(%o4{LJhn|Vkkg*3*3h|
zD@FNd8=nv<SI5`&Z`ULtUsIWxB~=>WH0)P{YS>3l%XX@^|5du)^BWScnzA34mXR6g
z@_tju6@sAs*@4;V@z9q*r99nir#EK~M_$=8Y*?)9ATkg1H>BUam7>du8-?i*A4GK%
z84JnqqQ6?(Jg-=oFQ;<;yp3E3)UHeHV$WBE$W>x*rw6ei<gC@u1(A!#F`B*#<sZ2s
zx$aA)5r$5pNQqb}Co6i`4Y(#a;pXag=tmqf8?)GkU=ER;FMT;AQW<R=>K?zmqK|u9
z$7sgQf`=;c6w!PKNSKXBJ0}uZ%idR-6I{PA__DVFzt{3bZ^-;1&U8xtyjx+FqL`y%
zyV?I<$z6475`kr<`5sw)XwSB2biZ<*0>5p$9IJe@ju&8$^N?*zhUZ^Em2uvrkaol5
zy0Pgk%difVwVQAdOTPVf8B#REoxh|;RrW2b+Y>s=!wNUq<4B*AgD}EpM=ajO)f$yA
zy93bp%i=vXzRj=7#nRDVeSr<Fz|AO=T((teo$+p6Hvon_EVWQuvJF`QygE9~v_Nw8
zg|?VXA~jR9ju*zx_alEs6fLGR(jiXDhvoOnBW_O^0{2W<I&%=J8y;^)z$3|!(Ok$5
z<gqJR4%cX*t3S~H`$7DeApvTl(To~)^dWhn_DK5oWw{@jc&+|D+kgK>6GNZvvhH%&
zZOI>wW6VBuNr7BBEKA;g{jIQ5*W3=s0P?MUy5%<GUQ`;gsPT`*JW}_W<Y2nqdk9q3
znaTZhf`ZsQ|1M;>Ua9Nz=kkw;GufK;{`=U7hUmRpD=r({D&sdU)EvD*S+P2bm5)J~
z<!3o8`gnGuPV586^r0fETqV9AyxN5@8HZO=L%yw&Cx}vdUss#C<n+QyJsUTeKU~2I
z%?{utvSeP%K08csu6Gj_%zrkcV$YX~RR&4qo4HMpecwA-gG_xi&!0!C-ZHs&)B7;Q
zcz^+eH^-Q!nM4Bhh7bL|DnZU2@B9qk^}gc713Uxh@Ycka3S$(OWY^er>o!3tq5yA3
zt`&3!TMXX6D<s<PWpqL*L>6VxpTrsfT$t!vU40C2lWqb8uSB&U1=&F=bqHPEa3twJ
z+Ja`9_96f73i-@)!pz>Ua^VeQHm{Twc#75ykuo7+^b>gbJbT?2{BaWF!wiJ@^+Nx7
z_Yvym=0*U2yc)KxB8)X*!TcpJ%|7So!31{tdpLc*+TRqR6`0{(klY%Ue%Pf`gH`8O
za&U~h5>%k<V<dG%$$@)g3Ui^`wb@EkrbchaCssI0xB!dr%clYMdXs~N$zqJS;n0+a
zPPu*ZUt3PUGecp}YWVqsLG6|nXZ8KvnJlXef!(Pq2*{f->N(gwIE&_e++mfI5(iF5
zE+3;+&tANRLI%F6QH9#d7A&boJU;ARpQK?Lm1waH+O2nbTJ1@hE0Mr@qRm|s%WIqC
z?*@Y<5VGyZ>6%G}Gz4};Nvq42Cl8uRi5cIw(H6p6wcH4%%QdL51|R6C)x&eKhp<1s
zicKyR2m-kq^CJW|BIo^AWwnEyOMq&TTw3WZrG!zaazG5)GlQuI-I$EuIGWjqjWpBv
zMvz0an^GGCB$V>rB@*<JOQkB<I2Qa>>>LXThe0W=R<3)&qV1)2svu}TyC%*dFCW*{
zDMw){h{+PcT44&|lhaN5ZRbxhovH=6MXc-Pf-qN$f>NzbmK4RG7ItqniF>CGE-XoC
zDFJgBc0=$|)YWz>FqJUGk3b8TzFiwu{4C))&fyEntP$tv1VwIs3LBY$5$*Pr%u&5*
z+OVXlv6@LE3|n>_qP$YLme97;+2M`~RRp7M2kHx~$)b&pp9khv(JtsTz|c$7K}EAG
z4yo`Wo4wn=OM<SBC(U~Kqa}KcxTf^0fnf===1XNR#dgIoDW3Fa=GKS2@1si^V|-SM
z<)CVF^u{`65fyWbM1l?st9Iw38%K3B&tQduaH-XN$#NWX<_~x_R(Z@9pteVcnaSN6
zQO)?r5ob`Yy>EIGJ^9M&Om;Bi+qPFv^mf5(Fr33OnbCS`)-36Hd|%GIv(RCuvm)bK
ztI82Md<V#vMT@NoEap#+T(00x<kLF+kE+|IrM;Ezhh#6jc62thwxQxsK3>+jvA6#7
zzKNCNTWU7q(8+=6i;?WqsGjBlx0^(G5ir?io1YlK#S6h?$i&*TDVM)RuA>{*SzBq<
zkj-;n5UiDM9Vtmwx+eLc<KX79sIvK^H39D5MivxGe#K@Jb<f+WJIlS9(+{?81W3BG
zJ$@HUU7Dd#Rp!6UZ;jU95hQk5^!z{cvYqF|CzWnh{j_o<ro{+oxC~4v&UTNEqH`<D
zu=4MKYL`6&7oo?xUEobMTP9yOx9n_@Dz-a88_!9H<*RjeMpVvL+Lg3gigDeRV?T}f
z8}P_xZsv*ByBHvr9&IH<9gOP1Ui0<X^$8bH+0Ui+Ym-ijE^wY{)pvk%*-Zq4cPl)c
zKM!1XW`6O{*qU`8D;;k(l*Qgx>Tg`Q5x$kDTllJMzm2jtj*H8BpWZ*7&CW`+U*X(*
zGmM*?Y4K>~S%6}az<`Q-v9(UPvEP*bH4?t_+if<XNfn|X**cUB^_a5km&#r!`yi*l
zNxxd?AjiR42gOQ*@ZPUJoumKQEbss2jA)*+hi-(3>h?M+cij6;quo{icK;6~<zkgC
z4q40o`w))Zerj*+tjN{l+O<ZRYp1;bY)T<FitO4XSE@9H&&Qh@Y%d0#p6mGyQgJp0
zWmpTjY-UZJ0)_oGTqj>|3?M;9bwrZN7isDuu{C*iePN|Rg%Jukm6JJyH_XMaX*QX3
z^d+~-o$#3{ry^;Z0S^hcebTR|lr56Q-;p4|5RtB|r8uPk&6ySdlZ!?#>xEQyjta4s
z)r<DPXTwS;c1|^&jx=-bN4piJJ2cVX*R59x>f$-|`|jlXJhx3-TzTIRk_~JbpviC>
z=6qo*(=5-?)57uN?b9)Sq3)latArY3<af4QO~lMPV*86&aQt3|`O3UyP`uWF6$wEJ
zJ&&L}w>)vgIcNPA@+pnXw=tJk%@)pTJ|*&p`HeSq*;z?8v?X%=`HhVU$Iaw;pFy^0
zc_EPxXjT#gUQ#YKIX|Jenk{JS2F+sLmm+4_U=}%x!#V`6r?ww=Clv;nBE(dS^pDyY
zAG7}HH>Zimf5^@w=UK*fnqI}6%Tp&Xy|X_+O<J@t$8;+c_gj<hNlRyH?M}BKSl?-H
z>^)bJ;SE~jVwgjJ6ftC(-7oIn<tf_=m3)<;{VYf?@<Dx0lg)XaS-^8(kzM^iRJ{dI
zoJ$if93&8e1$RkscXxMp55e8t6C@Da-6cR^ad&rjw`Ez}UH&~M=ez&COcm5tE%T0a
z_w@AB{k)N6%5BewES63(@5S^6_hed%K}rO_u+JY7_5ehq(-+QZiOyvwsz&$o%Yq9k
zQV7^3_cD{f0rkTkCzsi~7^E(WbzS52{Vcdb_DU_HjE1xRD6#?cXY+JW6YMHx7f3m#
zLH^HyWv>_STL!8q-=#*pAVX5^qqbBo_9)x0@~gxI{J6v)EaSG{L3d#d-4%5i%_(x#
zZ2OELNk(Fj7U1JEO?&H)3}NV{My#fA*+G0t<&SjWYC-(AtoOg-Gnq_?uD9pYUvP$B
zXT$k-VhVo>m7he;Ug;!f@Xs}}HYbjOd_o>WsVM#Ym6TSxkAoT5jVNF?8Sv+KRFcA*
zc7ZI~V&?=S9+H!ho)rx?xl{4a`t@0DwhCKB-5`|`1S>1O!J{;nX&rFr@#aT-RPD-a
z#G7#P+w!3t(_+vsNrPqk-@^vSXMTJ*HdagPgdsz1-V-+;EyJA2H@%1i4o0n-(-M)I
z7WfKY=XEyXVKT7ZB@CMgRkH@QZAi4Y{-45xE~qFU{0z69L@wn_W@BhL)O~BRo1NNH
z|Dq?6A8={rdcp_eFa*S{OlW6*H)I2<^TP<3M)}QckkGF?`h0LPLXAV6MMAJ}_<GiF
z*K~eb=biF_VO5L}N)I+k7r42-*%S~BoqmGUE^EKS2D75684u6LK1<<6(>%5mGH#XY
z3Uo`j0KAuZo_1NSY_M6K9=mug6qVe($jHeEodxdj6FsAjgwsx$Xz7m~j#BE19gc7?
zIqGz&6h6ap<;7}3vk1l9L7d&bIIsD>>RjHn3P#hRI~s)+bU^;+SZdx&o8c;@5JwjP
z=PIkZITx`|v1|I2nXop7XXiPom>NbEkN1@3n%YZ(|2R5d3N%Jj^H-*m8449|-C8fa
zxjdF{;3u!hRG&kNt@$6SlrmcCI4`3BUIg;HyuBD1c_Rer-<I=vv|OmLD)`z7T3OA$
zk%97~)7Go;8W}9#uIXWGP-Q>ug{XX?Va~lxbJm83LY&sr(<tUSO7kxR<>5`9-~3YT
zBr*}iw_IRxqhI{)qj0WrJSu(|GxA3j+JhJVhCb|&pT(3UsJ`U1!B1j3Y2Q@6@;*f(
z)^gS2v3t2=tt0vKm8ERIwVG-f*|uQ%HJ_JCuzB_&{&2#|-2j)+h1edc+lJ`<pE#<q
za&NB{v8vMB3w7M}^0i&RvGGUW==7A`<rUkUiDvA8){EXPcgD#96~Ng_5Yg|N>FLbf
zF>3qB2oV$6UJup7N@wv}^c;l#@XE&8lZ3=SL^&d>?(H#`zd|1kCUZxykyjg`kBT0A
zQAz!>PT3A2Al`Md;@mic*sNlW@xy78QB}4k++p>J^N7O+)r_i8I*9V_VPSdlc6rh?
z(+`lOG#MP2vtoSo$Gd)q61U)KnC$WN#r<<l0&2bvkQs&+>&&%f7S}l2%R;=e^J9)u
z6gocBoRatHoW+Ks>s<8i)-+#;&)I(mi3ZAt#7zCW2rRmtno-6dl>}V2q`CZFf;>En
z7oWx@sJO8Tyd1Y@I0m!tJ&W<41*q^cV~-07<`wXOg$f`AZ57>T6|V_5$BfB2u{7LR
zpW!Ql{AMA}c6$!+5Y5<rf|erCYq1++_o4n~I;+TJSAkES!a1e<U~+HoOUONtAF-)e
zNQ9nBM<LzWedc1`o&aPJ>TzFsXmSMf(*Q$j@>1%>r%B5WSq@A{YqpK58R`|^pKWJ~
z3NUtZ&&!=8s&faa?sD*Aq@(lfQm@;o3c{Lwa7O-gIe#XfdZ+K1RPI>cJr|0FF0I!7
zenucugYdm(n+*BA^3(5Ri@>gB+Z^k>8jAO97KY`1w5c;E1GYJFJ!pZ{Ll4K73v+C5
zw=}Q!Yyi&E&hIpMvuT6;()a=di9pFDM_XY0bDaVLKND|oyo+^j#D#12ufS5-$xYzJ
z%&)-_V=FJAocxMMghZK-o$7vaUlq**572Hr%i=ZRVE-gmGV^PlT;1mr->UfOb*vPt
zg_?R(N0BJ7vIea2JPWRv&jM?Xf}Qz+J~+PKhPvse^M8H(H#)*8TpKQbL9^s+FG8DB
z_{L*Ob2GCv7M)$YucTVmE(&}1);V~c5B(L-6GfmAeedKhDLPrEjWsoN38UpJ)LBR0
zvSIlsZoF*I{auVpVD!;`{E<g;SuV!Rks(6cOj(;+^YdW=zt?rzP~u<}DPud>H1^jQ
zPjrMds_+Pg-bGmJ(FvvrzGwBD>bf>SSw_on=K)J1nP)u~I_?FqZPc}Rm`U;G5;XbQ
zKgjZ-R=53Yt%)Wu6tiSqPEbBR!g@9qAT@BVB<{<7v5Z#`_RL($-7B7O|4F6T@5|2e
z-1d)5B~p{wtTMl{_tm9PZ7|Cnu8@??D-u<(=hNjl03Wz2IDhMDvp4IZ&r9L|LKm_t
z{a~^rmerZYPtx|8Voso3Liy2sjI4gNqABd!3BS3U%Am~)EFbHzE~9xfJ6J@119J$g
z(lU;0b{rNPVJ!Kb3S4-&Wh)hA$)@7(Tm6vb+K++aLU}0ep51XW;`)tPj56mEQF2nO
z`{lpNsy8@zb_<!UxRGl15CTmzVx<KQ{t};utgqsF3^gQ|9l9ml<(t1THdTKQkhxJr
z)tYB7#*DBDPY2(Bxw`u}yH^PumA3DSt2>H?A<st5q#l{2fBs-v&u&p9Wl?MBjRebi
zjNa}F&#`VjJj2MAQz6yA$X;1fFJ5|^Ry0|=+@!DT4Mol~YW`-O@WYPe7eB>223rl=
zr@Fa{qSc5sTlJ7oP(7Q`v&P#pdq|OAF?imcLCq#y+b#t><N7@SO1l3A?^KC)f6_8S
zFZ3^#`Ra<Y<fYq_QMA^y6j(fYc*V|vc;80nT88RHkkS)XPRDiJ<xQM|FX{3V4rd=d
ze$$0jZsUL<rtIR*)w-S15iD+v{Z>mk`Q2I1ZM2x27SQ@Jy*d_b+xnh*Pu<XehBje~
z{)KzhgK_ns+>i5^o`WJL^1j$zCPm#@y?(SK(<}T{JjSl1*1>KmM;p13`hNwF+%PDX
zC~?db@rPnU4nK=HB8mn?W!`6hN#;^o6)~VbQ;!DMmAY~$#4GH}m^{&_AdwkNb47>X
zB{7H$?$%-MLBZXY^(l4^XA)4pl~TH9Od2L_fEU}{9zt-~H;QYus05DgI%q49T^<=?
zvWyiw*<yOKCbTj=Qm+jCc`l~$?4kXhwf*^Kbvv)h{&ZNbunS7(V499zMt?#+%Cu^;
zdTP-U%ov=hzT0s6*a(5EWsm4Odn!hmHfEfYZLaQHba^9O7KZsMJa{eIvS~myl@&i`
zv^($S`4sQom(~^)Tt75_pBiRz@ZWw&vgtk1c*ydXQ!;kmaI3XC(Xg`BeE?pL?uOsI
z92J7(w~0>u&gAv9I}?&;&weQy@7j4A0NcEF5CmRrW>-J?1Qb6=49--sXBl_wWP&fR
zR(&VDy`Jp!>~yIZjEn=wUtO>1Pret|f|cB`7<lSuXKt{}(Xq}4XNH*`()vItgQ2T7
z{${joq*fE;okiv4nOA8}8>46PCRa5269dBzRzqj58(x`C3l3my{0aUIC(f95TEjAn
z8f{i%8dQY5($<e_2UG&ryPgvXD>9q=jauV!;JUq<5CS^0WwK!2J?L<9lgzw+lG<zf
z9o?&i`k%ql$u&j$hKLhT77nZW9X+;dMqV%FM>kq2Mz|X}05<`nBMsb*Y?+nW`c<tq
zKouL!>i$JB$j@Om3(O(p{ScC4#k27+!Qppyx%Tv?fYLNMY_#gI7eMOvXqNB5q*T2s
z*;<DViw)ONidd9@D|&>6R=4<Po(WiD9uJj??U`O=abhpCJCo|(Mw|B^dht&c>VL(^
z6GkW>Duzu-8W~BI4^ELX1M}45OdXba8I0v(gpP4frY<K58+6mnmA?G&?48liwA29_
z8vIwZ{a+^mOemHzy8EN#Dv5M8!Bn;4!70N1mu5)L&py??b`}43(eu9#PJo#yjR{u}
z9tl#H!Td#<T4D!#S%>^zboT!Y?4NAoPn_~RvHL7B1#G6kOC&bg)8G9LF>@E<oibMF
zKIlvAocdZN=><Cs3<UO9OO6?Xp+_6wwksOO&Nf{>kA+RXtjm2ZsvO|nj7xGFi9!M;
z*JUs(Av-;hfgQe)e~1oMytCpfE)kSe;Ei`l{T=bg!2pG2!9%kimjs>kK^HIId~js#
zT?0J<sIAdoWr&W9Yw9*7YIYuMYxs|nL1NQMYPuyx#<vhXdW!TsRU9+vZ3A@NpU{t{
zZD{#rT|7MaC2h+e8D!Ih2_*+KWN~H{frw5E!PlTc95oaSU0zNlLmoq?4cE3=pG`in
zUit+4Wx1_ICPQzU7T6ZwqHVm~(*dHdH+-{RB_7Ehs(6v=MxL!0m&`M1eG7{g#8P_*
zUe3K)#v=|R!&DP99<gINTA{7Kwh#Zu1rS@pFmdf=HnnTekkIiQ;jv%;sy{;oY`jq9
zonW;Uq&iW1@axxEY0>qDd~5@7>j~X7)1Ivh%FW`PDh$pz7T24tln?ikJP|JQL$r5h
zb*ydWcFAHEEeYf{p!3K%;}!5dhs!;)+Nxh%Z?dh*mp?hVeZ{mTrS|4_E$jJ+E{DmG
z&&7MTj@>q`V`hbYg4@BLXV-VWJCr7?;zvT|&1yMBH9_)czd9%Qvk9s8Z;DN353F-O
zKU|F%!>xuTH^`KHB~tF5ZSg!y(GmgH<7Ec7y|kpb6yF3BzSSpHeZJi=Z0~hDBeIy?
z!vV<$d>6VK2wg7cA|kK{Y+N+>TJYKF`rIT9T6kN)nLBUngBpQPw7tPRY`o|`@Q_81
z&z=k8tZ3(*<$c+>fb?aj3u>PQc)FZ@aP_piZ7XM+cs${V(X>B&?z#Foy?ab{_B`RL
z*y)k22BecF%B-u{)WYMO(DEwIT<h^o0xL|W4ah7$UdiPc2|`BjFg=Xen7vj$ZUOk{
z{@8w&<<w9)!EE7u=4ruOvYAFD)XDaO@VZ7oU_OdTR8o8K(dE%^ebtvT%VTG4NG&-*
zDI4QJm-jY3W6<1frqQ_La+Mi0pSF>*iI;377~)gHH{Z@S0lt$MOa^C7ghI?)G1CW!
z%NgGA8He60Ix?oUxGC=|y2Sw>EVmh4P~>Ecrr|?#cvhVqvBeSsvNQHpufx@Hxx$X0
zLvK4^1AN>LvD!IT9i&!v=@^$h&_o+;<eX!MSlib=o2%SDH_?-=9+b+YSuwd7J-+=u
z&a8kKX^Ye-_t3O9)|g%Kh~!+KzurUOXwX$Wj5!cg*v;Qqrb(-un(hM{PNKfg)cz=T
zhgw{JwLn6?Ywqz6^8>1*aBnXHdjIV7CB1^r1Qfr)3L?dZ50ZdE>&Fa;J!jnWOwqz|
zKFeNh$U0r-F?epSFzEj6bB=qG41|Ad8zL-<V}D7z#vb!3VrjJYHO}%Nb~z)`*3J*0
zZyzisnDm`o_wp*9`y;C%^59zx%pCPS48KC=&WUm3#qo3e+@N+Q9<&M18i?Niy%idR
zk$d<`(9GCqqNiBs49^jT?%?u}ko69l%CE%&<az;u@!`L(`pO|7Yw&qer}DkrTiEIy
z6_(40_dfK&uAPvXbxvGJ`X@hCZXxK&u+#JXz6WipGv4f|C&cP3>`}1KmFs3{&(F0R
zeaGLaabBO6mwBdAPK<!pZlwdufWFQ$V*BR5)C~7zgj3qsn3#dNU4d%x)7n(Ao~dw-
zDHZDxdwVeEj*Hx$pLrF=taZVvXqF4PaCXgD9J}pVYaeILfjrK8A5>@Aoc5|LX3dQu
z`J)CX`j&*Bn30gEqhn)pXTOUptrit%cXd-*1(ZRBuP~l~?x;+T*LbbJD#(m~edzy$
zPWaO#L;$ca@2zi!Q{3D!^YoD~p+(=)%lWBZ`MG_{bE^Tg=Ge8!2ckQ+O*WK%l=|=-
ze^=r}&lmjjTseoM8ol~Bv-f^0gT!gGuZUL?YAyPJ?d3hjZ#7Ej=kwDo&8CM-`*TpL
zgO^Gw=RP5CWM3a9Ce!I)KziV8uvY3t8*@n3XkCbJ!-Sc}r6pvmM#|T8uJx%;#_Ym2
z3Sg|#xTW)qO5?Xn%n}XpAa0sJ&B?E{0YLTf4<2eQPW1i=tWl<i9P~;kw%jHmQL!Jd
ziI;1l|JAQlazmyU988WHJ1x~j<kCKx@jQ#ZcDDgIm?=b3n&Pc3Xlb*`p1kXEhW9F5
z$~t?Fi~xRNsnRPK)zWH{FAgN5PNj+o3B%&;%;<)2IgA8NO?^H7wHc!hJ%Dc9{SeL9
z@KU1Vee3IO<~-ai9v<6?ME>!^k(~1A2k(a%;#zkSrOpm}g2Vq#QO6D^;rPm_SYgXZ
zEM-?-zu}A`wL_{2?JD9Z8!6JRPTU%5m23Lm{fG~jtZ8xa9vffSAS4t&6dcanGz<wK
zHabnw-^kT2l`HDGr`^i?wBCv;6}`V@UheBc4>GQB?g8E#qTs$<I`xYrBKj4~c8ASY
zXbWMJBM+%t^oMUPb9G2Cm=Dfb`PGmyH+a=Q$&a=NB(W(}B{`}0NX3#Z+_e0yihl+M
zhA8^$7Y$Dcn$jLZ1vX4%W2#p3xbHDXJ9UlbCo1GY3lLiXIAbc`BfIQZ`&$^6Y!3Js
z`4u^ZV)dOV%(?&?tfBeJ8ZgeWw)gf4G9M?HI&}P7NT<1C)}}g{;3J&OdQiwpg2R17
z5F0|beHY(4eBJa;|K8tg2cY=4bKE`06+DBxN)BXZdTKSZuA*aCyq5w6G{&9FKh3Kr
z>+kD!Y5!caS51MzVTY%erk5r|gu_G>rO9D`jK6xFqyl^4`96=nwEfA}qxtK5-|q#!
z&vgg(Z#>ESqCo$0x-w?byC=ytN<}z9#Z=q+Gr`jhW@3io%7d7*AefN*TV9}fvd|3n
z6Z8Y5%f1({&{idll-c@etrw+~!Ki=CSr<@Pgh%=3MN2Mu6lsMgOLTR!Do?;8(D}7+
zeTJ4Hp(U{|g1VA|QSI?<LCOCr)J4(pv0bm^xg_FF@ob}&klTo-D?w-CmG0PA1cit<
z_~q%2py*pbKtLkB&P*G>Y(f6y&9A*bqYo<x_U->kbOWRgLxYrs;fWcW!t{IV+iz2K
z*c&ov6&Ct;@K#Dw-_^i5qgXfb&ot^LB_5dws^&_VgANJ75}wdV>>9XlsBC|51tO|T
z{w!T*>w~}m+OfygX0SZyQ^p&=U6CF`3e5Z6cbmJl9oNUc5K6@5?<G0@_`s1Qv4=~b
zN{g%2^Ihkggs7<KhMXmQ=J)v~$5LAZ_mh>73cbekv5&Kg+%Kb_$}2Y%w=@;s-4(<L
zvT9`v?5i1`j3v}wXIlAA*I)ea;tz^|(Y;jQ@%(_dhIqMB#BhFMAaK43DX!yX#qFdp
zC5=TFM0KbCel8p!4*M|syB<UeGcRLOSQv;V(y!1aO#UMhai`KIpcr{KdT(o|pZ{HK
zZW%0CoVC5DZtZ!r11Ykp6rPxH4aJAeiYneL7<LLfKWxnFsk{M^{16`l<Hy{bI-8bN
zTZ){b;s88}Zy*djittrm7>U2-49!IG^pe8?^Vk@2q1is-s5n7(#>51P>~5B#D^@@%
zfp^=kdgyooJ0z6qSjnw?ZQI#&`(CHU6v2AFECh{Aa%-3>hn;DW$YU+Y=d2wk#mJw>
z{cOX|P}t^hU!Q$y!3?sPsX_rAG@?dcyg=c%8idkv1q(pD?+9>jZ)-u%K|)e8w0Tj^
z>I%;%-ZcAC+xwF5Oo8%l@UJ5u@C6<gKN^!EG!7M|XFkPMw0C9tpR6Clb`NHID@{DQ
z1U59{J$RuAgyLh_ZdAQ^j@apr`geOQ!RWB&B!b^bIH|skWW!87eC&Vdr9M{Rvqa%d
z#Y>U3q7b2~F#h1F7{wDfe1s7@vA#MI^RoO~rykl`J-jDb!0O&u><jvg%cnk8ageW@
zJ4!5bfohR#D!<nyg2ueQ<I_pw?pF5?xWaY!RXeZmuvyyXpr3tx;$x{Sy<<+$E9p$^
zcfU_2czS#UYuqF31m;rGjh-VOfN3RanNeEaFLY6e*h&XwoxmtR&df!jkq_;a78+72
zOyR`3?WP_ZUL~cQJN>_=3uQ1q_?nrUf9nc_I#_K4#LXcH!@<I)!t0|xF1u@9Z$gBz
zErptoZ&mw1OJ7#@V@x#yiyMZC-Q)GOD@Jj{hq=cGucbmC9zPA*oI}QvZZc-(^I#ku
zJLG(p^?Zp5|5o|D)Bkd!2??u69UgCAaQ)<P<^Whxt%ihADsmnLVy>`)K0C5&E^bV1
z_0Hs~Y%a`P52W^Xx@aQ&U0dTtty8R-p`|nr8Iq3Drr*ODE5l#F%ec*qD0W|<KOLWi
z9TthQgkNZBG9k<0aP<*&J@?7$Z<2n*k`3Jn<6v3B&VdVdYMbQ!=@(w8!HJ8?1&HkD
zi?6Z|z_t#9-<d*-YK$Jqfj1n7awpbpb+0I$4n-yy<3~e7Gd|_OxdzV;M&3XcJ0}gp
z2)F!piN|!lOv7_42p&lra|^R-&UZV{s85>A&TFKgSz<<RdPe_?#V&C1P*Yi1*)X$b
zPn?U64sm;X+so~)uc<RY3S|j&X50Ak2U;Th7)aiZA^d#1>M#wd0L3T{6XfPzYBPPi
z3wR5o%Jzg73qz48kc^UlZoXGZ`?l8Rbv33MB)mB(^oGO`Ue5SWIyvci$J43Ucshpy
z76je@Ds1cO%FfPhyVk^VcBC+h4Cs7qfr^06<XUrtS!u9C1fo?ylya%<KsWls=NFsG
z_FH}S(IW8QTWt;@b4w_E3~Bs;E5$Z`JwF_G><_Qbv;L>eG0}3#`RQ6$X7f|QKoa7E
znBtqV^ox@kLj+IzJ)~pl;l3Ys<-3PaM9T4lAK~6(51QFDZa1sARK0eI$Tw9m5rd@s
z`kjlatY0{<1CI54Ut9y~Yz$L|_NgnkWKeSy@39=B4Q#H7k2C>4bBOVSS2PMdO_x5m
z33|ir|JnTYd+HtGx0ea3Kb9awzx&B-0Ro}ddos;R{ctQg&0H7IMCfMxiWP^v74Vyh
z$yM;D2#i?$23tJIDEyF-Bs!D5p*Ztw2sLGlQ$LngE(DIDJX<shu$!wsoGbmIB=`V}
zMXN5XuTRM7uo3)p+DcNP>xC4F2;1>;ySmiuQZmeCyTt5zI5(Ww?zk-)Ni49ENP>?a
z(R$i~s8OcQ0-nJ7%KW}n2t)*beGD#;gr@bgB^30<?Z2<~NR<Rp6qf5XRw6V`dKwcr
zF7z3c1tw*mtTs;0^?nzZ!N&rWXZlUuymzb2^ox@)`g(S^8NekWv*LBP?vY`3F-Q`y
z=368K61RW4J!!h0kz+9(`b377q*w&^kxm9vdd|6}l54}0%+UYAjGTfZ?N*wXwyMc$
zma>+8I?qH(Y*q&qW9#)lqBufFVN#WnhPnvGpve*@juOUWf|qv#0&Jh|P;7#=r~tiH
zs20Zi4W^Op6$FR#e}Yj5#(G`=(Gsp9GfftbKDHa_5#0j1m$tzCgU9<4TsAY}6^`;>
z89wZiYaUL&hl@;uI(a$)16;MqyFk6w0<M&Li!p=f6v4D_(OT_yD;tvesbWMOzggp!
zngrkg(dj`|v84K3xdICmMC`n=pp2gU_gd)W(o>%usiAuQ=+s_z<qo*eiKyeO%u_zt
z`3H$0h}0djd!B!lJ|G?5th1U;9FvC6@!WAz|Dzojx=?%3gUFO?yIf;FfyaKJT4%q$
z5-3^Zch-LAsc%QU;d`aP26%qjeB<0w|Jva9go5k5{Hg8nu$<bUjQ#Z@CZLH_MgEC^
zSEeikAoz652C2b<!=RM!YO3CioErT;DAbc&3x}DNRJG#+zURsEi@SCnTK2I>uif|X
zEwe7E=bRlvxNg7S`E?*oT7q*wLI>z;uv?YSOh&A1Ii$TlTAXZa()~6i{8_xiWDte_
z?fJ@bIzPm#IZ5kBpOVmvDI5xvtlQK$*Jfn13n*W=-a2%j$F6{;`^D*B-zYE)X2pu0
zsQadx#`CfhqsqG1z0O`0adO=aZ@<$|phcY;ic)w`6L}18wiRRccZ?@y^;7&*v6Wq7
z8F6&u;Pdwq!OVzmWIEj8U`|!_3gwUbOrg>JPiE7)NS#MMkm64=Zx7o@J3bSq)vB}e
z?my$67YSC{P0onWbfLKIEgA&wTeo-q12!@8gO?l`Dh-$^jz3<kq%-&cL?+ip>jBV#
z?tfnWw$IFor|$iyC2)+-Hrl5`rH?X6-V{48<>Ct{_76GA$mr?m9f}SQ%K-yTPP<53
ziLO-=zmk6&bqW^l7bcZLa+C7q(^#91YevW3THKD1a(xf-!XjN&2rTMo)Lr8CX~wIi
zVu(c!p|Z`!DZl~zkEk%X1_BbRasfHzesJ}?J`7qcH@4yu5@{fv^542Qi7tY>A;1Y8
zJ?{m%Z*G_j(&;=d#c^Fa;hD5lvG?;@Mrq!MbcdNdlOutj0V!kOH4Q54^S<1CJNl(y
z<Qva<2&`AMy7?AyF@qNO6!}v?P;g^!T27}76JEJxAd29M{}^4n)_hzCj4L+x-#!T&
z^K?}+MctxHRYY_zjXzCsl)*kWmPXOR>j#$rjv|6%EYf5OWc!^x?^_J_cX<LW6bC7e
zrO=>@Dd$IbMqY{H(z9g@T6*>U_gPuE8gnx{(|l19+~<FdI`_(}z^LxHJ9@QB>8vdk
zvuX|=58?onfY@JURy`RZ4n(^8uP)hB&s$JCOM%#|0R4WOt18pubM0i5x{^t&W~AWD
zwOZ|rdcCy<8;-U}7ywSYDlIL}YM)T%6?U%<onq@ZP(+5FspI}zf`PEgRe_}}k!+>+
z%^@X#vu{Y|-NozE83963mWhNKGzx=V=gorN!E^z9UA1K0>jzTi_boziYJ^j47Ef&o
z8Jv>i_Qy-rl3PWnL_Ee=bX|N20}ndv-jr$WS4$~{eowdNR+@5cx*hZ8=rpSX0|VPn
zXH>XZNa0gAqC;8Zyq=3PcV#IR8L1SG2d>b;x{9%TPB(}1UMkRu-k&vu+WX=eW!nJE
z?Nt$tZbqH{?b8N{hL9jiKg|D9RVVj^--#?`7SfM31(4pN-5XpToAx>X7|GI#5g8ut
zK3J=)X7M7U*)FT+W7(<zH`OTO{gIO%9I3OtF6g^>>^7*fUe~<Fd!?9aVPAOjY0^<0
z5R6%7&Qc&!qA{i9>VsJL58e8z1BdLk<;CN;{+@M4WRa<jA(RHu=VGn6tf|;E(ep)D
zpU77pL`WWI5a(d&UV4Xyq)qC@9wSzozH|r8@}y*EZReLL(72mK?4!z{ygy_Q7-A~%
z5_gGl;n91i;>uw$GOYTOTpZn;8gQ7)j`n9&=<PwNu&8Kzl&O<lSfwR~QJdZNN$=&r
ztM;ohy0~Ai>%mkvKON_@Jl>bc-Xc&f)f>)-*&l$ghct_979$?jj+3?KS}&F|_3+~S
zQ@`Sl__5*O=uE$=@o}DeH0HVnG~gXvL`_Oj3zy9T(xkv0p{b(ODdeo=h!`HxYjwAi
zzVLj!273vsWVl_wr!4_m)6m&?i4YY6Ke}bVkEe`#+WmX&bm@bV0Y7s`6O9kCpqJ(O
z@qO(xAW}(|8`lzCfrI33h<i(7??-J0F|3-5t6mu}(C!}1S9>1MaNgfvHY~--GWQ_U
z=Y0+mcKskout4lquF-`igUO?XN#=)QGqfiOiFiajjB@5%{lNFU@7B~#j919&7sM6(
zsT!Gzl%VN-w6;ZW^=?pG>D6WKnT^tB&{E-d{DurJseoH4nib7`oD?w&fh^>>x80{T
zNRoPU!t`HyE_)}YAixf9T^nu?uA005z8n=W{@z(P#2a!HM>&ez%@n01DqrY2wE~m%
zBEyNHWP%1Sb_X+(m~@UUH!HK^lx0<QAkJDFq|C-?eKQ6|^V@F=>#1Ck{RcE0+xs+^
z!k;X0Zu<{@dzc5ah$ZV<(5e_zitMP3?h#<R!*rWU79*v{ZwaaDvb`(U-$arsEmp0p
zbc{lsRhb)#QCtB4HX4#68wI(2wPJae41+q@iWG<Y^X+1RvJ}i;MJ2xha(?|XYXD%l
zOai5`@EernAdZ%*B!tF#RPm7llrK=$_&*3^FA&NxEP87vg2It2C1rCD{bC-5spsYg
z?`P&*?r*mgyPcb3k`Ia$7d;0&_lx80=K!Cu9q_74tPIRLqyRsnzAlP8nLxWvK8yDT
z!4^_Vb@?zGjFKLPo4_@rhIxLZPYF92(1{C_mD;M-gWt*94s!|=zMj1hg3);<Etw)c
z`pSvyTAR$?mo=X7tp-K4#uH`0lZs?wjtL<@*@eXKT18A$6qRmyHWUq<=TST*1`Vaq
zfxo(1XJ<0A#Cj5{I3AGx$LH?UE*MeQDn5-6Oe?!%Lh%zi&7j4VrR6l8sYEf$`dOCl
z4iNBy$kcuvKP@oZMoZ)sqzq=W)=>P8V;2$EB?^r)Zjle3;A@b2&0efseiJp7*k{mp
zqi<2gq}8BKV3IP~jsH;BGxjyX;S1mcsFxNY`}D>cL3#v%)Y>B@GtsA>M|`01<d^vu
z-)C}4qAj`oFm&V3g5Uh$!68}?-ry|%qJ>clc-T>WaFivFuH1BlTGNXbarn#o4>uH4
zB}EZ|fx=h)ke3CJZI!Yo7b8R1G5&J;I+Om`q9wZ`9dQn;nq6j54?MaBNq*~|Fik{c
zR7A*<vIfc@UE6$3Vcc4~M{<q$C^mbbI+Sab9-eWV2Rpd65+@?PQ**I1XREK)O8-R+
zhQ&vXaHh$m1>260u|(ul5sU1T0WXpZF0r)C*ZTO+OFpEd(p0FbEvbrAB^cWBJo<+n
zHJVn5jA)TO1iOxbUo~7^y+_exiPcbvIl(>6u%}A9Ych$R@q1QT2WQ1ZgNAM++Z9w{
z85i@Hdv$4PTckH+cV|js57aTl58zA7Ka0Lw`i2ca9uUH~MY<e&gH64ROS+o1$rS{;
z6<4|XX(@}UBCN8&`e$YS`2mqy{r)4M?J^?GB~c6gGmo5<KUh|Gs?6tzeNwuGTIA<G
z0mQ;nQ^S9}^gmwC2sH57nW*fxvv_}l4i-t7g|W{vlx)|o!Jse@wA*Ez02uJ}uw)$n
zF=XJzQYkUI^X_gpa+V>ja4BwNs=Q_d9=CU#w`I*MT%dTI{l(@S8F_M5w00eoWU<*k
zycPpi5y6a{(H~gJY`rIpgU?M`eRPEWEN6VDmnAOvAYAZa&vdoQtMuz}kwE_qd#1tX
zJ{WlqN{iIphi|I2O-LGjsf{W;ti!YI`qZ4Ka{V=_m|`WF%kyJqI*0rpKOJ%l3wg&Q
zD86_8(Oe3gQ@+!8rV3cWKg!x|SB;2qp782HAkXqoh!t`_O_)>WO9B@5GG>G!6L7MV
zPEY(;X>R+0%>gT3vDH06mmFQ`K3j-e0<<G2@sfP}<;<DW>=dAnk|}{gDCKAo_nV?9
zOh*y5%BgMsmnDg1ki?6g#q8=+trrKA7UL%kJARI<#IHvMd{5B4FAavb)~mY^<PKHh
zuBhJE@n6Y&<{%u}p+pyg?vphpmYFsFE*#|t?GX=au6CkKRh?*>y7LF>n2;9hqqOXo
z-;QAHLqjjo=NBa9YO$6BGYrdgwu1Hp*bEK}87>au9zrx~<G_PVzyuG@o|cpaJ_OM*
zyb5y3j_t@7&f+ZQ&I&A?tELyOe>YQHeHD?AjP;v)RM|UYVc!ihmI-Wl*GLeL#|COu
z`=VCj&FWEeS)^aH_-5<)h8f>kmcJg?8S|Nsnk1uigV)-B9M!%~Tl(FUQ7%2EVa`Em
zr&%UB&${@U4-?!E@AvBvB>c_p3NM4%4q#JAh@iwvTxOg?bCmpzOqxAjGOaRS)rtrd
z4LpuuAOCcTo4Z^)WWA4sAYNB=RGpB-ruG&>ZUVydT9_`H@U-cjM4Aa|)t%?(j-iR4
zxf#R%gNqfn0z=Or$um1wh!8NzcorlD5=C0%w<!9qIWI#x8QL6pCVG5x)uv!b;`}hL
zdFIv)A&i!0?)<KZb=pB%vJ*}4H@6o`_7;}5??coI$dO+V;5pt<R=WRui1;o<H}GJu
z+T!)8)%ABRu<|V+1O}bb8T@eVkn4hV1BicTz1*V~v&)p^TLO4_ll5r2as3BFI_rbt
zOHOAwR)^6!jl~&K`0QSKFA7Rn%4>kD9WQ<uqze4bm4$b*X69vZK4!rMEPel_<nXyx
z4>cuy6zYjK&7&YNW`iar`(%`&9l@>$rSS8Dn$S6@3gZ$#5yTS~(p>nTUfJ_}9aN2~
z;5`wah;F`I^&|?xfspON=<T45XN|(wm>TZ)5W^R3QoHc#S;bR*w`-i?9>ur-xmKn^
zEwBc-C-MeWrq6=!fdg*>++V{`qWD;InLvadzD{|+r+{F6ZlgK&?5EPV&XHwfm8iNO
zA;?eVhkMCKfBg|QVBo+;A`G~$IbCektK+1{`dvzEi-Vr6+(fr-dLEi|Vx2;<Ipa`3
zgMztR@&K{0{5~4e(MffqkNQFNr->ZCIyc4oXjV+^x+}@g(oHfDSSXfo3PGXNDvh7=
zvWcckjpI78HT&k9RW9uWPNjV5hhrrfwy)Ksqw^)S*Ydlt=(Scbe=Ic{cp?rR3d&uI
zkzB6+A<cE%a27TxCpR<mtO+NN=;%0PXtGiT&|<gya%|vUA!_!M%fW83@VTTffK6H)
z&kxyQC!OjJ>0+hjf(~?B`A=K(+3@EgIEzN)m5dD_gi!eHiW2(1@lv!8oqdr#oC^wP
z&bjXhs|Zr%Qa*B7G(F*aD3bPi?AK-J919njft=0c(p}=S+^c-sTfA|w>^EgH2A(!_
z@GOWkHt?7_XAW$1wPv~Bd-KQ*(k-oJ(@qrMDgI*@Ah58Mlk)`Uy{yA5_w1_cM7csq
z`Rp?L$E({_*9O!!K!iu=@^wdLK7+-o$!LvMzfPxzZodvFlFrs!PHb@&_!4kC0n-J@
zzu(Q+o57G4MP<mtDa~7)5*HCELXgH#MpIG0NBn@EnE&A?G^a2$HR*3@EvvjcbZ;e5
z+E3^+J{tjoSFLAfw}u;Mx~K82Yl_aDeh#C@e}6je5-V9Be6~r)8fDBPdSpF=f3S{-
zedx0)O5NFPA~bW&nKZyO!YpxiE24=Jy@bx^>4*WyH6Ol?FP8g+xTP4fYXC9h#TJ91
zrziXb1tztM%KwON|GJ`c$V>*1O#s+M`;T}P#ZtC!;-fXBvvJkm8ZrPRuXP*gw-mpZ
zH3wFxzweBVcGY_>6iD4o)%t*mV(XGPxv;5cCL{a3ZaJ{-Xf??`9jT`%|5`Nt1t|aJ
zMY#CjEIS$2gSIF|+z+}Mw4yEG&sVvV#bM|J0m4TYu{H-6_o6;4?&^~A?zk4s<8T(s
z3p)4$Y(#?&X8Z&rN9R(w7|Wgez`DkSI7WluJ{Sq7qQn^oL4knHPlRqjD3ZVefD0%c
zfS@tMSF~2N>5bga%|_S4=zGN`vLpO&>q6fSRC+b1$(!=IIoJ=7E8Njkl~If8OMRZW
zbz`m_#vn%_M_~_wu{vN6vMQDS`#<q}ftoMJg>_W9>k1d-4OGNM4U{N#?C|k<OEZLu
z_ZaZ#kd__}!-|`MU?7^n9Sdp7Oz^Ukl8YG(X3~WJZ?kkD{B1^EQ##$j$+@EEQF2QO
zdF21!FkNzoP_A+8j}S;h`uo*v{~P$<;S29{)r<r!p<Kg*$NaSW(^4L8S!Za}Ebi$n
zEPZLJF`b#1Od<oD?z4TNi-4oRvm_xD4bEtrF*gI?k*pfg1OG*PC03a{VLV)4+b}5R
zY7cPL2CvoOE6A8*7@WW=>}SQYK0-2B$`}$|_ece)aX>^hUh8PNESJ~!Ak<P1$eiF%
zP6SX_CblN#G|pdr{C$rlFJX4+)S^Y5c@r{{gL(x_Bp$@+r)jTb2Zr}@3oQz-85N~I
z2AJ^gEwuMMvS5OKj)DL*XtQOmqNIwuhG6|c<wT*J6o{<<^i_|K%V+h{i9TXznb=j%
zZrK@50F<b{;u`5kKVSIW*cHIcXAG8jejY2qAOTI+_xO58O4&I?x3NG<mn*L>3$JBA
zHwAuql%?V5EYmVe%&%$DYO(w*7*NsXME%^?zvz_hn|}Dk&~;9OGp3y8&I{6M(NW8x
z3SLMO<n=<kJ_dBKQbkAnuiQq03^64K9jf|hmHFKBfGTvs87RNy4+PbZA*;8cZ|@Q1
z!AY!zn|(pIBT(5@dp39i$1iriybMv{x3maJs|<Kx`?F-Az)u-T+AG?kfA+Rc07ZJx
z80WHMk(Qsz7b`F&p7I~5*g6ur^5y?Z4f#O5)206;ifQz+Rjz^Xk3gZrCv%{TWpQ<0
zzvs6}Z5M65F2cYM7lW`lZi^$cCzC{t8>y*1wOT8*MYN0BQe9%f3$xSO2DH!d>ggK=
z%%yB3YJMi``4ve&HY}~?xS%2FHlI{dG?Q$;&M;rx5ZTCaD`ityO7Ym#UWc*K9KAaT
zc!)Jeux1Fu(#cAO-W4|Snpt{2NgJ*R*J@g^5xHs4$66RkuusN^KRk+goXHTq|H7&o
zRY-9N?IyQvC%u|tzK)y+Xa`zFy-ed<StB%CGMxl_P!MU&e#0BCH;kD@msjNet1HPe
zD02t1W;I@=D&a8yG)Gdr2pN>Wvrg}UVra}z<xG<KS8*)K2&F^65rBV-oBuzm&=tQg
z%!--9KB(sRw~zn*whM+CR<<Q0N*a>?e>6{f2GY?^{Jv)ylN0Ix)pDc$dAeO;0eag1
zy7>E7E*++Rqd;4|xl`NS7!2(7-Ap`tMZlK4fZTDI^>AxK()^g1{nkbKWsFz%0{x~N
zpPhmE*n5K#D%qHg$1bD`Np;u;rJVx}#QM)1^}Z%Yau0u}PwSMcC>D42Y<$o^ki8>3
z1gir}-4snkZ^vRMj->MXyF}GM;-;jjFKB=7oe@*Sps>r1VpB2^%GWup;qU+^j>aKI
z>zn6?t99nN9vI(1q=9@^8peNTlv~83JgwX(oG_Ci;L|`?e!AY8vb#T?gJX#IDhml?
zNiA6xMCo^jYhx0Q*lo0V<;kTmM%b$#449jeQkpGO-xiIH4?zvHI*&I^^-bQBR+N>|
zGMJ{vZQ5aBIkQ+yWM1}Q|3F=i&73Rg9imI+u+j8<0H*Yol~>}!p%A7<O0ZCd{Ihs+
znJ^sbG-bMmZIGZZ`<l}r(RQ+)J><PEM@Dbn+~-{|y^zQ;p}BkxUc<6^#`zDDXHtFN
zi+=l06IpzVNnau^8dmKQQ}mr>n(j7ydL!s64>0~<7KwTxs8j_a$@eQ|a5Bi}2nx_Q
zt~uvfOlG5n<V7kqscQ}}*eR!ro;xd~3j;6j_9&2tW=nY0DMLm%;UU59+VgP-e>T_C
zHJ<C!b-q7!GqQ{+Y!(wAA=rp%)AQwKFq7{#q8a6$nG!;LeTylbqFOU%gFT9Lr|)?;
z{Pv6-6Y_eC8=}cTB*M$%EutRk3hyz5&CGb+ZSh8O&kcc9BxhGad_r3v(6C}{3;|t?
zOS0TQ20YH@^fY$dRMc$9UQV}|eO5`~uA+DT8rN=ui8o?7l1Q`tr*`5a1OoA0@&aY`
zX8W9iKOVJizSyU-m`EP1)bG*s{Y+SlRhGoOfM7A@N|nqgnT7p%k(@ib?1@wXkXxke
z!DeRwE{ApE6|vbzWkt`rZ;Jv}PAxkKX<gmrk2}0rCC_{1;v^RcE2!|XQ5B6Fyta+&
z?s<@a;<i@jqlPCa%cBP**l5LlkP8TbM2p+UkWA%S3#+6XsD(H3>&T7F+#5;}Bl(b8
zV}xG0AyI2a;}a;GumnY3nm>&j-rFaQo3{;nPXu^SQzo7F{Y*VP7CF0jxEb#dF@$T#
z+xOzYRR0R+R|Lo0WGNLm>>I(`C6n#RfY;hEYJsniz>~-B*?BK2>eE?gr&2bX`Gh0j
z<G|YE5r71;l5{!G3;He!T#P^j)1t_`5DhN9`5$n|&M+ALTwa%Z=Y1GT!QmKGD|=7P
z%$6A<+v^@1$dE2`7JVR*y(TFq2<7DMFjf%)@#{~M8A%y2svGFJyXULPFv!qH1%&xd
zn@qHgL$II?XK)NXyOF05FernoO$I|Dvl9GMJ%F!Bk{!s<u=K^Yc|JK$ZBWr(+y8o6
zY8wJtp?b>a`TRiUbR<Jx!JvO4{5tJ2!Bd1l_|T>H&sV}6e0K>>5kxs5TgsDyZ0hoS
zf6)PXWo?{Qv_;i<{xJ&Q@zySEWgL!|?_Qh~^dKLzq+8^VYU+owNk{b#vrZ~q55#&m
z-!YcKV86Td#c+Y0pJY9}M}II*+pZ=YAHgL)LIp>Xk+|C}){yP2tw{Vt?0>L*4w2L5
z4uS1H3||~L*dh1}`t&$tY`SX?dXkC^y6~31puQl^$snq1;_N8mr)qE(JzGpxn7OIh
z=Id=^Ex;E@mxd=rT;h5~Z!YvW9mC2t#=06hP_KD3*-$F*=C)`6x`61+SeM7`vc*$-
zMWR66@WNGEbuuzB|I#iT67JTv0@r$?0R)5ef9YrPpYGLjXrI6OftZ`^yUsanUaZ~T
zLGpG#n2plD2ZL%h?x<h526yBTOXPh1xqj!Y<%kggTKCu-_r5vSpc}_*FG;(b@4c?I
zb^3aIuT-<_V!bD5pT+P~A3GF<NH^M?pVXvb>!NA%?e)&z0Wr(=YMcu|!M9f{kqTln
z`Ml~p%3xC@^nBi%ooqU~JY^j)5S5b(L6HZ+Y?D=C=2Koqg7;fL%v!)wdY<Mu`i?=P
zgAh{%^0M7N+?K#GNNm4dvGKS2Ws8am`JU}km2n!w(2L-L%Nqn>BlL)mVf{5L@z0@z
z==gOlIDEO4Byu?0`!>louEIi1)}Jy4>nxPOR(pe&vwttUCyHxhsogP?h<#=4>2|~C
z>^<9u^`jmh$%&QoEyOPO>scisq6wk5=ktSt7&sKGP5-Bp?Ydb-L<qR;{SOfTou;4J
z_uldD)9W^Bz=uCQcS|NQUuCD;BRIX_)UwSSzIfJixV+pfwrUL~x_Dmn;}8uN$|OAh
znF@dmSC}7op;$w^$k|L|X|&#XF+i}L<*|vNR;-AyI}qh^MyVH`STJt>DHzOF4Br;v
z={FXLVv+5Y?9jQ3_U(zeyJix~6iWH0mXzOH5tHBW?71zBmVukbJy<CKpL5++ErrLF
zDCQ1w!t{m`*dORc4$VO1i7VhMRCBN1ORri0t|G+9PX4kjWh9QRl8D}PdHyam^OKB0
z<Y=c0qV{LrKTq}po_9$qS8YYM4EtKoIv{ltO9l^+g|=_mlfR<(a9;1JgsX9daLl!2
zuK8Y#S0V~M>?NFEP?0=Ef8a%q)v9)@=U4g1`G%O++=T^~HQ`9%SA@Fu{@afj<Y3zp
zr=I~^yf80r-1;sPaQy>1gn<ZXVrXASQ%)MWHhpK$SZ0`ql#}<pE}D8#1jZ(>&kITP
zW`uJD{q$K_d02x6x-^m8s@q|zG<wB2aa(K=3_Z6)h^6rFA8$`aiyWXJ8BOzznWewN
zT)D*+Ta_1ZJLI2jF{-2bZn;p|zLE+(9*}hu4K?t#4bARh73P>lz{CgKaNM;dAAi{#
zqD3Ud=I1pUi2G3a@U%SXj~&f_ITUz&rA{}<quu9P&DMz_n7(xpN!QTI@*(a7Rp@yN
zS;;g8zBg6{NeM}Un0&WMGQM|#%%0yDy%%CwU4*d3a-0j{$^JpJP;nExAo(4~V;+lB
z<yuT<YS`Td<&)H>jhp^JJIm;&sk{IAo8<5xktHa*H8gelqj)3PDCsCA66bu*I&c<r
zJcx3Jxa$;FzCW0Exm9{Ce#S^|`z-G+@B7Zej(I`(r$wey=<Y7kXN;^|ht3XT2p)Z_
zN1P7T1!Y;Yulq4!7+sl|KMl9U)7*0hzZZ)F={K_eAaL!xf-~ac_*@E4^sw8q?<l+k
zv*US>N{EI4VM}((pPRJ#SBcF;$7SFzqBO_l9|Re;H8NgEq(;zQbr-5+Mnj)}QJ7{m
zB9Q9E`!I}fKaF~B``RMWe_N9toB2kuKRVOVV8Yh%P8jtwflWnyve2LJ-2o7!wM8YM
z4^1lBgKLD<tVOaWUSl-!8vipd$3l=?YgXy&KNj+~J4iP)pPyXb+;e_O(tI@%Uj1Ez
z{aN!}wqq|cSJO^!>JAnsG?LUilL&Z)cSu|)#xU-Rg94uNv4od{y_aKblc8_VAfZ=R
zQm>1;%)6_r9stv8y%4N0j~!cqauKye`ROn`bMp>DpY)zFHl-FH4CazGC18Z6aO`rF
z$;exz$shrqml;Lna&NcP!4jVN`|`?u9v*)sZ`Wx!*dh%SxK~jyj6kZiVd!%Llq5E^
zZODovYDk1KmFZ$Z{<`kAaMO=%5)wA>4oQ6AJ!<zm`kr@(TOv3Eo5^~%c=w0X5XXg}
zVclKNXy|_QM8M)vC!H|Xwn}=*wsw4^aOmEoT888sbH0!^slLlNhuM!fi66wT3I6d&
zfssT}_Z|8oEr0K{mLe!~te7gUm!!^;u@$D2zsms~D^XP0m!>}0WatG^4Cb1X^0wuG
zYH#l6qp+}E6uvPk8O_;u++GSOjw3WBO(ORYl)MGX8Z{!gAo?+sARpJ6AI<x;8PpQw
zF+RVT*ciz(DzTpV5MQEdQR~WN7Kt`;OVWi$(va)5^NCb}&eaRk3VtM`HsRf!{L<~Y
zd{r2F4}|yQaCHVZA(QPpjwg0^xCo6{H)2VSSvE{O+i)YLYj&^@#Q%7aFBcF7`o{jb
zNMzrAhqs&B4@@yS1<dj6#fs@S;0h7ueT51|>;3}&L&PMGw`t(sbAQ=FKbi$SuSjh0
zde6@WjTihS`u)2D++p}T?<n+_wo~t;&|i#gKP`nMg@>x44FSE=uoHC97hisqfPrzh
zeb;{@168ox%1>Q68bc9D2tVzZHCu5VAz4uQ1lE~=9+Ms(p-4tzUgPpemoVJ$Hs1^e
zZvLora+ZT7Z{t-wlV4Z<|5(Z1&et0zE@qaFb85kxIkndjB14VdWumsIwt&d6ul^6C
zM#-CEp`YQ;1^FhveES3CNp$gyrb=?pLqB0Uc1yUrJOyjVuiSOZ6(|*ZyS)she7pyG
ziIYEtCv*(leSrArhjnV3W+?{yH==U<Xx!hgYvo-6!|`=?idI=j0Yj`^-{E5aT((eP
zV^d{1ejlAsks>+)X9|fa$~-}&{w%cLA>e6MqD|Ixp-Ft-3#}HL+Sia-<Y?<%OHju^
z2GW$pvy9X^EujyAcomm$Fxw>eEOHOP|E9d-oLq>>4W1c$I^#CD?uch+N`k&{Q7=Hi
z{@=I^ISM@sitE-5w@pQ}u69AdNw^XQTB2iRtPCm)T1XK>Y!X{2j^3BO?oWI8O^~D8
z?;AO40(Ib}$x-sKrc?G;p+A`qdL1#_zYq1ZKd?w&Y&m@*B#UjygVNuFM;(CV&NRt4
z+BsgH!ynj^n=OBlvPytcpmwWV9>@^1Ybmi>g~u-qyW3QO%jK_AHqxEvlS^JE@nI0w
z&fC1qvq_1kA4KlA38p8#8;adSOWO&eCf489r)Rc5=Dw>l`S8!KxTCg3v-R!D)%5SY
zZwowsRJa!75gw3AOk_+Ug&$D5XTLsy#2KYioGUy(O%oj;KgJc%u<q@?ifiT9PEq72
zJdE9BxuRMfaLsgu2)-vFZ5P-5{*Srp3rgPWx{nb=hWO46yUGco6&0W+Rmv}Reqb5n
z8LUB$(7Zr9jKGp;$ZcVS8IoKjwEH_e###R;8v!-s!w_|Xs5()fN#gdpx*%Q|3*)6m
znn($Q#db8fR~z%UK;o`%%1je{XIs=BPNg=_FTrg&<EQO+i15Q{dm$zt37g+}uIN;K
zH3lc~;>HEG#SUTamdD$=9jjkGNN=mAB8fZY--O`0Roln;|4^-*KN}JA%>l{{n#NL)
zDki+fXZCv!vz6rhod-o%P(<h#H#VC5LgvVKlr&yTKNrQN@K;-K-Ee&}0o(cuBJf1&
zw;d|>K?<?_<6$$fDVQ{$-2&Mv#YQwfY9<u!B;`D%5??wowInJ2t_kju>Ub8g`@WBx
za)^OCl#uJ^M4HTI3b%y|i&}LqPKRnA7sif_<GFC7E<{W<j0wD~kw_!gb1b$Kr6-tS
zaFW}3P40+8(ZKhvqekYRv5=AcR#|-X?}G0O_g8?DE4jCo2rVlJf7={2e`X(5ww2yU
zEU|OWwLEIJYamz2`ZpF>MGe1G0g@m#*J1aWHPL3Ek|wldBJ2{Dm;B}fKAD^NJ9WsJ
z!`qmhF#@fSDzVC>(4RI!fl{Z5GDmS%2xUw4Z@B0`qigg3F?E(vQMTdQ29X|0q#LBW
zYZyQjltu)kyQC3hXpnA@?vie#rCUH4y1RSmhW+sFZ?E<JWic}_YvQ`E^Ei)(+yYN3
z<|DU4xQ)W=S1k&g61t}uy^^YpDZowscavCyf?cyS_07t{AcyAv+jTteJ+dsH7b@e|
z39|q9%l~^5wzKE`2+wj)k?->np1sr8>7eHQOiJ|gezJxG`;AnU^My<f!}DE~*=L=n
zebUYr7)}1~KZLz`{vL3ZP*t+*6;Ymc*m2!2`gzZiTYBT(Lloe=Sr(TM4Op41?aXP4
z<IF6$&7RbH-=8Z^UzjG2Skk}8HNv|2&s5ugSoVggz>B35FL7POyMo7|dF?ez*{2(!
z*4E|~wjsN4<~6$vlz0s$9fvQUrElW%-A7B@an5Q!n}6~y#!)j5SDo%GQNCVx-&7+m
z=y7He!(MOh{#Ma&Ut6HT$b#b#FR@ARQ)x4FEsnCF$3X|v2;5yH4}oNg50~saQr-^Q
zuC)o_G>1#xye4AYu2^?J-Cr`56ny*6?Oj;T-~7@Wt5YUL*EPq@eGemwO{R4r%mFlg
z$oV}B5q%T6mJ$8uP>q{Hi!vVP&9FiHvgVuXYshe}RY1IbH03s4s}M(P<O!3WVOl~P
z;gT$k5X)+agKH~O?!d?1Q&+Xj)A(a{+PAqDIP2HfP3rjzST}3pKhI3#Gg!5tWQh?K
z>qDVYQo4ONP6{bw1V8ilg(hkTrU-hQ-fg0-i^pp;9qnVRH+SaUd+DdsD27$UCsvAB
zCFct%On(hJb!*%s>xp;L;TYplk8hRHdaLH<Cu1p2zoa(mT&66TlS9om@aeUN@<i_5
zfHt$j35Mh^tAL22ik&is_t4iG=W$k)L8n{0${vuR?e*3|%BT@jLXP)+S0}Y&1S|@M
zx+ep<T$zb?z=OrlDQmdKt7Uj3DcS9K%405XAI?;Lt|rfviL017ihoa|xwij<ws!2y
z@#jcpAHgz_E~b83LSNBc4mecx!;<WD1RzQ1UmsfTbG6bfaVTyO`JCZVy%sOlTH%yF
zqMd*&hwwzplk?)&^f!tE8BME1*8b19Y8*$F&ZbP;Y`UKZQnq!=za;nOoI0eH6KtJy
zUq$@Oy~pSv(8qL9(Sg`OqK?iCJvTp_t1#)vmN*@ss2JVw?7i+`9va`ga>!vR!(RV&
zEs|I^WuwySq4U^E_+vpKO|UicH#3B)*LBTmldgP6%K>A(+F4holykkzKlhUd-lLG6
zhk{;PMP&H++CFi?8bPmRle*{{_@-e_WY|%CK3we$+_GhN+*~v5KsMWU3-_Em9?uQ$
z%j2*3(OP8&`#8HIy(vj=<K3_Lhc?!^3BLE|gC2Lk*3U_Pzug{IBM__q%EHRkN;Di?
z%<q<>qW)O}LmL%UM|vyK<kw*H&BZ|fSWXHu&QqRhHkqr<A?|)}q%^O(t9I5O{!=y2
zBewyFP1w%?%VM6{eoV`a3rL|<5c`km%9>ipsQ?>WL=d(R$_mzcSCB#ok?9uS<qMrl
zrOd5TwKSHp$SF{CA9%;nU|J2-eUpFQtC+MC{xt@L`0NH^IbE*X1?bfVLovPLJ5GVM
z+H4zE3zxRV&DM-dwp_aU@NYiO@HpGWKf;IKwuZRZ5hS%hm6z(8?tkX4s_=$i>1(OD
z6Xjakv{-BxD;lm9sFqfQ-T6s&)8-GDGy&j?;n70l<F+jWshuUTcVoS<`qnS2ZN5`2
z-4^nGdpNzb^rI^4z=slx>ir~^ac*5Yir=vKC!^hRdYI5TEhhg~{;WXYD<I05dP;Fg
zhOe%_xJ!U)D)lh2bDk_(NA^nW_^Vj9>(qbns!lPSthFNQ6Sq5Rp1bAjo!6@P)|{Pw
zw)GD)y_lF&x08H)*F(Fd>J0o1=}h>xZNUCt8b2#rsXzmtxdEyQm4_|cV}2!m$^sL^
z5RC-R#(Mu-G7;y!FB}@1-SgcIr=gyUFNRk&@3nJ(4WQinqf-UAAGOkvLst@|o==yR
zBF+aJfke9i@r14fJ~1H{b1TJM0cd$5fjJ8)<7!Wo%0l`uCCyx}_MN+<JG(EgoAI64
zqSnWOx~i>UzmqTog;WST_~HDwVRvv0Lt1+0<-85Pz^n=Wah5b*0*@do>dyAxOa)BO
zJEw{rm3Is(FV}mca0Hix_)6QBnt-F)<*Ap64-FBH7~jw)6uz?9#imNA5EE}^^X2W7
zHMxW|gqLKu%0p0l=DTgYF`=u}5v+(#CK7|fM&<XRfL~{Rs_mMGgrcR4)e9%OUYhm2
zDj6#5O!+k8g#AU)gSvSR!wCK<u3QJNlH5lA6Q!CDsD?Wrsz+Jk$AJ<vY7R6qyXNe_
z?E=|W_2srNi=O^Q#hMM6t9H^wK}hSkg<X#yVjzOgo1x*WFM82sF3X;r;PZA~TeLDu
z&);W?qJa?4yP6P4=eJPay;<{2OuN>bgcGCeGc#bX>4+5R>IIw94sf2*?K|#aJgF~N
zZuYo8VeE`mf>2-!t;iYXVhMu2ZU5t^Yt|+fH}q(D^1ccXyPOd#ZIpgun8$M-#Vz3O
z+@2{%wP7PaLQcpD@k6>XA4;;B&S#|rdRx}*DGyzH4;n0abudoZeLtKf95T}J;$jh^
ziJt)u>%Bq1&UA)x1`!D*sXkvuvNezB0yvTfWr(@?t7&MLX$D{K<f7Y37z>RpWr(>8
zU@rNaoCtAwbru-*5F}iEEa8yvKi{utBUA^rEvfxerSZ-aOxg%e#i!`y>TjDg8HBi2
zbCsmpS_d1mXHv+{Ph_ZWHvDNSr?jjB^jh5N%^cGOK%Kxo(;ool0+!5}u)nzb9JkiE
zb!yZ23K{f<lN_Ru_g-SK0&ux(c-qynJ7;Obm~35tlBFr3KmT-T*)-t)xmpdP3QXoT
zZ#px%nAE6$GxW0#DV9;`yRh+gq4(1x@TY1xp-#E?`uQRejXVM`U?&5wW$1c@joz`E
z*#Ph%VZAEAQ)<KW&vxRc&+O4j`t;6w!oamR^ZX>dN4c=okb)rd|7Q9w(EFEpH;Ai6
zEpC&0Z>YBRIYw1kGL^JRue3C~odi>`8|*v?%Nsn3S{&rvTlGX96x+go8xymh>n;(p
z^(@hzen45H482o&2<uy_C(<&p?x`)<r|&_$P3U>I3~BlITSr8s`q!SVyx7l<2Kk6^
zj`S0P@t<wweC7QbIe#uj)9j@78#qsj3ZF1tXZ?kX(CV*L_{*m{f(Aan9=FTqC@l$O
zs4ehGTw(rsD5U2s;PRn`_mFrQe8xgp+t_+LBix}}dQrBWPhDJ*^T{pb&M18EZ_pAq
z-rKzTlz5ET7H&N!=I{@;Gp4nC>b7=WFt)qK9F;$Dq}oMM1Qn1CJqPY0;t&ZHtu#*E
zdT#7@IkPEu>Zi;{Q~CT~{dw3nVY|FysV<rmu*F*oy#cloWzP_$_YeC0gI~qe{K6@j
zrYtw`^g`qFdzg-C8@^W7<+IjG@=d}6lKPX!XD&Z)6M3zweE?4bX{|_#sC6WsaYc6`
zPXGV80Q!o!yPTkHG{NhRST@8j0x$|O#a$7g?9z!w3Bz^^!>?>EU^s`upNz@h^jyjP
zZsDd7{+Za%eu3ob6>pSyP;upl_v!R8egg-C7@s5TdwRk6Zha=LCPAx5a+B6%+@pnT
zvMe7TW4Wv|pN5BL4PhQp4}TzKgqmI$pk2GAhz^fCN;$57)e^tPI?2`)woy|Ey7uku
zw=H^i_8@{ai4_nz#YM!YzfT%fH0o)qR`_)KpijiHdC~cuj)ap%O7D@BMI*w_c`#Ag
zeG+Bv?@QgU^~;kf6=bq1ly*Ahaq68EecKg(vmrwTlP<?Ihkf&E`db*g4vUv=X+Kv_
zXU)eC5yO(d?=*_!yfu8!sYvIa%kCdxW3KX;(@+Pyq?a_dTE{v^;5Gk;o;edc(t6AK
zK5tn7IC{mgCgP1>0)#wP=IO?7-Q3Tqe}=bur(s8DmzrD991DxtxC&FD${LewQ?2p3
z$~w~}Uhj*YQFbTWPAQi$q;qx4{aK>~?Q)qN8*d4z*YC8=G6buA#sA+!qo}tHnOi9|
z8|DSoTkO>&U;1mAyRZEW3d^dzi9nD^@k$x;z1_%fJ<nHXBS|*n>BJuyWY?ghQ|Qqw
z(vhpp{^aR!KUON5Pp6wG1S7r6<sX}PbvmX#ubGoNP5Te)ECt@{GlO0F_Qa4Rf7+$S
zKbStvCI*T3z;u4`kS1U(QE+W_j8Hq)!WJD{K2w<W{CCg0pD_t5ww=$DKTL<5$tIVR
zvaUE#-f!lo7jZVCbM1M@5K44(HE>#|M736K7~-T%`0Pfq<+I=T=FOlzPW?!}Wx3tR
zSp${eSM2?-B(Ji^_NVu4aD%kuly)bGIBuJ@TKW@1KpqTX;?%zrT~DjW6A-R3k1o9$
z{?J3U{qZ4*PXqI?^S9NnLa!%n*I1m|<O1!+Ye0<AJqcs%SlJD4ZU{)1abL>OMD^O~
zs>K#GX3<=*E9$c6J*A`e2Gv==5g@W7Wx=`e7~E@C-oFrv_n(&Umi-vkEy!?88<5IP
z``BvfX~AEa+Vr648o$}(=Xo~`@mFU2&`!$BB-bE%Z5~T5+*G!ztI8<GT*ZSrp)nI!
z``Y)UmHR=XF)(h7K{%SsUH(%)QWL_1-vS)H_SVPa{$tSRA-hx5$H0}+;9NX(Zrvtz
z2SH+8U}P@2&i9WPos8(f`L_~S0gtev-umY0IYm5YbU%S*JE=>xh*gA|=J2%N3R%GV
zII=#lEcjAJZqpLY?sI)_?-~pz3UM#O^u04vM#Z1&G=qm%Qd7Pz+X66DA|mTRt2wMf
ztbaaZDifAWIUuh4rBpCOcoNSN84jk^Z)EMf^N(pPcW;&xSSzS*o%T2J_r~~0!$cZh
zjT`K(aV1oHlq4&T)qCIAn&feo@u>wDq0(&HTu<amsubxmdz}bZHdI$#zkUNMOF)XD
zHPPu^SGg^qF>dMLF&jv%NPwq*>22GyKz|IjwLsd-QE^R`m65B<EmRu7_oVR57YM7n
zonuN{L%h$i9hlTe;3<~b40~(;2}l3^s(XjWXo)a&{xki3nHL}5_4V?i$|E%;w>*Ev
z0?n=+v*l!g=`N4PxwtIO8_4)Nw^HqnGA-3S!llj|xWAB6I-Gv`6M4toYK#4YMK-0C
ziQ9Yi2YknW`fYv2qSSJEOXrJy&~Hq+DI@0(K~5!muk@0HXwTCY*scG}_1c1aDUesW
zC=91rB7M7Ce6BtEx{-8m)|5^8xX@MdC;F&11EgG;N2u}HCqC-Eq*hYZA)4MGcrf*?
za(vDnJ*&5K;pxX7jLkrqZS{EtZ=UWvMT;SE=>B-K{eZ8Q32cX3Ff33q?faaFEiWyz
zh0DpW4`7^LCt+}Jpcwf$n+;ZAL8Y8~WBRt`zUS(_vu_miv={75JHI*-t8`kn5L3>V
zl(xzoni9|f1c|s)x-Pm=ej2|zL~juu(Hj!1nH62p&n$tx)_VAHw%qV%fq=3wq`j^X
zd~x(B@M)nZ>g{h>g??M**|6x{FFBFZ)rYUQaq$8?Z`+D1;$==2=#V-U^z6e)`C0BC
zui9|7Gu+F?99ncfDuz?6Fq2l04zl1t_7FY`P8TOyjs8${1M;RWxBW7i8c)Gn^t;Y3
za9jRC(|$P-kl@Ny2y)P+s6`P~Qtg`Vyu*p%jP#R^R{=X9m^NHG7+w`e-Rp#DIEZ$0
z_QDq$zjd*cl)m~tYf5w%p8d~way?FILG0_YU<Q}r+nw<Or5PZDe27h(K*x%s5VFtm
z9#C}tNr-d;3)F+&pY$PR+O2ED=k3~B_E9$@c0X$q6g;YeO}mliI;d<?MV!B00}KE@
zHjoKcj!KicQvHzH{41sBdz&O=A2uZvRjv<&I`9JV2WFl7{jin>C`M!w$E){()1C7j
zOT;Rfj0!fz{z~UP52W=9&LIL88mR>esf1pqv6=pvkLLwT`j`)Qz43<;NrE*<I${U-
zEu78QZ=w5T^_`<KRJ!AJUo(aU8(l}QyRWxYy*<ocxpvx{Blc0917ejW2&4m3IdLxk
zl1Z`d1G70F2j=<HJ+j&SwWyBOT$v**3aitj7HCN`H~lrN!N$J0mEnHv{{4s$<zkr$
zq-DBZdGVDjpiHB-O{ivHlGTP>K;JUG62Zk9+aOvbE^_Nnt`W8+g1leHFT6daUE#Q}
zxR^B>-+dterZWilMI}cogsY;S<0_E{F19^A9P=o^KD|UUmlvNNkV8FTxA5t>2WSV8
zM_O=bZZkrP@d6B0f-Vt_RwCm$I4-|#7#V*jeDW#{;VN$2Q-$P2({xfMPJ?v%5G$Gt
zMI8Shz%~$-|2Yy#B)LucE1|qsF!qv3GZ7@0PtUr>_z<I{s*krk+Zv+SR+P3UYsk7P
zap58FZA?z?1nXD@>VhC(25wd2E68vwCZqmkY;bd32g$Q*l&(WdUh%s6v)rh-MyZ)A
z&qno=#N=eos)Bv+o$flnq7-3=0$R6-#QBHe&qT|oEx_B+^Ynhj52q6ml^mBrF>S{*
znOaHou+MM@mK_;IHPFN7r_|7(PD*1_5HaC7$X@Rcq-67!e&s?Hy|^`ga#t%WDfiqJ
z{W9e3CQqB3-ogNevWO)R-f%V|zRc({;C1?!arK$rxCS!mZIlP#&!)r{J6A3UIECK=
zu@LCE^^T){v+i2q0*6mU+!;i|^JW2<lrJfkYg@1;9sn!`syO$0{Nsaz_!E%x+Ph8U
zC!yA;dHk{gyyZz`dDL4OJn$Hg2}w;KTrVbt2PMi?)!+^fU;_82x?e%f9y#@F25<VO
zDnlpD_STi4+^+&g@ZO1cpUHTw5<oh^b`up@K7wqmg{T>bol=D&9e&v*;FaKceImPd
zDG~c~6`3HwYydla5miYw$!&Y^g$jSit2qkc?2)Jyj+{t#T4k_8wux|cA0jh>$l0ht
z7L4yTN1c-Qv|dxJNdH*0*m)d3i-XNV=;ELqPZ;FTcr7xlTDAl(&XG|;uJHuBKc;aF
zHV0yU!P{;pGrBb&zHc<V!Pa#wqL-t<0mZU{Ow__Rhh_FGqx~riiLEGn_fyYFc+DoX
zV)}xM@B_U7?x8%q0~3Of_Z>LjHFcUz_6(5q@+7J30KFJ=Boq)F`wr+p>oO6;fR}de
zpM^<u7(*6BgqY@~xa+k+6G%v%z~eJHHMS{UA`xXzm8^{B3;EabZ)%b!5gM+2M6>R@
zrI2cVr}z{4;4aaYT04((T>n_bs0`i80GFoRKt++_Z<T#u1EI;_HRf1EAT#p1;i32y
zLMXGK=mjVY>f5Qf%!ZOG2Z~GlpJ@uOr~~fVXV%CoihPjQH;tMOPN7GO({C{(1E)Fb
z$7@dbDKQ#O&Oe6r{x%R2Ip}J-YrgA<Fp10F$l18@O7NE#koSn{_JfwNK<${E&9FXl
z9^a$f%otP#GN%PqB{2d;@du}??>1FEgso+uSEoQyfZUJjBYy})d|v->jFUf7=0<|Y
ze1GNv(SDE$olK+cTbvv#m}>uPM`__+en%9JcqBo}e1LTr-1U!Kj}+w~cb-r&y}exc
zrZipk=b%aM%SdxrJJ4iZNP0I?TG@#~$=K34V=#o<wpU!@rb`_BbUWSVVe9j~7wtSN
z@rF+E4Cx#{X!r*u)Yl6M76t$LJxc}=?sb;B40;Z_mhJu=)~!bS;h+O-m)&)*U@KlZ
zfH-XTJO@tq&v2Noc!uZY>?**3ow*rN9Dm5kgvu`g49tJXg5bkpK9Bc|uLO3|xDyCn
zgq!R3>iC#a{+vrY9ViZtwAg-6vS6h48rA>Gc*6E>ht&sHkD9d~UzB{u@q&)B5IEv4
zTN>$^Vjlq-h{Uj68I+Sk+os+8NFoR?jwI`?91n3~Hao2Cmb4^D^RkI)uOQulQpQX?
zMKl`6iQ!Pj?kABO;z?lB3SvV{ha5*s_Z@+&AA<n^_i)J7goyiy0NEnWvD{HI>navB
z8*?_;HMf!66%n<m0m#KOuEO;1bLMfiZ8cAmx|HDShP_Pw(sKxqTcQfSFi<bQk8Mz9
z4pHl%&zoP0a|n93poL8c?;oGW<W^l^gc!Kb=7_-T#qC2v7?q|N0iVf7W50roynYDY
zo+z?f4XN(gE4!@ESeHMkt&27lP>}@f3}RnK>7VveXLno+Jtv!gM-jkY&t#8Bdnc~?
z8fd4iZf+nRxkMD@A7CIM&por^UIAXzmxqfA0<+y3n#;FS_07L2-F9e*Y(*Y{JwRRj
zqhxE-OYwP0E_~B4M-)_61^=z3yCW<aN{3%A9M1j3s$^U|-q&4JO{Z%qkw%!oie1!6
zR-AP&nZmd>5W$^2p#cJq2j=3K$IWMve+KJk&B&;dtl6_RT5l&S+#Ug5i2r_1qwRE(
zyVD-vd4j??Ic#vUpeH(6P!&RJ7iuPJm372tASO*uJq$$JY~&Acc3PT$v!E74p;!UF
zV{<@=-OSeD(6N07Uaq^eAMx+`9=HO4ZCKtw2G<#{p|=|vf&9`l5X?=Y3&h*`pIa@e
z9|Bor!cpR0zyW$<T%+xLnl1|b>JdmY@6=z(ZvVjKfP-Tp=^L`wY2St&^5|wyy3c=4
z2vh3@+2-2qdi$Vbrw1N&;=V|-Cix~$xzRUcC~pMfY6XTteX8kjV}|T7jwYsN0K0+s
zW_NMv2rSr338oOw_rGXQ=GpKoW7xp!Is!hnTo!vwoIBAOuiyHkgLLc16-67Ddgy{B
zyNw8Rk;Qh1NnCb<0lUuJpel~d3z*Fd!ax0-B4|>0=>bE)7t7JAFDez9`4b?Qk#@<7
zjREG4rMa`w?@lKG%ywi$OF<V9l5yf!{y3J{y5aHbf%qHSMn&V+9K65M&~R+yBjP$a
z(sOGa8+aRedsuUKtoi<ks`>Z_3>$jjpVnI!;x3=1@VPp93*w|cLwi8B4OcqRIvfsy
zqufS`UJ6ZT?|FkTz~S=nAx>DB)QdTxV*f}3O#D{vV{S$x510(VeTnNpR`6_sl!!TD
zFBDdgp7FKY3}M_Zq^=a>k2{XH@Wi(Jyb%{-%^{qccrOX;Jf$5~5XBC1))O#1oQlkb
z7GQ75Lwj@(+y7v4G*gqi4^?rD5c`mayp;}^=9Lx)CKqqrUW-1ieW@+)4FZwmk;0%J
zY)4cjF2a~Q1;N>g8_9XD1ppo+eSXikdxW@9G(`*Vnd&9*hE)ZHdmnwvJgY*FQWDvH
zlZdpX(%f^-D?}p7X4}79tFMu`PiEWD;mYD?KYSp(WH$tSD<XQz^$XFy<_f|g<zpgu
z=*FY$iKJi82q4tc4)=zSVH2_s{U)wEXP24UL3*s@9u`^$39`j-_cEO?eH#%o40f%2
zM$4*cLa>lWp6NN~x7v74)lj{5G1mdUvy{Z|BES-r?tE{y%Qg7x-(=|bqmA9w*_|pX
zvM4LR^!Mk%vu9gof^B!o0v=OAvxU}<mmQrUVfQU<E3wwr0{nlh?!V2Buj_HrRTuo=
z!GGH(Nb~-;sS@Pm*K%si#?_Rhmz`e95X0gSaYi!jko84MvV?nzvro`H8r8HJf|>Wj
zzJBA7^^bojIFxD0jJ?MS%;t4Q=T=_Uw8QeN*DYl~n{DS)F5OR)eS~b`ea_L6R}9U`
zHnC8W{q7;Kdop_Ua%%O!5Zam59yfA&k5eoHaIr3oH@v<l_jO+#-Q+{ATS#JNfr~U8
zG;{TATh{HJ^J$M>w_u^Q2_g;-?ZB<@tB2HKvz0P|H)8j^zW*!=u;B8hS>q^4+u0NX
zP##|O`z3$TKkLgb*B5tG9?`R!VMB2~%V9WPzd=vo6i*+`?0#Pn7PmEUk3<g^rr5Hs
z4}qtWDRkk5Z4ZZbBoBx)3A*18s`||ONx}ICSFKlKN_1`PDLkpA_e<e72lLC1b^1?$
zG-Jp*=gLak1KPZi(0@6GI_#r<&uiP+ZQVPhshCaT#DOZXdo3oywyd-h`8+#s5>k8{
z;wCwLkyMp9>z|x#xP2wSY;N|!^jzHMsG9v#TixNr5GZ6QTr@Fr(PdtYm+tR)w2XFe
z+y(h<4+y!Shw$Gl;LLg$YEH|TX6QKRr;7rf^8;&VGkn*ZrMe0p?GK3;1R{S4!%3hB
zyq|f_avC{ku{~QmF&=nC>o<365Iv)gBpw?DjJwBSH)d=?9MJcRW@xUYHkIgnxex=u
z6r(p4F4JZX%AU6wyKtXV{Ii1E?qOg)aX;70nXE98oKF9}#b!x0YTLX!7;m=Sci&_K
zF$;+cNrX3-F1D4wi~Dz(o>G`IBHo@cZyfIyr?!bZWG;0?F7;nKQ(vyPrC_^9{m9at
z2^=I5Y2jz_+gN@WX`>^YW%{q#Yp5P?J}+<FeF`7%0uS%6`z3OWS>T9#e4QOH94h?D
zlZkXxs{eI0GVT)qqKNPsFWyL|u?Kp#uBW($KKchC+=jTv6LEgTk4oxG@*84)>twdA
z%d2f+VpeGi-va0<7hxK#SwVBuL`X$yfuIy6;s#=}Su1KG8F)fU)H-|JvY)Y;+i(7C
z)NHGI-tMV>x$6n2Q11^bopzFq^`wSm$~$EQkGwXbjQ1*l+>-d<^#3-=6q<iAd;n%k
zOcst#Bjoj=5N|d*KnRagR7)Q?wGA{d!=zBk#oinLl0^<hgqj6<ChM&+l{Du>TqplF
zGtX2=&rnDfpi33;G`rm0D4K-}E)8b5o<tnXCNA}7RJEDwyYZ3<oBb$=Rr1c2R_f0H
zFgbN=N7DEIu%s(0QUvFqbTa<{NnpAfcDaSR7U0avtbl$wtgK!S|A6O%X%OE{cm{l&
zY_sBBZcpo3*(h~Yo2elacX^tIlMx+b-Dr}mBES4%xrS)4IhYAX&ae<a&0l3VV)Z59
z%n*dnWx=fna(ONSN+~xI>U?)gFw`LktSIX0rEVtz)d6|zh`iJfG#GWdU;fS`obf;j
z;SwtpP*doxPB^pj6<hVGk+Xlnk21z#p=t$$krN&miq1VkNvgKppUDy7QZrV4^}Q;q
zW!~D{Opms`42ZE>KSs>&N`&T4cP#4Meny@T`ZS_cNqr%cyyhQv^s%MBDP%g-1v+G@
z@l+4(odVs0Q}&NCU&V{{ub6di$+Id(X|y_sF7O`gVrz~);L2zs*qorOLlGOLwGb|;
zv5^ni<}lT8XNiVU4d_U*h(=>tOdxnI<fXWF-~ofZ{12XfGSmZPsF(FmEbHX8-FDVU
zK_#C^KfT(JG9D*1Q5*r+M)N?PpQfo<L&k1yv&NA@vFTW2G2TwZdQPb;I#+9kz6@ZU
z8nQ>kG}aAY{N^Bp4CUsqv72zlW*I2NX7%tk?et(cYXn}?ft1SRX@wt!uSYxv|FC-U
zGRtykX4KRxwBlFC{FjOn+p#sPBgCFjLIfRd$QtYrj-}giNpDQ{ps2a!>w0Fj^s^&@
zP0y(L-#Jnr(#GP(s(_QwEm;)z{pYsMp!I)#;YSEbIFZ$h)FxPN@W)Q1tukVmDNO2*
zF#_lO1i~NH0~4CC9roq~q+&6R14uS%hbsCG)s~a%o0F6^wLDO><Wh2CjLR*qE}DhB
zMY##KUljC3%-N{1^d0t_hxcSL8gqyv(PGVs2-SfyPgQ-C7b2sRU?_&yDc$}Cp3|Ya
z2qfP@27Eq-f<XDzy0C)aCw9e&nenpxy;BYqXM1X7c~Iie2?AvoK%`HcjiG4oT&MXq
zzZG|YBexre1;yuLK+jHYLph<b%v~oK)cHMhIhi4``NS08-l`QuE(NkA&JVR}+nsFj
zZ(6DL)4O;7kR}VI$5-f)GgQ$zB+nBCiDO9^DO;m4o$xj1;&Dj$D8GDxB~6@Vg-yHO
zTN~eq`Eo!;!gca}(Ap(r(Vq-4*0(T{p~C)CYfS`)Jb&nlFxf`hxS`M3>Wbv*1ghx*
zUM?=*9`c7Ebrdv-U?T>KysY17zha`q<6cSk4X~CS%wJk-Q}=_XqN)(7-;oZ%iF}r=
zy?N}ptC{@}*`?wn`@a)xyUg60yT8ML;nkc`UF4aB{f+k>r1GRUrV=)-e#O<nO)_TA
z#1Jmc;CSnUXq)kF1duckzQD)mMb=LFsWHi(#;nss9?fG$6Obd#h!Czl#`QAkGvaO1
znIqdh%;h}K3ANgvW2}?-p|gs(ZaX;l$@GImb<oKN*F8gkYRRP>{lVtg8i`!wbI%e+
z)0aacW{^Q3n9s$5==3J`b!<8Usc=`&NuU4VC4KeacS;F&)6W*x5@a@rTuU>0=7X+J
z50@@}$<W^5xlS=~mr&er2+{hlSPeJFt?=Y>OzsA5x7qT5?@mNE0WQR!*^aUkxr0Xk
z&UD69>Kt!2Lsse2>`=(oKWW4F<i=PKw^=Mp!Z9qSuFdaa-N%wDX4cd)bMP&2?sHnk
zh|UGItE6ng2$FO3vryB7xVy>5xIj)go?<q4xGAH&{TfQCGA}2jNS(J3GkQ;Q<ZcT6
zS_1`6%WE8Wbp&>uSJhkxI=)F9nkaS#Q&^g##jt|Jp}AgkoDDH{7s8G<ONz_Y$lC{+
zzZYll?Mx0F-=XP}pP{%TY5LlQV_tJAlR4o)#sYA<2+Tu4+!laO@IvE^fRYaXT(G)#
zM*N_%i=4=rH=ze<kB;+V+?)-K3(oywR?kc{O_-v+Dv<8QHew%7G<|JUkU2@kN{&~L
zd&dr{CLd029@)d>NsZs(&dnJK?+i6PzRIpi$?|}M$!WEwiWDgw+{7HWD(n}u+H2<v
zF@^+Jcpv<22YlnCrf9rVmNnsJbVmn1#5IdN{iW(jVAU;f7}&$~+xu6)1R}F(h*6p|
zBHVWPqREALW{-(*HaW_rE}O~+noy*W9Y}JwU>Ny3byBKWdm899_eOah?d->|rq?V{
z@K}8b(nFaf6$z$|hO-V|18!#dN9$_wg&$Rnu&mC({;&S=_ye&W{a*>PW$fvFSWuO?
zp~|Ixs5qCCFa&LW+6E|3kNc*b9gXKNh`M)ncv6;7Y-gj!YbpuItvr|4y^!G8F7I{2
zHl_P*vCi%qJ5SHcksFfRFw{gQ<9Ywc*j6GemekI?F2u5iQT;S}si0Ap6dmi5*%7AG
z4X*7Sc#6FuS^Ic<hm#M)bPd+sbHkRdK${+dJo3{|t@zRWQ+sZAL%g6rI+Cu>5Z5rb
zGEg<!c|WQKlXi7tH2(!ZKM6|oyEBdwo4Vk^lnKY*$pKXly&I&(UzekHeZv_`>%;LL
zwW^<-$0T^4#|cm5i(3)}y^{bw-FA-&EXQuRo-tMv_Nq^4T?^rm)Sb=WQm`RQ6b1Uj
z@a_+**S7h>2R|I*QZWCJQOY7dIhy=V3ag&?16F2KR#@HW_tAW}b+-lv3ep|A;hUnT
zRc;hvFu9quxJOq%N)}ny2cccEf0F0S=F>$~29IOH4s#<^mN2G8Iyz7;rrQb@jrrxv
zA(C^<P2;RXAqJy$<ogXGdk(^ze98?9DFzgfP;CHoRPlpnP2&4k2;N*M!eRXj|5Ug8
zOQBL;P*i2gr9zw)x--0Cno}$;*N)%+_@CMpk~3P|M7-u@ze9X6Z(|Ulei>$XQcnnQ
zdRxx(DvQyE9J^T>qoI!)?j3tne{t%+iZ00<kcG?rWi(xP>mM0L_>Rse$tm)7m~sr!
z#3ulInCvmB;AG<~$nZ0dK0@)bUBmQy=P!S*_CrgVzZj=abWb*Qvb}WJR=m_g{mm-s
zvN2N5e(;InyMW)YD*NzlA+EujAHJssC4M$&3quV#4o^9y7EDK4BFK3IlKKdU?{J+I
zf(_`XnFuHmBu;1%#F`S-l|i&Ra5OHY*V96_+UnO*HhIzyXh=SvdZNcV%opx_F!h~V
zU{P5<evx_LAjS7Y4Lc?X*-~iqU|^#uq)tfQkAh1sy1g=e4;zJJY!0bLGkG&m_`m4!
z;g%#}AY3X6B#J&Q)l=a@d%Zhv^C#U-OxM(P#?jDTRh*UQda#|Ib0AF(=U((K?RR=X
z>Ch@`Ct3w!?WEn@Dh@vB0}6HQIZmkG74xZbSl!?UbH_f3ETx^)vyrxT4Zk>JIaG)-
zt^u39ayrsA!T_j(_Tk4*8N#G2{2CtYtZmxGc6FLSbdexP%kk3PJtDsXuJz66h;>=c
z#0ke&BQuZD<8W6W8$(LlPB?AkdkQy@K~6_(`^Mij8vxAl1RKA86=my(-OGZ5xgsg0
z?>ji$kr1J>WAMUw%rq6dd9JY?Iu<+GjRXtDqfIB_{P96X5c2gn`ki<->g;I`S*O2@
z9_U3cnj3QClGC`tK&<#}^5K`cnn#rVKf@ho!Puq+{y_vLOk9Scb`yhBx31e*4#r57
zS$(suQi+CWln&Q;M-+KV7SlIvLd(nXA2cbgSA6N}CM?P3W2}p+DWW=Pa9G1^wy?r=
z!DT6oD^=HiS5%MVc00SPUHX?j>3V+xX(F)m!8m~i?+k*uG++W_%s3T%OWBE!9e+U4
z(w;ju14cEg4ei$f8Y>JH>FekBV5T2<;gT5t$nAVxsw8Ekx0b~&7rM5Uk4A-eYQG&y
zDr_O!^G<Uwe@d`X1@Uja9b2LL7IqsfjIsnTXo7!Vb>3F{0E_hS!GYj#8AqYMBSwOW
z%%r{k$=i$K4Ru94twtUO%=NVzp5;HJw?ub(v9p%HoKrtpPt$&br_li;q%WQIYJ^Lq
zgKuQ-dU#9rqe-^payzPz*F+LLcqfPlu4n3+`KGc1h3q=%?e`=Z#H|3JPBdsrn!M4E
zf<w+7gaF0D5lrqW3Xp#*?je~Gqd{ri>1AZQWHiX02I&>Fnf809W$$x$F|CiO8{UWD
z3Maojm=zlmj4JW*N)h+YzIY!$E35l=_hX)VoTIbIqkn85Tbqa7x2~(t!Z>nnFq9uO
z-VR2)Y~d}{!t$x2yhBNXgHQRaX`-w{f42f%7^ARQo%Tqk4s_jgbkS&DuKFZH4TurY
zL{Y-(-c=povH1H8OI8|yLHTr=qwUn{{S8r?la(UxS63anI(v01*gwDKRYK4HlGLse
z%0#y(-H{_tVo}P)#exU2uR4@O<(XlYOGgv(LkBxi_j1S*Wc#VVe1Y@>5!?19K^l~Z
z>s1yB_+C=9f%u#WbtjK)8YF>2@-`}K{JS~{8k3W;1RaQ&^p`Jc1$Ad%*87+a!RAu5
z>1~0#G<OW*cBZfDmc%r1y2cm$1Lk<MpM0J+jNQ>Xq$Pi|2dw`6N<x!MHIF2p3K=IP
zUmVKS{cVu72o*@Wk0ycodeHu65^Y9cvbcRAF{NU^(KwueYf^%6Ozj#Y3if9bHHkxi
z<@!#A8}db$cXjQ?;6<mLq}X8*PFhIWwfXJ2X7(TE$>QRl;aNDXm$el){vX>stz*Y~
z@|TIN5Gaw((J>+CFO?X0y*|nW!H(r$$P?fD;^YQ}P*l9U4R;t26H#5KYzg#ws|Smf
z7ui8WSa{IbKaLfNMQuXAkrG#?YQkQRXSdkE&&BL|DTR(CyG}7HRUj#dsbL?TFTQ6)
zE2SiM4wqUj7d<}h5f1a7>rKjP+0hT*z>)DL=BNz7w|Rlajq<mCc3S|`@1L>+krb*&
zyM@Hn&nWKxYXkBesnOpD@Mt2bu<twxS*V^E6|i(->K&sDa4*!9ZIm)Y)^y%2$+bA?
z%joezdvx#2d&X)DDMlWeT&Z28^SWy(G7F#}8ZHYqsc5-u%G_SK!n{LSj~kaGxqaQF
zStvyo`HJvf=i9yiC9HsWiMW{<vg7{Ubw|SlMa&nB=Xey+i1`pT+}B`?jj)1;!hDO`
zx{7O9-r>_N<iZ$zLH8hPcLd(f7Q0_N?5xZI+w?GP=rHk(U%`Cjd5$~rcMt@>VR{7U
zvk@j8C&@LU5ZU~g9?BeAc1uZwm|^#<_;06`P2Z!YpNonL3`w0+d?Qi9j3N>1wed;+
zzVP=ZxYd;Mz4R{5Ng#I+_g^w`CxPh3<i{NGXdCF@LO5ugsvpTQ=<$6$-JgDYwljE=
zJ4p6c!C3PIj?v1i-!6`z2h?llkCJ873sD&n`H;@{QR==Jfmd+fn!!+Ou-s8agBp{2
z2z&WGOj%R75pb#~Drr{MAFjj=Hk*QKQ9+<@WmJeehf}p-<KVtq@?1cs8_DYgVy&1F
zJQtvQm8w)N=6<=r<vbS-^DW4j*7{akDg88-P+@$wrn9PWfSW<~WCr!V^@sH|hcciK
ze8QFth5gg!5<jS$Gc&B!W4#qK<!_AO+fSOt&Pu}N>tTK4*+ZZXYH_=AY)%vVHBS7&
zdLCAV#{M?K99091fn>1Kkw)ud7>BoUtkyQRi>5AyChpo1789xxob|$aHTWcgSeSMJ
z+7+>R`4+W-I9yAz`=&$pbY+Uz<i_a~ZBJH}vNLH3NbzDvG>DYWHWO;y-E;U$VRkpL
zS~*Ml1Uo7Z!O{HR9ug-Qpg4Y32x2JKX2(1Kg&aNvPOEGbqoHjN?_K~Er;`<zi$_{#
z^dP;x+_k~CCF*X!$hm!OTBauU(3|O`ys(^S#4np%g^s=YH)^sO)V=GF9@;nG^{a0K
zovR8&%+>B(AoKZYW{~(tGc}ulW`jjG_Tr7(dUaFe*@k7v{Of`q(|5f09bF;WKCAt2
zhCMpoaptCqsHxL9aN7k$L8;3V-3JiY_;+jK(Mjn{fV>xi3e88k|D5BOBi~I?(jxEL
zWHj*$c-F^5%Z+tTYHwo$(C^o;U-@+SXAioI6)|ohp1nfhu_Whgmu&BRDaD*m1zzcn
z$+;myieJQUPKCAu@PI2XxrRf=U~p&uL{i~|k^@;G;}-Muy(M{%<;Fj$@RCAE^T>|r
z2B@8*qrJ~UiV)s<7KDWChb4+Y$E$x#du8Fb=jvN$th2T`$;}D!2AMRc5>GqaTsM_p
zc2~=j!To<<cU^OIa(}xdx3bzbq=JuK!A%A}yF<Dy{0my#leeeR=;F*Rz7PhDKvD^N
z!|w`DNqRoDj&Wvg%)4c`P!;`pB}eSo_PIT|^Xom~UU6KE6PQW95ac293f3+mS(P5<
z(9bX5i(zis&QghXokm^T|AFll8hXN5gT|tcRXgsB(wf;}ju-aI(n1#a&X}mC_f1+~
zP_T)2kjl}BOb2grtxh7G>`xfy{_4LIb>POC;8<hkbbBw_5H`R>b<ut8q~PI>azR3)
zPqX5|RN}1eR0=XS*o@?P!S!n0i%zlnrQJs)#%YJ;!sE%zI5}9TkaF1?xRA2ooB%)P
zHU{-PnjoU5p-prSkLWh38Nt-|i#n{4d?*nF7+^AjgH@NHuLvo@qHJHF)1-QMAk=U~
zpTB`k*{F0X(2ZFihSd<ujV83<MEQ~jZtSss{PB;A2+n=ZCq5LE@59yV_)cni!<^v3
z*pry$N%cA<I1Q2ec^vUkmVt!iFPcShquwCc4D91gir)y0N`CP4u{VD6RxX1o#}Cre
zfRAI;WDG8jb@I7~^?9}`j-BW^Opz#2o-z00YTvG8hr?rt==|v9g-qeHJjc~7=n`$W
zQ6e!E8yHA&yvI-ocOcxhD!oKd9J;zAbMK@6m+aa?^yz+X=O;KAl0jks3b7qKJ5<xF
zEeRGZ#{Wr-2@Ag>p(8mi%m@xbg|a();VCgwFL<dw;7?oqZtHs$<PhRQ<^DsQWPXMC
zqyuf)Fg}~OKJnb+PJ}qhBI=ep!E}qTxmO|svbZf%3a_vjj{f<^^~5og_$Ex^eUwoe
zz6rAFI@_ido<?M0YddCeJ+=$ikqN1SdEd?KC3OF={%z*wtv|(gwnpvsbFkv#xV?x>
zx_YD_Vi)`qxZ&DwS0Y?AlY#t(E0Z&du3T=~mAt9qbHcfh!j*Irj#hkB7Z~SsGk`8X
z1W~rH*P%1Hui*L;SN)VJv;Yna2zbA*4IO(9sgSCNsC(%+G^55F0a$7a=uKW<J(iyY
zZVwjR<@F(6F<tUU<=CuuD{Ex3lyN-xk$)gu<7N`hF2B}t?sFxO>7V6mb|8kxdyo$&
z-v88lhwqRR1OAcY7N4(tz4o2&4OR-mUJq`^Sq}$3VBRTp_A19!3@EODwV0#ZtS0<6
zo<0sS2YQO18AJ<aQPt3O5N8IEEz9nnD~F})rcatZzrUD<;b&manJIs1dD_c(y&ha4
z%+saLg$dl;`Y+*VM*_?I_>M$4v`*faI8kQ9>w`uH7$<B`<wPi=;acxHII5x%b**`U
z6-P#ZYX_mZfVim!lhS~EZwHqLIg)nvwDXcK4a4C(_vOrz*+CK5JmNx`T_$=jmF(2{
zhrV;L_s!*|<yySpH@Ya=-4z6*8$yT@^}k034foepB%!a_dC(&Gq)OK?&Kl*eC@_aq
z_)B%hqI=$Lj>lJYBiMK{)iH!SOmuTB#S?$=&#SuNXDp|6`=oOQwB)vA1C4aF^~~1q
zWPuMLr^QPl+`$jc7YhkmIp`&?{*7ryOghKI`2`@9q7JjSJCSD`!~7Rkr+Ql8FXXps
z0tsq8c<Ou0vL2kFoS|V3M0xeddT#}(wdlXSKRgL1@H)L=UH!XV;#0n~a|?e>5_&;f
zHmuxmp=0vqXWK^nVD9kt@bdIV&<S7uL>6g%n<EoN;NBd^Jvzl{;d)#feb-iLiLgVh
zNh<!)59Cj^V};#hiK>Lk)~R3g>hO>=5>!QG<qYRHCD^ev_Vb<V&>Q0v1Ku7PM`_|s
z%4wUci1Q_Gg{H8NHJj%JUv35Gdf6QEqqgP+Af2%7d0&5-=<ANj6hHl7%d**%gz}lA
zSNn4>Z+%W?6BPeU(#9IJyM_)$_-ji(;{5HTs1d#~Ph8SaEXx|@k=@f$5yky$x}cjd
zG4M0QAxo0HQZl<kSHnwRLXGOv$hK8cM`{J*A}2j|Quq#HblyA3mdQG`^ttFN4ZC$!
z6v20-yam1AoIE{Y#LZ<@tb3$n+*B#D?)2pGYpGgFT?0J~`dzXc-_(*lw@^u4Uj$D7
zfM-x>Yiyk5-F5qZ??PPS=Kr>J&^~S?(l={Mnn^lGjXjjv);{d;ugVWTzHs*mYE~eb
z^eO*;D~AcI2#WuX7H{4;>>~cjpZc_kjHQhuHC0y9(up+44LH->HzY3VFr|%%-1)JQ
z*w~Zja;Yaq&He_Hgy_oO<Os%wPjpno#XUP0CWL(W1*a)Zv?_hJ-=-)^6A&^IR|@@C
z+nsUm9EuH&39d>4nuEbezZn!R0-S%w&>sB)6i3~@Q=PuZ-y^*`Ug(uCI>}WPXTO&#
zF{@`OnXhnmvH{f|YhjkWq6k64+LqXD(Zd?abgUD{j>B%QZ~I<A$oO1M<j3w;w-Q;z
za{HJ%BqiQ#=WGZ{D8HF}Seq$Pu#-@g-3uwmk5e$6Lqr|>T0r6CILNP}BwF_l>!S;Q
zM9Ia)N6+1eqFP}Gg2_Qqb?xHFgih^=$b{f^%flXIC~WGcvH{$mXb1E9W|b~DnGF6o
zLHtETiIP9CGp@eYUV=wGB%^mgj~>k2iseXM@O@1q)S|lRcvq!1<sK_0kG|~ByF~Go
zq;K*}Wi(DD>F;TvK7iHDU-T&UTFce+3rq>tp}$}rk<HFQrC(Cs)Y&`Hr6HR_Rw$mp
zz9{G-rqD6XwDd(>fMCMxZ}!pI^=r<i)7=G385J$L-jMvQ@-{^&70``E?=P<JbBy$y
zIm|LtQ;xh^Xey<S*M#Ryp6WP@qTkx*UyeLPuy+xTqFi1#(bRt2<rm~7`{Xh(UMCc7
z^2_F8`c+<?$ucy4Cu^o%!uHy#(DrL#nlFxph1bY}Kh<cNn@-|3$T*ML4!`(>wsU;q
zG=4x*V}Y@0YI}m~6#**t&I+e(lttKj=$>lRDbXqmOMy`QxTh|SGhzg@DivgvRLrf$
zJI4RmZ~I1-C^A7F-v+BFw}`Lg>3Uc=lY^Ygz^ARe0xfe#Wd^q?;T>gdHvL|)1yk`@
z07Kjp$%9AIsDszee62a`Dn6a~b<kfnqxs3!v->G?<E}@{dTi~AYG1ODZn=6Nocu1G
z0MJ;{Y&UBJbl`PM#mAbHB8pZOVfz&c@6=X%U!;YqS6QIUH+y4wVcu3Jk)lUv%Xdpx
z_q<j)3Q#phP6FftxKAQjHflFw{w?LTNpef`sp!a<QtDbez?4z|YWZ<kWAV40PY;cC
z!r!*88LOg2AujaM<TRK%NdEVDjKVBEXO>0C0hT{mPiaJdS{>onK(JwL=XjZ7>%4g$
zQ>B1)$q;auTz=Hpb!d~N43_deRoMBmtZe4{H>f~u|Kpwk?bCGIBY~pOs{d(0#|j$s
zSBa6UN_zJRs@^VLo{HYNJ;nH-`MJ7|!+RxffG^QK`iS~WKrP=z?B`;!RJehEKWvNx
zfFftZ7OC53X~6My-N2xCNd4Juh;<ENY!?$!5Q5n560(cGhlJz&FI`Zu`Q(;tbv;TP
z+w=AuJ=M0!a%c8;L1GZ)octYk+Pfe|Y4K1-@l5k|;Ihg22}<)cs4q@cI1y|nl+xxD
z`aLsHH`KImULOJ8pN-5wZ2(hhX1iv>R8DAqG09B6(3L3^b=nG`UjNCagn%nTh{@Lc
zNaa~$4e1=@KXG2Ak3vY>$n&a=tpP(;U)!Y-TB$SMRU*3fu)?Dgqes>sp7~=LD$kmI
z(*a!l5J3QCq_n3c^7wuMP}Bw9nXYXQm#p;>V1yeI{KY>mF3GF0-sk+A*BN!K*~3@q
zH!rh%948RV9MZeh_IL-j##v6Hn%6pjJAC~NO}8<&3TNeH*8Rdb82#$5m2ah%SUD}?
z*QsY^M|Mdr#B{)IpE|bevuD3DWmr*LhdEzSr;@a;G#$)mSVTh16^f0AWbhi{Y>lt{
zZ?2PJcvqsH8#8cGjo#dTIg(ZC&zjC4X<8qNhaDO5;&?^Z(L6;0ML3)>r9Gw~QAomB
z{r$C0zue#5`Ur;=0M@~HCgO-M`zzt`6(00yZhJ+mfXo8pnVY%)lf@@<+9C1Y42?eQ
zC+ks6a>{+)N4(^)aid0BEFG5ZfN`b$|EO6ig$%H88URW{R1}i9Xzl?;&nY^Qu9QgF
z=i6k6T4pX$aH@c(Rs$e-9}o#_jw`C}sXvuPX}{{CdV~R!;wm*&HOdFnp6WNc`CtdF
zR_yq`72)l)Z{&>9-N1FGD4z9GaKJqj@az>@EzFI?c-A3-DS(Q@5_%)i#yDU0C&Bfw
z<F#V>G@?gbB{ZPvP$*)g_i=fR<o2?@jp7L4!rM1ock>bhpMgDFm}<ty#~e&f4D$?!
zd@|@Wn&GLJwTRHW>C$>e@uV(rwT3zUVr`=B{N^KL`bO`47mhf2q}bLBe6<iq%qn?!
z@3Fw^f_ECQV5M??Xk@S(LhA8FGu{A5rte5ecMVUg^fiSXZxeIB&f;>0sA|6xw`o}m
zW$gqKO)_;&Qv&5bCsN6>r;^QMS=_z*XgO4SMF4cGxSFfGg0%84j#+i#gTFb#MNFcy
z4b5RV?=aK;CfJUN=uFxMpJP?*sA2tC?X(m2a;?2W<odgS@e99)5XKBN9LTvr!_8J|
z7tl<gd;}25Kp9HcH{f%aRCe(#JCEM5d|J}gM1lJp?iu??m`92Q{Tn-ZvKj~gKtiO~
z9lJR>KA$sTRF#=7unPT0&4PMw>ITZDq6R)085LmLe*V4(t0kw>&mzWkWOGPbthLg3
zk`Tknk+Kw`h`0*GnT~~g+mhGk?}IkvgW$Clp8w7q#5`}E^wB?|%BIGX2ht4vQU#{p
z0dr*g8N(n~a`B0O64|!uk-v~u44s*g@NWx);u(dq$&e@hxY#}AhFciZV=BU{=CY*X
zrCVRx_#pwh5Q%4AGyTggF1;HdDua6Sj8f-n3IB}r_;6G+@UCd(pTuxK61BMe?FJ)O
z0F5R+PPMGpMo@D%{f)y^ZANB_v;Flt)zi*{f0e}3Gi`*^H}@;d@D%vjj5C72Qku}{
z-KSF@Y*(Om*ag6clywV^gU`FxxU(&1w9Oc1d$|IKC_P}!rnaLfQT;Bs9z+q4CaXuU
z3PX~>abS^I0InfH{_Gg61a25mq?+Gkc<l`oEF!}^Mj&_AGl1@EkxR=sf}d&abm&(k
z5jF)j^`8~9W-h{Z#tI7Q3;t;xd~6}Ok53SYnsZ5W4u^8@1*#hfIh?2h;!uN$TS1%|
zPUh3IAWdfTdRX)r+_nt#Q@a3l-LZ`rfLnF~6!;bV**2&B=oNN`l}4oN6yrY0(RS}h
z6?;JZ;Ysx84kKkO4)|K40f1>ea`c=h)x?Od7}KCX$copHoj&25;d`Qn6LZs&yX|DJ
z0#K0Mj8#R;z<HSdd65&Sc^0sQ4FV-+lANb({N@|4HxV8~+AIE1Ycco+;^*|$RY1SP
z{dH3a<cInNqX>&FuZ`s84&A9r#aXCB4DTzL?tS)g`?OtvSGIfoQSC;=O~MUXdO_0?
zfa}}epDgoHE>V031cy8$-DGqA3W&;2+u~2IoP+;E(^*F~^*(-lqedg$B?>4tLUNRp
z0)mJV(hbrfZgl5pkZu9}pmd8kYBY>c8tINv5)$9b@0=fp!++y!clSQ`KF{-dzuvNS
zDCX6C@!EfcWYx%?*21AhOa40<;)1JWYL|Au+}WI`MI@^?A;8NO4)FQ00&+s;w6YwJ
zn4VyEV^$yRO#3VLPImaitOC2SPtOy#_J+pshsJI{wSU+wNLVz3MM$b!7{bU_(&h<3
z*&3(5T|gAdkvC*^*WsT4Bl1K(j6}U<jPQM56#>Gu<YOw{g~NF`z3FDfEnvoiE`G5%
zRp|lf*1(@vYeKo1ckU-XVuB|ws|J$I1gML~pVve4|9tnG%gnf7(BnIkpJPR{t>j+a
zcn2_M>`UqpJ4w{m2T?uc2q&=!6UU1lR;sRjYW^PeS3D--vcUDn>2J@H_+VZioq+%I
zHUemJuDD(=&>-@ILUUX4cu=$x6^!dh^cjdxe9ObF{wh=bt4JGGa|i?vBJu&jRYmWi
zOa2|=47e0M8M}@{Sc<}k4)Gl7wV3$e4F@mprz+{`v}xuzrBnW#b@|?G5n~zMqgZY?
zSEE(X7wpAKJ!fc_ODkE5QbvUZg_LRwH-NaG!Spue=sq!+Z!*Fh;8B171O}d|-Yi1o
zvCdpDCO9MmI+~yqLF#U3vE12YC4!?G&$8ta=2wtHF1=ZRy;Jp_a(GpzMG4<sEf=fd
zEJfv*U<Q%9YPErB0L9)}kYIek?{Sz@%K%v)%w2JQ`V%KiGvjWT*o2i-<z)ZP4LCch
ziQ>uktJyI^14)L~<&}_V2I)HmX3J;<=L@6#)|KI^btcD_!mwR4w|0EFU=ey~1=f_D
zNvu~^7K{9;+x9_y%4$Tm18@ND%~mtK-gIkK*ZidU*`-OcyFHF~MtN?~P;`E0K(7Sp
zh?L?sgojNMhK2`}Q*5UA9yCkj0N*N@OXoTeFe>`|5uOZU9vPQCn_FoKd7g6-+V%r|
z$<Fl`Fw|k|OuVPN5kQh&KLX%^rCM*>|5@}lE8+O#Rc5%Nh&V`q`*<d!^06$N(m@ng
zJnv*|dTcQ<gW(D8>6lO*qw)3#@BkrJ^@~_R-jjiZVOuR?O9FnMi=mi~Lg3WmWrrgj
zW-tL(`SJusc9|@UGLG_F{H7x4Kr*|PK<eAY?cMfZZ2rd~Ce{xKNx4)|`<`yEi3HIz
zn_4`GXO<AW0=VO|Z<Z%qsuI`W#0ccL*7|$+V8uOW)yA48Um#-ANoVA=B=+(E5Q_?=
z7v_4;^!1!bv>lRdfNd68{VsqfCIF|S;E0o6_MLeiC`<=F4=>9)^a4^M5eoyS#K#*$
zXTn;!{4}p2Vx6A*OF}gXau%e*c5ZR9;glq~zpPVb3;5$f*5%WSchT(Po&YCU1(`Q`
zn9Ft~JA3|WUuha^$ZlI)(>Dzv;SoGKy9v>*sh*zLtvDR9(N6IFf$YWO7A3g+VK{F9
z&t!DWBx@U-s||2f%_<87!a75P90Qs`BD3qgNbod}c_Yy_vUf$&1Zhh;bJ%j5=UMa3
z4|4z74W*Fl)vUG_HxQu~(XQ=-iQ)>2mSkk2tkJuJ(x}4>ks%atsg1x*sXKN73+UkB
z=AdRqj;e0ZG@w%4n-qU0%KVJ+bRI~hnWAZo8hY4#C0%s;*SwPsk~IYTv@UKQ<q4I}
zbB$@2ucD?7^Q~()2H(%D&+_fziz96AP;sy9=}!m#amHXE1LSL)NBpz&Pm+c8C^vdA
z)zUWQN7;09*)DKNdmBFNpo3*Tve5p16R~6Bog~{oW0-QMi_AkOSpQ^668uOELBGhz
z7|M|v*bxUl1%(oN3c_&4v}26h;Qujm^kXLYV`d}gEYSQZI*UFPGZM3In0kM$9EK1O
z$;K1OHh|3!Bh%J8hfy})cUxn3c-*EREQ>_9J*6nL8q!!_b2`kPwuFgV-DeiIRQ`Jx
zORDXzEz4{a_y>UWS%o8mZbO5T{Z1msVgZQ`qHl9e_lN9<oHPVQaZ`*SMj(WLZ)0xm
z;BUYsHwa_Od~qd5=Ttu9K8u$<o%wB$RGNB`9}qJB6A`5o@e;Z`&;D~|Ya3C$A{NTU
z41-twnJwx=C}uBGq9kjcKdG%PFr^U7a8J+FS=?%PHgFftx~OMN(L1osMEJDA&hfCF
zER<_<p{gL$jKYuYc8eNjm#>;#L=|9K@=URHq3+tV;F-$S?OS~_-(MSymmy-u#vlJp
zAg>2u(bLywe-76AtY&}PAfPJ`L_;5ks$LEt6FjmQ1*TmCj+r+edVZDS>-Vrx{nAM3
zkDH&V-3S<DM>JH5D09{o`Bpx$S*J;nvAy~o|0dN2;&&3wIIoo;WpQN+qZaz21Y?r1
zb!zDRJ8Nf~czIss86=3?o5HBTxCdQ{yq_shC1Onv;_={PjmpU^%qC-(n;U1;M?M5i
zSBEzZ+&^0t4ISDebBX~}4^8umS&SosDOl1AVD#Z!I5>G2#2RvA>qNp}W;?O<`(Gxr
zQ~aH6n9+~YoO#M6^-l-IEPij5K%yeN2Zr;*_TJ@>-GoA=$QD**#&Z{R<18Bopqm~a
zIt{!z&L1RI1%`(p#*DSL^f^j-&)>VdwO__-AC23JZM*)r#{R_T>EABV&f2jf46hkW
zLCI<G=+5saY*cz2++hI=0~xzUt!PQJp(XS>hpk`4OTIHd)~{D};q9Jp>tFxB3m_&d
zjjEg$Ci?a3``>sU_)TTW>1&t8+C6siY41`<i+ntK315e?=WaJ>yb1lhum2gaR*m)a
z+m+*H0nKX5<{=vkV17U5-F=-!CY05?+%;2Nz0kV+%ew8}#)tEbTI61Ja@1YdcElK2
z3V56(A4x{h8SSIV)ipnwn%@8B=$;0Y;%k%T(Kkp)&!(GU|4!jCYexT*-2C}A(9C33
zdEF*SUU$F1>)8>P7XS52ABqIR1;THOQf?F&eK;N%76B&*Tnxn#jbK*X#W*e@4-giG
z|DB<i*eBeJEg3xL+s@2A$ft@}KIB*;`o!XsdhCt~lOV{Aa$z=aA$H9?q4psaqVhm{
zm%Q+3E7?k$N)SNKXBP_SVpsZ>6eG=m#M8b&_jqs_-UV70Ez3r}jq(hgD-vBI$>a7~
z{?wNe^5Va?@J7G<WXQc-Qt}{J9oYzpsSvEP!A)rA#WMD&N>o{Pmr9r-V|3**+k5$<
zCi-_Hm>mve8U0MJH_CIxH}MLHMk+2z+lcM?S|O?X5>Ng^xt=PSz(02x^%Le_28NzW
zxFrZ1MRKXdc^yC(jDrH~0t#3`{+``w`tYC7Ne-h;aI5!(@YeYALf?daiw-sF5XSCd
zidILsnS+ecKFGgUwl%VcrP!hj*<u+KV4W;QlQ>uOQ<7Z4(EHZuaL1F0&1{u8L8MM3
ze~bsw>dq?k<LcE^N4(zRbQn)BL?#68guvofa>#`A%3MK}FtIB(5&3mw<^xPZQesK;
zav9YdUWyXVinh-?ML&FHy+x^_N>R8mq`259U+jHfU^1j^@a^`Ujg%6>^q#QQ(D89-
zKx265A1>EqvdgTNUmMnogkYKEDUQX(DBL_tbO~cyTT09%vnzKGE0(T9euhAP(ERk9
zwKYy9kHeHuFR24u?eOtCKg;hK)ea(U#p4j!AtJIFpNh(kh~zE~3k9NkPs7;3?QRna
zT)ENk3dXnZ!A+acAo3^~;$TH=bQw9f6PO@}VbBnVfK$-N_!nUt!q;yn<jRXFB;u$*
z7d#VO<=IO&!`Qn{Nl3CTgl!+v>wDjTANo|qoWa_Q#W}{o%X+Kqg}Xxky^E)r9F6Oo
zhtJcV>x(=sP80>JgKdU6)Vw8kJT6=X8wF6)-hcXl8sayp`&Aa5AqXNr-?%--)W-_*
zL*GEkX2i@RV57eXPP#@-xQO8TtT;yta?j-W_xUol%J3l_jeM-3S6ss(uiBrYSj>|-
ztJP}R9)wst8Y+ylnnJE<DmmF3_HaH#C&)b_r|>)G1<pxI5SKh`wf!$M0go!b4@Cig
z3Ux{&=!&5zXa1>LkvyU*wgDGY<QZcuDh@o)6l|)V@I`>p52!_ZLZIfOON(>|_M!x(
zGrf{lEDm#p2hq5tTDj|!n1ps^c4&j7+H<)I!*i==<Kk$RlqYCju^{T}7t95UeqEAQ
zUvVZ%T85aJ=)8HIh0!aC0y;CpFx;0CC)8tX_8<zeWXKAAmV-QEG2Olp=C$~Bv5*iB
zA#bq%lH!-EX~yB3!@Ty@ALeR#GEN6qY+WU2#oTL*l!Q=QVgJkRQq=$Yb5q-zGJtck
zw@ShP*^e~yOXQXdJW23k(T^{vJzfVg#3H1y-~fR-{^c)=6$?_C5@=jlj&(kU{j0_!
zl|EE$Eg*03FU<B%k~2pInSYm)8{TB6dyF$9?dlTOrs{2w8pVUOqBCdV0rBR$RvvZ8
zY}y5fwhv^eR*KRI_kQ=<+J?QH?}eOr>=JS@T77Iu#62HEJlovh?Reqs7rX+OWMWWa
zNB~*o32e~n@%Ghh#<H^hSNX_-i>x~ts#q6P|NLP>{!tevE6?I{>5QOd#X{6qhIjA2
z$UgsX#UdiLo}u^%69v-!6N8579pQvU594hrOW)eb|H~u^r->Mo8pmPlC#@y&t0Ll2
z<=Wsu^e2&ry5Ny887L;wYg2DAAmM6Kp2{uu^a78ZWLOkREvF+rxZkxhO`7_CV~*>^
zRgklO8bqZqU7(ObBc)kM^a7qlrq`kQpdow}9p*eB#m4rT(=3_Y-D@lIH!Hd3IRhI5
z0|V*yhgN3>o}9)`4q$?^hok)(XOrIaJ(q$+Z*k|26qFYW$82c!``AQVhkLAU405IX
z?Dx>3>V)8eb9+7sZepsvn%EeNTu7z39l77lMtJ`SSL|MmP#nM`b(v9$I>Q%Arkn22
zh^qed_gRmp_+-PdvHbEiilMu_kDNl4A1&Hy1ta94NLZ{cl2d3sVg5%s(ro6^yioDS
z@R>zWhweG9kZ_BX%%IfE8Jrh6XUoPM*Bw%#Fd0nm>fk3*=uJj?Mk{#v7u(ul*d}Cw
z0-y_iJY~QW(UVjoGRaZ1T`n`p>Bh}Ciy&oOJ_pK;B3D8@>cDN5P5Cmb#;!2LmON;|
z0@Fjl>fh(5B6aji4|Khpv`i?aZQt{~-}Aov1m$s_T!&S+ACXHd9OoRDY=Xy)soddV
zo6+PL<J+;m5m@Zk4#;qZNMwx$WO2fRUK=FX2l2DE7;ZM*C7|2LxyJhp$x6!)2%~3W
zMrxl3orJpf+db^es}WpjKvBOWzZt-k?jg<K<Tp*<Qlo7;XI<Rk-ANKNpH&z<=D+Cn
z)F5AeG<kRed0!o5{nZNENo^g{f`MGIx*mfAvEa%U^gTPCBu3D}7~80UfMDM5iF~F&
zUlmd`&A&*ScS8BXu?qpsf91b7R;3VSNzKYuP%$w?^U<{vOa)klhifnl<hBpX=61&5
zq)X-EK(W8<pYDV87?0P}^}z6pPsYy%YQo#7R<dwMn$Ybs{+FbI+Eo3C<TkGYmclno
z4BBJc``@t{FWT{ica9ny!xJ_ckjgat<<`>S?a!nmKm=fQf|4NUm^eXZ7{rIF?gcp}
z;q4&D$cbzWgn}?M+nE-O%R)hX6vAS`n;5U@b`|m*xkrd~>&+&@yXZ_oh4tel&{JLL
z<aXqC=%K**<r>sn{zIc+q;Eq=Cem=p%CA}l?_MMi39BNLx(T%~H4jCF{gI7`?Q9|u
z-U^BKrxOV0dk$)8by2U)m+2}e%%-Fb4DHcLXl0e$McbXk=hUn*lgnMyT3++rU46>o
zFkGkVC3n06qeA4p{XP<bBF8F$f|2@2DJTw@PMblU;p3*QcLE$s!e|!)31c>7cOYO2
z(hqyiWR-bO4kHIA1<LMgjd{-CaZ?qYN<9XaGP%OatZ;l`!s(@8v&y#1w@rg=SEy(B
zQ*vvZINT=dtPQuDYOPxEz=CX_CDs(N2#F?!agg8Zf5OC2^~|b5=1A~)Lj5=GOC0m>
z)Cp8**;8}lcHGSfIZ|c?=MvL(I<}@v+XdZEWR=`?M?F`)t<j@+6om=R#8xck`yKzn
zgu_X(3Op@QmzJo*>VJ##18Vj5)b5KVKQ?98C34s?5g$?_A8#_x^n1&FcNAGiQMeZ9
zdp=S9&3=Q09I$Vz$}Lj7AJv~C;O9=njW@A(3QD<TlmU5-k^?b^7M6O9_>-mr`Yh;8
z((@BRPpMYe&S0%yFu60!3oEA%(N(4ypR;X~eeLsTiG)j#wYrs||31;*PJ@D<v=jj#
zIg1?29qhYD1?6$_@sEXX3P@yvAxmDZQ9NZycB^q->-Y`XOETY6U>SH&ArLl8yqHf?
z4;1yGSG4ALvu9jqhp5<68JIyjY?@>}Jo9+{{2vWMR*TL2rLC0(x^=oxJA85_5mJo&
zMa3sg@E5o_&%MNBf7;7O1b=}yi%SY3pc*XV`US^ggn7jqo?0JTxrsQC01o(#%B)4U
zbg6?!#ne+-?HwCLuL*e8Zm(~5bMfccx(|EOTU|*BnF{ct7Q4T7b2j;^yQe>W^!8m7
z9WRsmKOw<xftPdh0!=A+_wk~?&jq#}!+!dn{g^xUNtWmv`iEHfKA)Ql`~pAo-*=9K
z_;mEdc_9S!#A(raJO;nOt(PI-c0G{|VuMqbciQ(vrVy4$*hF-2=ewj~n;JDkQS;A@
z1o7L3#&)dai<ybYLehzRUPTyZZ(2|v7$08z!h;t-Ronv?OH4zj2}eSS3%Y@rTMtpD
zT18@DD(l89$l6T3mn$alTLf;lYg;q3fu;xiBqKvu!GH#oqtk5_LQfJtqRgj6)cmw@
zG1vBK7hJKuSl1xOqcoupgiz{Pv{4n$=t|_|Rzl*QJfN<Kmv=*x8ZN(=-h6$MaY8|2
zx6RwEq-HrKq9fW~)rr&l8I@t|`>lTb>Jw+|%!}>O;>i57QWIExLYrz}GKIOvswDnO
za5Q@;uweW0!*<WAnn_;*XZUEhp%$INGVP_&YzH<JU&iZ;Pzy`$0Kx-Q934$phHFK+
zvW(7lIoUHFV{Ak!k=n!iI@n=If}lgy+v!ju7aAQ1T+<)g+pXc283-&SlBnK`V2P0S
zCxXTsYL4BWJQ4|NCt};PxGB!hl-c}%<n(T_m-h&!?4Jt*laQT~9Fv}wR0<2ivy4^c
zM1Z58L+rdA+o;u=Dj00X?}43gf5>(T?^$9e;M`mJ3=Xnm)aJLbARTpeI<PVxZJglB
zt9(R%9i`ag*T2t%aO-_ZeuXk$zGA;ZZ=$h^-dhxx)U4<I<&|)05j<CD8>W1Mq?pq9
zT;V4e+3i^I1N|>1U}cWSgP;mk;5?DtX2BD687skH*DL1SJ=Iw-fy1@`!M<?k@PVV^
z;!4MM(5`43uaS3*?EH%Ny_M{?6*%~SJB<^83NC2`e7oi@<`pOf6*)tga9g6#cE5p|
z_hOkf&JTq^5pe_TVy3ajmx|Z5hQ~d|u+zEsU%ES!P1KESwJ3}J>c6E9!+PB|cIaD0
zMj&QBnvUvh6If(*R2gN6dUQ-x?NK>~vypf`KX&v`0=J71fJjl#QtHVchG|$Z#S{fS
zXE24P@*(c=>#-Ru@sf>JetEI?U6OTutnckb5Mx=f<d!iJPRQe6`Zsvd4aAYOOgQ&B
zqYppf)vOVgH8p6FPf>rfSPI`Y$=g#mMYg`ZFL9NK%Pq!D)R2tN@AFcQSFCj~Yt9m}
z!j?I{4b`%GWnSf26gU1_)jb!%!T{?^y~W8LbSsy_RdL=FMaz;XpM))c62f?HySlY6
zsof@1D1oja9L&JdQ{`6cSQ72Ba>_pg?gEVk1B#@4=w-Ygzmu?7rY8QT@{8Us_lbz-
z>Cu^&Uluwl57cuX9K6#vwi`=yIC*CrIHUFbi{qF1WB4>snDH>)8@kmkEj6qSvm$82
zb!QSQNZ{ne<<r{869Ko{JJIf(+O9sN0D@A^F)PiHbbfkfQ@%iv&$qZ@9g6klj8glg
z(i@!2zo<Za@bpd8tb!>#hLq6y9Hk47&Fe54oJJh78~67>t-v0|j1~-7c%-45d0q5}
zqFCXl^P6fj?aKs}62~XU4Iua!9U9n2J?kcYkNVzo$XCzkvt8Eo0{h~)@|^WJLOhBd
z{*SN>Hr)Geka;ttthFxm3Un3H1OL9|Y5E=4Jjc?{0#x%^u?^a4)e@g^EQD^4vN;U3
zV|5!TofbR+tI2$Z{JnQ?Bh(ekEfgoL4BIO+MUusHyRS>Fmr>UTuAsF~He|arx+g!V
z_>wWpJ@%8>{P)s?h>=SNy-YX%n`kGq5yPCE-QLRgce0|Npye9GnE8}PC{KB=gI7H)
zLKW;qvjEe}{rb3SeLAMS%DSez$%~VZxe}9%Q(k%aDRe|TG|G2v<?*_0xPIvKrqyCL
z5CV{l?_0>=cCnu=_DSCJA2GPfUXv=gu}%ugDbhSl><PO6i;mVKXcv_Ha5O58!1^ux
zt=OZle(sFj*P81JedJ$jwKr<yO3Z4nU;I>$bl1K`U-B^1xy)I*6%0K2$klO${Wx#a
za%?UN!cHxI>+mFkwigsz=00m>gGTMB`6($lr=BTW9Bs>K^Sq){WeKu~h)k6nrg>%8
zs+rS+^C_^oEN)Q8si&yi>c)Xzk*7Sio8A7i=`y>_3%J{==Dk0Cy6jPU#uP^u4_;9y
z?9m9iPm6_@;D(jABto!%H!yGhLDjLZYh)AyJ?HS17)))zT%q60Tm9g~!cU=W;BC#^
za~;SDTLg`1zuA;<`NI0zQ;0`vfm#BaMc}bs`nG!BD_Np)R^h;?NWu47E04+sT`$w6
z-uMC0I)!N4FRfX6-K~`KO=M2TR-`LiJ&9e154a91z8`o{@aAbLe8-tnY7~5FRFKd^
zrSx*)=~2=!CFMFK$Qwg&nz^09n*OQ$+aW`dP(7B*^&>?pm?E2mRyO9oCguBD)r=Cy
zhkkRFPTh+~;Zld{WZWFRyKBcSOburSqct^@D~{=}1k3r&!;Y{u?qT5m0S#T2t)LDz
z-rE6mcWzEMb;V})R=5Aon!>|`qD$SHf$=C_(+0<k2}^~KnNHY<pb^k;Klnts_SM@3
zRKmcceLHf<TyawYf@U^-IR6V>+?MXCEaLd6yX9eQc3L`v{`>ZnQ}m8&Q+uy<U)Qj=
z<wv?DgW+Yb(O0asYv`>Gog03^!?dx_@(Qw0<qSUT>r-f_l4rz`wB>rfeb3&#n6b~=
z4O)x5xsFazR0R2sbVr+Ab&u0%&r&vHy>nDqt|OB^Nq-)6lIw{>l8vtPXZq6B0{!V#
zd;0?8d*c}q`=h#WmeWMMJf((>=aAQOXF2tCA1*FDL5o!-**(5)RzV;8W4D5-8_gv9
znah5KXAh-!)5=yzeo7QQGN-AjM_TmI!7PS@UJ35?7c-B)YN>#89%_1i4Y8vWvs?UT
z=VIO#)V6H(c1{V>dlUsvE39jAYiE=Q2tm;BXe$knd|qMKON7OoGR0u3|1(@u|DgBY
zg;Wf_?6$?3{>o=4@QJ4IX?Qr#QU<}Fd%SOuQ~~Y+k{BwM&(^%?y0WC_%p8cLjP6(m
znzLHLJ0<?_DdM_XF;8Q8-#_oSzeTUSPiVzK)bQtQA-;*3idkrn)D*tB$ZEBtqj*~s
zmv;VH+;&!v=;tdxQ`X~k$3BaO*4C?UoPr-k=OrQ_h^uePWz}AMhh=io0v5c#j}+}*
z$iMko_a7%sdEU8Pc4<xt-_xg769r!}_aZWdmHNK?nio5-@6(=4#QRYgE=KpW(92G(
z^>-KFx*ByS6R&ng+BU<0m`AS33$6hL@wU>SWf#4bpxCg!sMzNZ_|mLDHSal+oBWqv
zraPOOF#P(zY%gce{tD&qoQJ6ig{l`$@*)kOA$+!s_*-6iS4VGYx@nHFxIKz39=KGx
zvw!hyBINwDTs#R~n-^nK*V<AtMGI(av1sGd&N6Hi>VEb6D8YM-;FlrLvXgaQATD0I
zQ1{1SDv9tiP840lHM7{|_m1?M-{qln>YGOb8pUmH?;RLEVoL4Ge)nV;V7ALokeaUi
z+Dx(XT(e^{{Xk1(jXSgAP^Wr*5f`b;PO`(J0?m*2B}qIB8juFJvzgWff{YGYp4l3W
zQquL!HWFp?qW!#1TC8?n3#BKJ%SYlqJLAu*<;p1}_KPpw?8GXWUYVM-Mqgm=y+ufB
z6~CJ?btIZWtgUtH&=okcX(_GzS8}DA&~Qc&$7<I<^7YTr<BCFM;?@w{T6_qDeuKwy
zEC2rG5|`?~{;J`IwBw0r-3P<oEE(2z0o+sLVa2Lxd0P2<OjAruuaVz=V@Tdl7H$@|
zT!@P54)}MLS+4zZdiP%4XvCI5PhWr9>R(BEwRoCAQsp9we+Vo}<(!VrJ1_sMtuiz}
z+Q4bMML?V8>Q3GzVrit#TE2TKDPa0cv1(DFJvancpcDLO--Y|jyANzxMoDME)7kl1
z&ntRO-OPV)pfZFzcl-Q&d2$(%_%tlNE2xa>&dxbjnW>b$v_JKk>6KA@k}ur~7E#Dm
zR1?u(HkE(z?>!p|G|Kn~>IL=CqBZ|wYTi;qET{9urpd?YdxYNVp4G*)bcu8vhCNk%
ztI|l5#(Vb<1j*}A#(G2I4IFLyER)G0$Y0huOn;93yukPnTUqihkJ+5G$*+?~MQE}$
z1;?bMkA7Lzh0a3QbyD)d?V9j3s)X^<lbNr>p`~@rZ7{MKBR=7_=H1H5$8p+cv_G7)
z8{4v;v<axh|LzLTQb`&x2>*|kzy=>ZNHi)Xnrw~V9Cg6lL5^j9tPK>HJZnB(>N<Uu
zy$lnr5p-`R`=Pxv_&|s4w|nmRNtC&`EV-Kf_*@L#`Qf!#loaKnL|snKt^i$$blt~G
zOci>fM5-aE|4Ra-W92Q8a`CInlbAF5BZK<4EmzWHD#YES%(CuI=N7w!u0|#Ciz*d+
z<+Bmp>xR6q8>?Ndn7kj(eKb#&CV6}4uYnP?r(wAVdFz9Uc5%-ole{-XZOHndxeu-X
zt{%%*GV=Aj$@I|Qn0<)a-Po}yKjLhS==oub?G95<`H;IYUA~+6kHQOOjdS7+lUf_=
zP6UF9xo2Y+K2Mfkn#*>=Y{ZUb?#Sk!NB=fCr{078`8-;DRsJZo{5+#=yVx;DT=ZbP
zMGMkdUR3z`>1g=v&e>ZANq2b0&-u9<!$O#?ISV<%wbf?*s*lAlm5-U|XJMx5wNBBU
zn;FxsC$A*CJoC@uxtII^Q^!s4d;fQ8h*Y+Xhw=1IN2XtbaUqv>UU!x-ij-1zu~cA=
zOH87+1e2q2uce0oYNG8wYoA7d-ANJDg_w1y_KR(qqIXXYt2KK>sCz>5`@jE4NH}OG
zPK|^jYA(X`je#zJO`%gt>FB<Xt`MQ>E-JRllhyzgf=}A1S_WtRd@OB02R7Qh=iJpM
z{gWk3YLA}YNXAv!m)I~cBbw`H3PhF!^I2BD*RC#!e%*Xoa{R)MlsJb7r~g$;|CiL#
zqj0r_^E|JPBDL#@kCIwmVH9~|jO8bN=Z7o)tw&N%Ms*DD5CCuQtV&%2kLZWv(h8vm
z^~Xat{zeAQ(Up&5CFOSdDwQJ1Z<@Qj_ujGH!ygH>fgooh3cnrZ_u!tAoL{zG0j-89
z0r5#5g(N|IejQzQ^7x;<Q^<pq*sOOtNQ6lJ4zdEmKMbZXBgEMcK?oHt!C7k2+g`4@
z3^w;mN};Txk$Ngu)S86tZU$!KM(*a@K2RfCcB*$BUiSD4tju{$|5(I_+NSME8-Qa?
zUhYdF@R39dTzwlicLqpUh&DF%5G?p-czDNmY$BjS!Q`~R^v!bq=F5CaF4d+&=Hp3{
zcj%x0DN)F54_<5>(5&x>X$y#m1*>aiz=ZvzmuIUEMI6I^(VK|#k0bi3j5kW&U4N`^
zdP8T*o$-xfMw8s)i&m_(06|b{6cdZt8xD6W9HMA!Sh3@vF<|C21YD=Owkg_T%j7yR
zueO`ZovL4YMi)IJTjto_V!sLeXa_55$%|zXB6_H=r}@NY^^G!L%nG3UBDwQ)bpZ8w
z>{>E=by%Q6Gg2{>Al%5M`C-A=OnA*vFtSU&FKv}_f2}XaT40#DXK2AVzy58Hubqsy
zlWU6dmIgh;eSK4eP19yk>>O`1fFRA88~dOB^1p9EHL5Q>@pBAOtQvQ8AS_fr@hYBr
zMco_q5Fl8u{iy!kVOs<_Zs9zFXpdsCG?Ms!ZY|ZK{=^(h>>aphk@7;E==$H;2ibuK
zCqUa__?=a<2MshbZlv5tfcsw|iqu;Bb(wsO&H%(jn%BiRG@X^%{m1)Cz9xkR<BrY<
zG7>;K>(T`L@jLpY4fWACu)yz$`~ZY&Jten47qgtj3{<#T!RvqN9Us(<mqoI8JS#A3
z`EZcO#Aa%Kkq=k7mv_fZxj+ke@&a!Vw|XKGrSPTG6QL5I<sg~J&CrWjVgUCrR;3qU
zsOTFOe0DG;8ua<M%D8!iK-dZTw7Zf4V!Whqdk5*PM7c`f7L^B33F<2x3Og@JK3!*b
zSh%U-<jw0kQPw>YvDv1%wH1k_x{Q}AZq11AXOVs9WdM*u9h7P;OR+d@Z-%Y}v;HH$
zNK<<cffNk+QLu(0fU?FjIh|{iN~xCA8Vx(i2jCh76t@Y1LO!?GXJ_~w0CT)&g@_es
zc*aWdxVWMm7@3gek`?aXt!{!TV89IYhRmhyhY1b~vu;Of%?+=b_$E&G;opj>q+)bf
z44aBh2S!wwB&Af7JY`0UJmuR;jRNj}<=hCH|L%`GLzbzIau9H^_EIFibdz_PlQfG9
zj(kZNDHa6p$GsQzcW?IJwRO4K`!~^SV)q`qS<R#ls3-hdy4z;g=BW(}qs4Iudt?>T
zTv$lK+8#zkJtjg6%x%rcuK>oA>?#qg_k|%Ml05*vZKJGZnW?;l)5WRQ%Pzu&NZm~)
z7j)1h??~gnUp`m+nAX1nzwSPH>O`XcCIFa{0e<3VO*<9e{hlOD-ce+3{vLqsuha*5
zLxADicBHGw&W5Z2K!T^xgB04J8><>6@32@HM*{K68Ue-xliHSQoE#zd8X+Q?DsRMo
z^k@$NNwAkyR(GV=_u<yX5E7ge@ryj*B&}M{awKTokL9l+RB3M2HT|j<9m#D4ZZ4I5
z$90NU*!oqTe#@ILmP5L-i+c}Arr?uvnWB~9TOSC>@+@k8;K{Dj#=<UxRaoKIgT4E}
z8kNxB2B5bSi&3Ho2YeLbm|>Usmgcj&j#|<?NoI%H%@IBO2dvTi(-`Gjv5(O{0D#mX
z_<fg3?sBuZYD}H4nf_oxSBngA{P}DGlW=veece-9(*ftkX>Qo@ZmmlWboj~olXN0_
zxjTQ|7R#se>J{|m6_3!zbCvl`zN2>BWtDs}F#6Um-=FTzHkZ&LiZ3wpSxz^%38yZc
z-SaX0>VZuBy=$&Gzf^heU4t_Nb?#J%VWjC?q!IxI(a-sv#-*f4cA`6IZk(QV`{Dd^
z9ZWm;L0%Mns@m*BKHa@>AIadL42jeiW<r2Z_pbi<$pw7M3E7!jasGGz`#~0G^J{Z(
z)1b%zTt*JSy|Dna5qSsoF5S8P8ntbr_3PM~K&KD#YMNhZS1eOX*2M|Q*SqT1$fu%d
zGlMpkna@G~=nyM_=RJn*Q3}C|7;m?q&=d|8#BsX3e!+y~dCjbUVUW8JFuQkG8nT~j
zLHh&XQ%ZA3)K7sj5@NstO9*hEtrU0-u6Oj}ThcI{5CBUP@j6(T*LOaf_sth|nLBr1
z>ZUh6iJt=wmGPIP4MXNIgIiv_FmNG_fbss_?pP(=l$P~-Ougge-8a~DBngzo{&+@1
z9@6*m31UeJTq^<j<YfOaML-@T1-~OyfzzD<iifi5==v8Gi9@jp$YHn6;hHZ!G_kqT
z?~ktX{f?eDEk!UJ$4?b0qZ2>SbOCs%ygXCzeUxX_>F?Q$!QW2pQo+lA2G@ef{I{gN
zrh)T+odBXrOUxu25*&mq;LCUby`O21C3XfdJwXc1;a#Np>*XZt!vW>+HXlG`=QqZQ
zv?IAdNgfF-9)+-StpHT2*K{!{H<2~jd>H>V;FWuCXl<#aD!hmS1GxFYd)!EszjWEI
zl-@HAWp4?{&=dsxAOY+2D^0m8C=x3k0DLeP-uvTqNq=kJHv_NuUidtqAu#C!OoRca
zE(O3Y<<7%(CJ{-)g&U=^*Y=n@4iJ6txV(Z&HI9W=d;z{vb?1rA6~2L1EHSE%1Ix!-
zupo)WgP(tH7WB4N*j~&G($+-_Yi6d#Z6rv63*>;}*-~Z@(&BvRlW}_9q%j;A4gXz*
zC-GYSZCZ&Z(KmJvccoX_>83X$rGNo>jkw7ek;R=m^B!h=bqRoP&wLj9I?m1Ix-x<$
zd+BBDFt-0PFGx^?Eqe{Kb1NG8F3oEn1&ubzFN3A15+0krLL#u4Ke480PX+=4v?yrr
zPO%xszOH_*F%4n$dg(Jk(3vcif=K>jFEiN)aP#<ZO<7AW)it1oR$>Xz7oLc%+5<^>
zj|0~8UYTP763BWW-3pei*gv;^l1Sgo|Gnf<FPFc?Sfi_%YYK}@FO{iTfBP|6LeNrY
zqzs!lzC#_wg5?7$G%jf%7AjPQ!pWoX4fS0muC%N)^*uNENDAftA`!%bJBZ(Fz@pl~
z5Sa>bGY;b-hchLC(Nq?6=2OhQjr}OCcG0LD%kv|yIB#fPbqR0mO^`m$c`R%F%yu~<
zb@R~=!^w2BooqiDx6g;)#52mrxX{{J8FM$?qR;=h<0jwqRjuxPk=Hu@_pYC!ufW>+
z=x4htcO}^+??Y=lE-GpqinD`Bb`qgxVAP~?d}$eq>iiAYmItB%R8|I-NDWh;t%uq&
zK+n3Y^L8o~84iYe$mGN9ljgN`BbFY$kmy4Z;qIJ_e-hPcE|%qf+P**xhTplOOAplt
z9Pg}*9Z6x8+zf?>+(;tC3!R7D@MyB%T@CMHL(*M47JOO*XPJM_b|yz0k{g4jQ*d!1
zw~5Gn=qR%twfamiKsgIl6Y-OAY4o1ZoB1udmnu_bCtlwy#|r%w6D6e*Wl90sb+}7m
zupt^{%h(6$p4pNqB!W%QYNGD(L?vDOXhb@dE=H@9TS7Z!&bQ!PLRSiE-<!}kRlU+m
z-oWw9iA21bi-@fu?Z*yph4>fWIb8qC2jUkGaoboEGr%bscGA^-(}zyW&jvX(oJ8D>
zPlkYzFpopVmXJG=-5c(4v6k+e#b_1HXcx^`#&!dk4YM-nd4-kutNZ5H@SE`x-?$A8
zq!r-OzjZ5I{gk40R0oj7u<AajaOl8zl2!Is*|@-oL*U}|w^aSsGaZ(dQJsb12Jdm_
zzZfR+aGEuVX8aZ{&}x!5q_KIb?BbBX7!xf}N+pV<%Fdw{J@?y%(%k?Li_(?o1om{G
zdMdb2Y9nvOp~3!0WRVs`F~p!T=(}T+rI^Ozh5}a{FVVJK0S#0ijL+4sc_~_(_9qYk
zJF2<c+Om@6zN&AZA<=gj4Yd*z#vK{2kv3Zy<=*H*F4x`iLW~2pc`mJiLIy1-i_DC(
zN5WjfTmCApW&eP2=-kg*wP8fjcJYDjAdjsif_dnfy7vOYuIFK#uNN^kA@GVzI8>}q
z$Vn0ScsoAfVnfB)VY&x>2LMFaMJiYJyk#a7nH8Lx0ao=285SL>KHjgNG(DE0mMa(s
z!3oTOdw@$iyLAe*hNw$g7gp09*Vu=A>ne{B-)YWVxt|Z%xlKamxY!%&^DwqS;sq3=
zu_u(RwfK!^@~ux?>jp@guxPsZ=eOW%BJPd+z_tNge*sf-W{_=E$zJglpm;$2W6i|-
z+yel_8Qb2=4180($y}n#(SOgK8|TH-7?+(6(|?n&WfbOPej=&iHfs0%karpnwi|3`
z^85*)@$``|)JSABYHc1=Nb%0*>gXZU-!!i!93<4XF+0+nnQ~uAS>jUT;Zlurm>6lu
zNxAt${@gU+hbtA6BX2;O6>oq;#4_rVRAq-h<4b%2n3oMHA)TWdXhrZTsC~GL^jSf3
z<QA12shkn*z1*DlzYU`iS66v~gu?EirxaHBgb}$mSPpe_;Gx62odd_B>dj|9hYnuX
zRBCnY7_kZpN&G=mmMAinJ|+R>L+CU(#%}q^2(o9|`%Om|K>;dEgQ1whDhTXU{xm;K
z2h*GUZP?@{Gd0PG`)Mj$P{)|{I%W4yy>>8Zx3CRRPnjM5$REE;T0PAs#41@~a<p;1
zS$)uIsgM8T(D-7k-hGsfr3%|1?y5+87#O;go!+rVSll`Mr36j5)tigpHmMl=o?;$G
zn5Zk`xv6+8^3d^Xbws*K7lr)IBD&OV?+SQRTyWsJV$CPYAxglPzX<Q_xSg`P<?z}F
zMzByHfdS>ReTy5<;DgV7NZ~FR$b2r7hr9ipDx-0JGnGyQDSW)}sP8>&<rOtIniiet
zCDy{mgNIH-<jt9Li=uH=@rOYQD~xTfwL{`xZpz3+Xu?+*i(r_7KqwlVwikRPf0+|d
zBA*1l>|lGQuCp14Gz9%XStg6SYqN{Ui+os~LM7Vd6;*VF@|nw7x8WpK!xusu*Tb{W
zFO>x|j}2Hr6YNsS#o>~du{BVfA(9;e>O&B^esAHI1Mip+KOr825mo_avCDB#$7nUy
znisF`E1b0@6x0$D>zAnd$7{c}irICw(TY+lC7k;7&22Khp=>AJ8&HE9znbLdLEVgg
z)-}x8rZZUU!8QR3aw<B^MQU=G;6<k~fxm#!#?mu#AeS_*@x1@ev%U^v)b)PQkz&s-
zevh2MdZabJo`qJD_rVzk&CuNrvUhU-Llt2e+K?Bw^k~(&VZFPAv0p;Z?8C$Cpij@y
zG=E~MR4>JG1dYM_-d3q0&H7f!-w&VTNepWvc2{)s$e@4n=qPur|2*Y%V%-olF<LrT
zB5n$smK*!XC1}y0sJR$|2+vWDZSl&rJapAt0(sz1DR?m|ay$KEm4rFPNM_KZ$6rL_
zHJso%IZj(|dEk*{zYal!cAUGH)bi$x);w<?ap0_VdXgL|;6QGVyUJ&+&60beKkSN2
zG9xZ3jh_kH^gW@saGtJ-vrcJnWv>0z_c4V$XZ%2%vPsa`@37n7H{shLfcy)8t?B=-
zo!dd4nZ(&z!EPNB*l_+=;Bo(hg;u?``fyXL?@0n944-*Wf4SUFM%Dg_Gf-G`omLY`
zx|s?Qc-_BDau#aXa2h)iHC(J(t3T>5my~u^J*yc~m64b-$7N@B>N%`yK)f@qC|Plk
zfq~#Jk>A9f>0`@u2aNWJLmeZ6U5BzbX>Tsme-gyAR=*ke%eVKb%?Uqy19J*9%7%Sz
zH^ek=WXb?HzJ-5~w-ex-cC+lMAGuwf`eUF9r2I8(>_+$iYfc2D1|UF5Y>zn1Z-sP6
zL+B@sp3(a!@};Q1qNmoaDUp9cP6KVHzm0-DE1hyh1KsIpUfwF*mazvOIls)Md_bOs
zjq-4yIHh_?;P5VCxw)ZUf42M35H=I!hta;0?B@vD0G;rGJz++zL93mugAV6Fy~(M7
z%Vq2e42g?EzN@6am|j-RoBp^Kbyw%IJi7uEgRAztq8a_nV{?m%u*p8{B-m-3(wjPM
zo0sH%C9K9^YshtZgM}IF=G<xt0Q672PAeh(x2g1U9v^czIGhTXj}+x!eGrA~epg0F
zNoe@nbM+)L{BzPCrxPW(enz;KN!{MK>_G3|&cc};>A{<Fl}tHfB8`K&NAjY+@2B|K
z%Q{^t^s~pTO40T1gLP-CO2Qa;@Hg%&7-3ALQn_#tbEtH%<gegieUqlhX&g7g@g+i%
z7)=FWokDtpO0pFRRe-E};=ddt<Z~c|c9b5eR5lGWvMBt1;QH=xX6LIj@v6H#SGZzi
z5dlL1i!vRDd@rS4Xp`D=Hoyg4f$?g?&r~ujF!!GIZ^Vv9vWEi&gwqsVo~3a$B-7Mt
zb~kU{Rn-dcXI^3K4!Z_%LXN+{3I`eaF4N20wp>Xe$27iNiL~6lTdLf|q)*(Wc6z1M
zhBd&wL8<ay(ECv-Z5@~pa%!2=XdYKDRzyZ`qRKFXrG3_i{`^n%&YJSn|3-V*n}=7O
z9yFy!3aXsBx9Oao5U1Vh1Tsp`;pU8X8+;<)G(V0%=QEI`=&=UkTO(5J&*+E3cNH0D
zI11Vp8jc<)nOI{ms%YHH>~K0X*!e-8Fq%<%7{3;4mxLbgXmDKHppu$wSR!C17=9yS
z+bs`|NFtB}xqiXrV4+aH%@Bf04;It-%ycBdt|UWkzrPLmn_3GHYZtI#lCd)wt7G2F
zeCl5TX-c^Tp*q3t)@*fdL-mvJXw0v<Cx5Pv5t$F}QJ8axOt!mX6E(mvJ=5;3{&Jf!
zv6Uxh+thBKi=F?Jdc@2TWoXxOyfyy9d>t_ePNv8sTYMst(-*PPD}$y%v&0ey`Bl#=
zuu1~UbPv<dr(cmi8YcUX<&r%p9UBKfWwx-_k@K>_3(+>JkGhXMjE4!|fO0?s{IyQ+
zqLSG22wxLe#4(;o#y%R>z8?u%iK?+&5OG=L^avirz9fx>ovW}kF*NpOB9#3VpJxLH
zQCr@QXatZ{mv7m;6q@-Wo%wTaCHuJYg_212RGIyg4-T)hveLQvA79t8CUzg;Ls2hT
z?sndTTbG6Oy<#)P^g0{rlf0>NL#npa7=pH5G0pXW$WsJSF?5_^g62lOwi)DqeOt3&
zpE@|wJ<PjtOu~?nL~xOcv$P-cF?JkJjn<@-mjAG{g9!>QSrMvobhq8h;As`r-9i0+
z2*G3R@FF)5Hz7G&G3xL#$02fE=N@3m47UjKSW%EsRqP>Wy*`!UW#mTUyk&&Uxjk}#
zakFvz%kXVP-1ASMyvw#;Jk7`|Hp4KV2va|ZJb7YxFCj9s52WDA$*f7GY0D5VazC+o
zi7R6ElX#!37{eP_B6yL=>aabm{Zoit+~iLX1BG`EPws=}4I<lBN>_+H%o$ZX0^2c_
z-7nF9L|?3QG$@IofRXQ6-8;TV5ad4434>EOka!@$VHPOr5;)jKvLL-3tXEg2Dog;S
z1CfGB+qN4X_Ox4%A7e=t`!i|<G%I<mh^#=xqzmpPW(;N^zn*el*@QFp>-b4(^W=uw
z<OPY<vL9HT_r-zdedm^PAwnQk35pzy;3Yc?Qkj$tNk8*Uwjh#npfi2-O@Q}TYd?zu
zkO&ICXu0?S_s5ULaThl%M>TY52@=$#A@pN{J}XRE9D4I6@Px8P<=V1<W&PP|PkR?r
z=K2@6Q_4${N>P#6NV>Kf6ll|tw8$W@*7FIQ&h`;71%k85Brl#M^1xMQm!zBv_!(0+
z4dIYL&^b`mp%&E4RBUva0g)@1{^l!jMtGkY1Vb%UaS<*A$e7;SeHL<tPjDappZqye
zW~RaiMZy*Vp0H!%joi`&J3}zXyZ51TNr)g3I0K}U!Q8?FXv+G&kuAQs)pI;(8QBe-
z3oFUh=#VH#tikzWsyPxWw?rW_*eMF~0<m!vYnO{$??uO5=^I&kh#Xu0`P9X4=lGo&
zX%i}-iXW-Jnc+ZN`nt;0!Zd+R*7zJg6ZHm9dxz5t6awkIXKOq`iu0o1s})Z>G`2mm
zD(aEf=l#MS^F-+MG&B$=K??=N`(R=v)`3z`DrB*vzMlE{mdEe!mR&pvdByFW&@KO&
zrCZI5&J=s&hoq@*P&w^jYc2JUH)`$BVAnc}t=u=>zn|FP5eG*nr3uB5+8~Q?7%;7&
zv9vq~mR(VcM9+iXEN9x~ZK*<z{`~O$pzrdD^I!N}d$b--$pwlpl*%r7<puf4BjTHn
zMmIaNsvPF1!ao^!iPQ}W^@-iZD$+({@TG#_b}%b9Ljz(|?L=PM<&m!}B!%ygL1$Bo
z?&mIi(Rq|kWNj%4?Hf6Ydcb$ljob5Y5$nZ~?Nmz{S=g=om5ZiYCqhnTlH}R=r|3pX
zA&AEy-_wkyL|^VFLEoN|k~Q!jZXc%BwpPMeho~nf$h2h~Seh4!wB6uj(FH#a6`c#5
zkQSs0uv`W%Y{FSC4oqb@>3-hFZqc4DVv`r=4AH6Gx?dSu;Qqon^-wD+bUAT8b_(Um
zZPWS>L*vRDi&&F7PV8{q&zy7ExkEIQWhp$Fub&%klEFj4+VV9+6eh^0tySKtm;qI_
zAT^UM`Tc3r)b?TBUkosKg<(z*&jIbia=`T^!as`nvh(E#pLT{9QA<qOWD+Ooy>oSz
z6X;*zo4}i`4eUty&6cx8K-<re>jj|+<~DO)M;*m^F~CIVvB;%5Pt=pY7)xb;yv^bD
z*#8-mU+@P8BsS8ggSo*#3MaxnJQ$*_{}xeFHQz8RWfK3`{2piire6QXeA3A^kfi<~
zQDNXVH9a)36VZCF=P5y+1<ldxrq-BVN^wFfDy#UzC>GFiHl*KT`wP6HE_?D>;cb$(
zJy8`R5kHT`&KUa}msRK~#Y?+&@DcESrlTz<$A^!l6QE<lpBWpc9$|yrHQ7-z>*SZ@
zdHXH1`xbt@&gJFt|7j>ydLBYGCQIljG`tNz>9Ns-z@q)zd>;8pxEo}+W(n06Jko%_
z`7IoZzGCq<UDmhg4*y<K_kfpF&J+^V6Beu$>ZJ-|VM0@^HDfwR!UIh&v_B|uNj6#P
zC{rou1^iX^+H^_b?Ff5mH7e@X41wYlMuyOO_C|t4rwVAx3Rey57ttl-U_DMKI~q5&
z`@egNbT71dZ-(?(svxu-9VA1pMm;3~`YSJ^PGm$P29K214Om5!78MhX3s6ZV{%5li
zelm+j`j~zm7H*<d0NuuWsNj<Hrb09IRg1b%g=ju*Xyg?QopC|RR^r(A^@*~RvK{F0
zgTguRmVy^VI^wyKw8nM3lW-x_kTNphDFH?WqbUDAXEuIN^BbZvmz35GLdLSXvA-%%
zY<xm15*8dB*}+zE^qloTLV+ozz)RSN+^Q^}ksdN#F7ZsCaS^M;{@*vPuA49ZVWXK0
zx^=j+jJSL3m)98REzWV-ca={m?49Zae5a-S4N4oicBb-^QNmr;{bA$>Q0TJ9;j>Y#
z{%|eQzvdy#)<`vOGY%K#_uTR)42>uF3qsr4xnC0cm;2#i`8Xw%zhNPxPfb82<J>S*
zmQ}%gTj-B}HUG^Fpx_}D4KhTc`uBw}C4q#Zlijg;+YrI6!yNVLPla~&5@?16H6%Tp
zkYZCKfZ+hHEXAzGx+p=wNwAp6`6rvcA)>M_vh_b|PZ^=C+wuIH)s}k)%xKv?d<bL|
zu#(uNKZL&sL@`Twd@dWnE-JR?4Sr}#NeEEBfi5gEuLK<`Oout(dcCHAcgh~OcyS|^
z$eQ4__?X2=*yw`9Am*mb`Gb|04tFdW9UH$fbo;ZY>i5f6UQHcVyJY<Za}1GEU@m$)
zT2LiCTJ|r=HFD7M9M@gW3+%O}9jEAK&u&F$YTkn(@Ya|f+B9v5oba}9td(+lXL;b1
zBk7RkPV%D#wBs^`)mi$k_$M+(Th^%L1y7o(hN%0|C+p2ki@vksz=oZXfHhP3u?Xbl
zBSvu-Ybi*xhB?_Gb8V1e%%!fp`pUaOEQj`xNx%i|&Fg&AXmiceGJnm(^YLe;LDzkp
zdCx@JWBMi#mC~=D{wFan@;g#D+M7~-$DJc!TdMMJvLSQb&FdWJN0UC%@v!x^L;ZlR
z3+DSu2uXyy@ceQB+S44f$iDYwU~EU2_s1*tH!%s0Io*8`R&%@lY!$22vi-VwX8xx(
zmJ}op*57E#!EbSSEK=YfQzM-%zfFCdBNbqI{sYc5$Gy9%Q7)mqcSKXeC{wRKHkUdX
zz^SLM+gj1F@h(E?XjNDHw@)%m%XRlhKjw*0ptu0@@IY}B%((mTHLP-J=^HVyretbq
zx_c7+_9&FcxMQ%rwUki7<s^nFp(?P$Mov88zn=@yWrc{iWX9ilF6e0aHH|=rHt`kc
z5Z~LwdZ+tcI$J;bUn`4$J#Ten6FefzXq??4OMv4iB7AfgrYNNX<7h5fp<I|svWqg2
zA<S{35mro0<RLV4&g}bf{j`!WZ+?aQTa&XzeWrnaiBf#i1l>1V)By%rN4$EO;j+Mb
zYti%X@w5S~9jzaK7tZ8K-nSw!sIIa^$#i%Vf0X!L!*4U@{-X9jYd(;Kh|%M&By@i$
z>?_U5z}tOvY7CvI7|0D2F8h+4Pe1}VsQOYxz#g76c~?Gmz%iOkE8S!@HH~xD%PGGL
zMVv~@&*x~(nmN#K^4OC*kIAt^=dEd5Q_gb0x|_Mz36cD}#65}bM|o~@WyIxy{u+}L
zDIMw?>c(F`Ec=coIPk@L2E%D3mqR~{aR>hSi%UPx*YY^De7Sk#sj-Xr3yWW&RokPO
z{}FW-Tv2x60;M~pr9rww7+@$7P&%ZfI|S(tK{^DayF)}m8l;ErloWv>h8~9Q`}*B=
z*Zl*mcVOns;hg>KEsQ8yn7+$__WlY#mY$8bSPwK`jkYm{%5P(f8nX2teD|mx6H1}?
z=T6Nlt#k?a;#ycE=%FKSer%Zo!q0NmZ;7FhG`2Kyi5i6VC7gNZgjkQJ@hHu_=Ih+W
zdudqha|HL>)Rg~ZZ9mJ_9-M7S3ib{jj7wL5PKP=Bpg?c3?i?j`24_;AZjQ!xMsX{7
ziWq5(p|_(u-O9=mK1mq~%q}@`PEMUJp_s&kxnM6J&I8nWS-p5M7mv?E#XjiPCn_1B
zo_zjY75+Sxen99o;2A%fmd8L~6y%^CH`uW+=<9YSy`krNAjUg4&PB2x5&V3a$Y|r6
zEY87u3vvY$wI%+yQT>hUGPrI9Gr!#f<rzxDReleaE;0XU&ZB6k+Py3-=QcE~<lK9=
zZ;+q!JJs8-xn67Oea?6kV*IUTvh$a(q8+0-bmv^BU+WMvo1i!fCsUEKk5k{!RDa@f
zPCI-ISpCh-6Zd_8e+I(PJNq(rWvUi2IC%3stC`WK$Q0Xq^%~oJvt&lJj%#D9Unt%F
zpf#=H$HxgZFFFy(k5-w`45j)KA|_JgJ^ewWn|Z7cXQLlK{)xQ@F2jh%-@CmHlYMK!
z)offBgEu&m=)(|SsZ#nTlMJ+O?C_m^UZIq?T2CQsx#`xbhPQ2qR*)Svwryp{JeN*x
zIy+NPc}a>w-+DP^MW%z(SM}X)TANmoj?OZKN4{yv<2e`Z(qlPFQh56#nUv3R6;z5a
z{n{rTt!;h$n^e*LPVh2kkc{$`;4?DTs%M06DshEHqxf2yg!vL{Dm?0~b&KQ-QfKOf
z_i^>oJ#(R|CmWi2rTr?LS`;RM_?$Di1j6B{WxHBtGRkztFk#6~S>3a(mwdbvdaILu
zG*Q-QA6$9Q#E~zC-)I{y8?_A;kgt@srGr^it0v<{%6}^Q_JcTGJ2>iyuB6|+z-5V<
zeN6DB{i_~pkgXf&afX;YY`OIz88y>BP@*!BvVo|U{z(krR9=YKstD8O*|x>3KN`Oz
zDYMrvjgt@P30X=-O+I`pmiLTW!mC|UfSj+?W`UgI$N>*?Dl^%U%Qk6v==zl85A}4$
zJ^IIg7#qNekzy{tOPydAEpMO6R(9g;o6nkvCXX*4oN1D;pzI&yopVH|`O5?iShs>S
zB2q`u6p8+Dj?|=XzKt8LPOZpEqhRv`V4+Q@*Y}TY13ng%*Rv&x#4K3~%{iGR*Lg7E
zG0D9c_FdN;cHTDC)6~d@424T6rp&bDnR@CCF5c40D8ayaj+mw~>wPcPJ=ofr>S(1K
zLD#n*?_IZpVg2^2wr3^gBP<<p$pikZk6+W@-M!EooRK)-e-^&0Hyu@-*Yg<7YwnV&
zzDHJ5R2s1Tfi6fXxfgF!P+6ey$zO8B#~%8jxTNq|m7Dd5@4LKNj`U2M^#P&znA2bc
zhy2F5((kCekM#>mH_>{gvWfsC%Ar@~F<8Tq?6!$e7E7sN9pA%gHWK@Ck`(vGIqjJa
zYf6e}hx!?brP+qtJ3k(lx%-5@)cTZ_?>R49@(9LrBKkcma*N+#swccjTc(tMof)O0
zq^3#C>dApFnII^C6aM3NPpKVo8%QO<q{-EhW5lJ_A~4>tX?@F~_U=uUTX+Eq_-}(a
zqf&e<-0myfj~$6t3(9}BoxfiIrgM5~K{=hD9dWgn>U}j6DB^f36UWy3>dUN>peD7n
z8lPrmg<+a*7Vl<E0l{=&Kz8ZLhG5-H%WaJcTe@yIm{cXnuHq16q{K%O<pK?8gpYo6
zZJTY3qD*K3jRlH*7}p_=KYTaSp!F?9(QZ#i)FcAEs21_^^8Hb2BN+mGwn#F5$pv7G
zITIoDpPrkmA1!%1?N)h)d8^qfPd`SXN<X+o@~{7&3joa2@WDBMv)+4@{2%NHV3WT`
zLQY9oMfN0PT>X{k`rYs%Y;h^`1s=qXJJ(GizuI4(a$feS)P|JS>IPO-RO9cuge)b|
zxYQ_Ru3uv(-)}FV;V#*|<)vsqfHa2m>GWb++CUmYkuOdCzC-2e0ICm}PeG`R<=Z0o
zJ`Dt-N|&tsvwLc#`vDU7-TA|&4tMjZtWEBQld5N~=7V;Mb~b9Gb%_F#!?6RDq7Xnj
z`$MQ$ECqQj44f-O#yCCJdk&`_(;VeOFMk`od1?9HSyaa^dl@+=A8iwRmHGXR^zx{)
z-+}}$Tc`8(p?%|gy@~PxhBTL~GC`k`HR)+p3MyG2Q(F2SBfXG&z@SsHUYX)unWA&$
zn&*7;GlEmk?a@kSmiN9bs?nBGC2C))^a8E>oxYqLj4ou&WJ9RWrJUP?Yw(@AZpBAK
z(~h&bA0oo2mm?ykzRzlqLRnRFpDCzPS~|X#uwecDJBfcm3WIc6rxE`Qu+G~!HKC|l
z=K*zfN1vvTJhZyT*~>c-zuEphs@)?>%|`;2lgG+m=S+<{?hNk*^q%|2)YQ=8_mIR}
zX>HuvHNR^c`LfsenzjIWYdT@n;jm+0m*NkYrvGJ=+6YB@dCTqo8WDIyrRFBlPrWJK
zN&RQD6#OMws-Eeea&JGmea6v}igrz^0O~C7*E2yfr>V=7SDq|6nPfF>^G(0AbhBe3
zisD`mNg>87H|hmK<;wTt8%-%TMJ(<6`$siDJ(m_g-*1xDH!rNNcw6CMzIP_ZA>~s;
z;WtAhj-pW<M(>>%m@qvH@MqhkrarEnAi}++T7*^2chpk@KY{9*uo{;*NXJN{vjxWf
zKP>LodJigg9U_W+BO}j_T~ZA--6v=YTCbea2(Vk>&Rq|`rNiz1UZ~vQb;@|G!V+G*
zIql`DW+8~97Onn0Y8_2>a$`i+MfoN)-Kais+ci#`gNHi5)F8~333J5whg3PM<v<*E
z@nBpNW})~ETki|peZ>o3njI<Xh%}d03WEGEuge#k?H}CBxTjXebZ*~-z*}(Ygg4th
z7kdD@KETVVGc&aW9ZXO^eXE$BOg>90Ia4oOZ$Bg3Tlt!;jBIx3OJsT)(QKVFKIWZC
z&8IXqsLo!B>aXrX$t97m18l4Nw{eClxIs&z@y378sM>F@Np?#maSrk-k>10Kz1Mu%
zxSLnq%%|lks^;m}qtizqWLYvzyma<Y?^waL&XSQpLtNq<HVwI;JBmN!B3uBO2ydRZ
z`)@Py7%n(w+2N?0BWzsv+;8^*<I#V7&!-5Dvnm()$a|F1kl45t@8n!epqXrW4G3g1
z5enBvdzJ`u4S-7@gRGLMXG~J=j9-*sD_Sq;)Hr4#G!h)2yOuBm2hnvi6H=8KRhT|s
z!bc*ChSM53;_|@)aan?lj*Y7|kk7Od;ln$|CE6D2FPUg7#lxC0KUoZHzEMZ?#I(XZ
zc5njjF1t|)@h-n!)%HD825IkQD1G^|w=#J2Adw_UI!v-l0)>JQwh#f;<Nk9>^@cYI
z&~WvfO-rL0^qAed@7YdG2H!z-w5;upQoWpVdYfT2l{44zyR_b`#B>4h9yow~MgGgL
zf&s>g_gec$*Y`??HnDMKJ{yUoS2*ALLjcU~kMF3r`<^<+I#Vq7GoZ*B3J02iqp8op
zJU{CdMCL>V1Wxl>uB8aLq$X-wGIU-4;(#>hq|eEc(f(H07Rjpzp7vAx=RyS9#@Pwh
zGgME$4>7JcK-41=pyH-4a@3_V)ra0<03pq1ewT+-L60}PNrj+(nC`+9nF+VHK>52)
zIBEQ;jvii~GH+{N7jfL<<9tmJnb)E@rf8XdhQ$x~!+N#xuQC!Fx{i#d{USk1Q9vP<
z`DrxMRlXxQBObBUzq?WCL`fjJ=2Lti-)VUdIJCk^)If}m0CL3f0Hl|h{#^+dDyQ=n
z0t{!~+JR`-DR$cZCm=8lk-9r15dp5KoGp#T?}4ZGeh-TQ{4=+riT{L6H=h}6@-~qd
z5&-czcjK1U$FZG_&AnbbIo<1~`+vMo1e0&3BD$-|DdUcH0FWei`82C4iryKrTC7Nz
zKw-Qc?F#ir;6&ajC5{*K>oJrS3NJq_mFI_7|7p8zF1P3N5vaZfc^xj+_LCc4FGBt2
zDcw#pVn>Msrwgm5db(EtY}EMppIGKS2Ae0%OTTy5gYr*U5-08MEl-bk4-(S=%V9<-
zY?pXO;CHTlvep3s&>X$kE>13g9pi!;{|zEGjrXPervS00b$vdo4lxH@f)l`tt}Xtu
z@I`c~FAlcT!Tf9Bv&LR#rRQ6_l`_tE*-4c+O>ViB4GGSwf-1r+=69=kr8?9m^K<VB
zwaRHn_HmfM>JTw7p39u`jp8K%(<vy-LxNvja@0Sg2GP{qx7q9w<(IM;mClpJ&$jF`
z?_s5^F1q@ebnJ6xx2MifytiX~@{s^xiIb!*lT$}~PBT;m+l$o#nyRpWa<ZG7e>}wf
zCPf#PB8_Vp^%I;{qwCrwBklF`<jvHx66|f4JeA<$fc;sJsjD=Jm`2v$b`)+KfCa!%
zAXLCM399b1G_uCW6ReQVwBmo{=l#mDRq*AZpJCPOXu0i_!_PoH9nLxYOgON4$is$w
zh<f*KD_MP2Idr1z<Dpj0r^lO+Xkusie5tFuMIYeZ8mRT-b%M{lGU&VXwm`Ml-@vQd
zhs%{aD`WeQ8f%9yl?~0wCscNt*Ze-{`)q_m06vrYpHK=8AUF|UM3&jX|D1rpXBFGI
z^TtNszBDyJ)CORt5F+$$LyQx+<dLVV$vlSU?d^v!Fre8r2i`yze}v**gWvsg9+lfm
z-@H@zX$7L9VgLB%ADy@RrH{=wA{ZA!0T8ovTj5cz>9{+AGVQ&*&Y+!4+W<{&n&}uw
zQMM|HT4^Pse{X6i7E|&3)Q!$(D&(I>v4*cCW2GN=I*A*&7)V{yUyGW^`cO>;0K~@=
z<n5Jxqh;4HNWv=YJs`9V2<ZzL)wk{O_;+qj@hp^#dD?v0yv(6oud(qNpUjx@=uUC`
zkT60KP>TBh-~+P?Z%9nqZ;yxqgHr2-`iByGL8ZNOy?i#pMO-&0pT2H#&#LnQ`lJ8>
ze)FyRNlEH7SX~&`Z{RmGKsMn}S+#@GyZ#U6TNN}h4<|Ev%k%57PAygqVi5#9KrTTg
zM0L!9PQW4z_XYsJx9CPsx}K!K_i%_gK)77Y7m15kY1~Ap4crYhfw=tkMS<V^FNE2A
zT<u0FWU5~RNh*ez#_kF>%}iFr?c@_qeGRB*5viEqMf<_rUbj)c-6N}hH3|LUSA^El
z&8a%fr@)G26)f7|4J>Z%=pims<QNzKbjWF@A8+{ASCBuZXi3?pKpb%7$mB8U*D*(k
ztm8IfW=f2Fa`ksFZ&mr6Kd?wyuZWa~?Rg_7gQQbXrG28(QSzAB&UaA>!9-rQPO(A1
zoregM@eJi1$u^DCKGOrSHg$_39yd(<ne`{&@_0X)>R}Ma_sh%QF22Ls<lhZlb9-oH
zFqi4OUjwqgE?nTPltmqR&UhOm5U1I@DDUi=pxJx<+E$<fz}fWx=JKNp>dx|q8vK7G
zs$BEOKc87YTE&FZ3sW{vDM-7ZPnD`mUZfnbG^zGLAZ(Jd&u=lG4+-8R%6VJ^DCwc0
zXAFc0Z7BA~&o9jYo$pKIRAR!Nk{AdUQKa>3;CZa^dU$Q(f$vA{ysKrLj<fQy-bvit
z!4Z!JG?k0a-EBuWFbyY$jKdD012j-HXs|1qB&*YPKR9?p)qnAp8Zcld;Km8H|0I+=
zPdsqh4^hODkv?wS%`0@@ouIQ(PI8+XMp`rVU{02jp_;Ru*U`HO3eJa3|LEBmy5yrv
z@c!ee_fH_&3%F*FPvN&GpPqjCzc?MRFakcuyA$-c2~B`#uv*I5d}wnRLTQ0%SM_oM
zNBSNv=QHI458WdISB-t3JUl16C^tdU^FaXD`K^xy0q5;;QJsNz;?5c6aF2MJmx7LM
z!)4}x9JEU3(~j_t)Gb<WIJfphSTsrRuaouz@RHXrr}5eM;tr@!C#}15<*0w{NX|sv
z$vso1<!Srbwoo1+gzyaMQqu})_ve9xPxgFmz}0#6#Un(h9pI+Jb#x8-J$Wr-#qibn
z176c{L>5zR;=8^2#lM+p`qg@%)F)K(RVG~i?D$_YS}+#R82H<U@W9k^#Y=tRGQbo-
zyzuCOyu=;_Ig`-_m-JSMz#yT|Nyin6I6X7{q!4KAXb5y+OAvL?|G5|#NvVFarVxmr
z^WFM7HM!$7(i;-uhz0V(7?*z7Q>T;vtNoZ{{ENzYp!_`iZ^nlsYh_w7)f&pVmH^fC
z6iaXu>Clb(E;81$h^cRy#qG@AE1u0R<1ZIlv_kEFl(;OQ0z0;HQS!2)7yA7Usli$x
zfRkKxQ=EDP@OUvOF{$njKnJ(Z{<}prCKg1hFA!%u#6szXybc8LtTHZ6N;Mi`O%rzC
z5&z32+dmeAG9bV-9FQcV|02iLfSnR8OU)K8cugq1=`xAB_V0p=1O<Z~V`XE9*CtVL
zN~6S)kr@k1z_Z&BdA(Eywqc;-nOZYMY=dNO8O&^@!nB*~okzHA(&6VTxu}FrnQ^Z8
z^!NbTG$y~2RcH@Oy+cuo(GMs{xb6=g%ory8N8mzaF=<J6n&(UK(6-WsahH02As65+
z9b3!~o7uvP^^r&yqS<m_Boi~rd`BcKN@c;iLm`OX4D3p$6^H!$Z>1i{5e#`4=cwXH
z#*IA@)Yre+NS-~!Y%~I(IM9xa>3lUv3v70(sWbWc+Tpz}fZALFb;?*JcqY<OHYtK4
z<ZT|d8Y1enZ!3YWlz=j7=(%N1{}6E`{l;#&K~#Zh2I%EuVNVeyp%LEC>AqJ{!&uBw
zuC6n0*;?aQ00ksul&|AZP|X<GgZ7sEgj0bZiY6JZ*<DSR+!%+q{O_yp)(c2QTE@L4
zFQ}R-0LP(ua2h&N{)FQ|6NYKb#(EU(%w>?`M9EEIfX8D5bL(Y^bVkNY3gViZUSjvh
z4Xc7Ym``xq*T_p3F#2O+=U1_p{6rNCz~*nml8#np_4OUi3uwparg1<}H+7!?-+pXJ
zbSDzbdq?YnL@~ZV{;7u$4|N&c1su_N<j@|{MPcG13nFOy%_?(bK^)xqN{z<xqwUvV
z?vPO`|9#hmTo&5!9>ol=Ug<ce+ptzzBI7^WdOJmc`0@`v^K!y{uFqz4d_vAo84J3I
ziHh=^eGC@&=kY|a9_s7p)1g!35gRp2fo?E112m=hXO9u)lR?TfCLC)LRM0PBU1vE=
zjJl(AS{6z5d!5M?$*KFB<=R|E0RfU=b-v=F^m1RXda&f@F-^tgH(k>w4PWaM#~?_!
zZ}*W;^h}*R4{D&R*Ub38Fw4JMq4?V3y(J$~rZ2)=hYZ{B2iZG)t9y*QLwo-v;{RCW
z=?Z-9vgKj9(9>jA*5*&ADl^`z!6lyrxo;fy6NVQu|E6mPy}@8*PJY4<67qGLQsiKi
zu*(I^dFGZr79#=z+ewQBs*XCz8RZkRWh$9j8JcMsk*oqc#X%(59@^qfFTYaGO5Ov*
z2P{8%4u!|#%KFd-Agu6c{93dC?Wt%EmxM?gyzj{z`F((-0*yy#3hcN-KFm>`lT@};
zaOStfa0(*H>SO)fC%y=Ar4rHf$>Heh!|UiviH{uq1yz$^WeuhiVaZ-BxbhczliTS_
z`AjJOKirsgEN?(s+h_QnFwxvlo=qfiR+yS-SYVI_YA$4zj7k9NKCw@z>U~DSN(gcG
zQ8sq6PS2<Wmony+5WB<2yL+TxT#ESb%8XGM*1p(zsOYC!F;Q|vT(khKZ&3mC^{Xbc
z3YPNoT>K#Q`cxl_-32Z2^H`1_eHhKNqBR;-!rBD(EiLx6G?c<ygH~gUt|n9-^Uo`5
zzQ(&-v8GWcP6@%NL#RZn%dxWA7zCg!RHB`)C-M6G@M2RUd>5V>PWkB?a<j&L8sHbE
znuO_ws18(A3!f-k*ruhVtOBza!}jI5JLVDzX^UaGi)g#%Rw}m{Sm*gv#=xr<dSS%2
zbgXQV9AGh!aiEmlPJ@}Luz)pXE+X)YK#pEZ{Y->Y>?iuy12LvCvo~Xjm%`amBtmI{
zc|>(iPo=j64>bY`ZB*FUP_5v{Vk6}3#7_y5ek^fs&$*C3jkl=ymOom26qH-oWr90u
zT{gM%(HtX(Z%98_Ml=m7KlvBjC){k-+f@rNOGOX1^4!n*_JBV|Q~7f|s7pQc-6(>^
zKR=e!Hm#rgxI2`{XL<|HAK19O0Qf)qESo&;eCh(!Z+T(k>&jy-Z=oAHKMpdo_vDsU
z{$~G#w%ivxjb+bhCzq?J&Gs>`JgZ6_j8i%x96%F67UXN$J@$X*Zs9{DwrO(qW5;pa
z-iF<;Bhm8OoPat1s;9U!jtAMP4H!TIM+KS<WGA(E9WBaQM0^_*(3_P$rE!c+c~_n-
zn~5MaK+&s1N8XR6(Pp#DT3Eh7^~l8Byv%}dRK@b_%-o=fH`ysU3cv!&CC64!&eFsK
zdl!ipk@iu0$4=sO)^|6GlZcB4g!e^f;CG)SUijWzbiQpQTVv;kdORPB9c3~w9>4uG
zSga}oSv?y&IyPhaM}^ZpxAu&0j+-Zzk!spnJmxPvJCf9u)?e3u(!bZA)Bo)=tuI^0
z)VCey|C`jIjpqRED4*L!_vCl$25>dsOh0BLKfaIBoy@^UYYuY{lD8$aLp22dc!4y{
zjeg&?kbXq4kFJs>EWkbEOMJynJa9BosAmV&nJ;u%9*dFr=zDCy0=JZxH~8U$29E$E
zfqTc*9`rYUZrb*be<wDnjS0c<Nx|Ma9U_VOH0vT00H}DCg<ydn2v3OJqT`T;Sl3LD
zE6v*>L!uA%sN(lWDP7^%UPFt6p%<APhqb^hUYjD8_z!~9TR^?{D=jD5$2FIOrke!A
zL$GGb=n{_ofaTJEHb5yykVtZy7-<Z*T5s&Vi=!awhTt97=0~<Z?yYtF8hy4V;6*Z}
zIioxj3}zh~?ZKo!^!w}<Wqa_oSlH)|J-H4E(ReZ?HLvG5ylD-U#rGiH<yv}$HWdg{
zx5Kp~q$6&B2g6_PqXL7Ak?7w1Nv6+jZk{g7b)+wj^x?;#Tj%MiWSYeE48=q;Q8a|L
zb+W~MeAT6zX|%~>zNd{S7=_=jSA}CXP<PavMpKZfCsAo1_xC_zcG0u8BI%Hxwt1`r
zisX=QlZ1o0pz6{I4WAl91?@!{0^oCe=cp!S9~>n}PUxWdL1h8^BMD7Nhw+7MYLXZ4
zuEI3c+x6kt-CX^IG`E^7)hUtQF;#Zwk{8{UtTIxYm+X05PEjGZ4UK2DC>|7p?HSsO
zDDo%R-zWlK8PY1vzpFFNEZ@UKlKNRS8J~l6(|s4&UhiIZL!T#;E|^K5S-)oq{?R~9
zHDFS3#0&jRaNHvb9d8bMN$1OeO$eql7$9&j489a1j2#T4a$iT8LniFtX#oE~fHfY=
z+l{8L;+$_=p{ukVYjF4q^55TeTthJ(DC#iVEnuTccR`CaKnYE(vLC4r&pF{;?<pNW
zjQC8rSTub^^TmA2GHg0quykjMK+$otOW}D;X?>JdBBzidZ_2xawnd9lOanXN+;UkZ
z{Z|T@(>E64_SNio`2!FQ42feaacT&DC_x#DO~oCV+_Uu@3hTy-I^#<>`9gf22^hl<
zM_Z3(+1T|(&XKc1;TNDe<N`1@t@(b9u-*3wlXz>!FUaLh260@d`?yD;j(6x+5;4gk
z<7ss=+azVxDWl!xl2a*yOp<h4DQ_i*65PT?Fzc-yv(o1<2|XiOk$8RQ$P>69RUydN
z$=k%XCHzEt5>4i9*)+)KnG<J35ew|Jq@011B}z~APVzJ)v~IFe6B&z~f0|JYu3Z-M
zhrxy-9=I9NH0%}Owck{cVAQN^K>C+884*bzK)L37Mf+(5)%HgQ(o&vvZ};M>N#u2l
z4E`qMrbw|GuQI2FqHD4E?iV-=sBwD6)6`*Kse^|x4CLqqhm~wvo+(m&r(fCRe$D>~
zdhFGuN)}57W~r*)?V)=R2#%683l_C^Bc$z^7lQFx=?~ebH?8G7t&8QU*L$?pC8^@2
zvd+Fdy|sTEDVr@a#TtCu7R1Tryvz|e(k>&JnJC8kS_+S7f>_%Wk97yzXFQGD(7R7)
z<17&c+L-TzZAldM>6}qLent@~p!gHg{4naY^Z*YAUW72iW7ZYB(Wi%tM-Ajbymi_^
zb$*{kKWj!LCwN8kNYA(M1xhp;zFw>@U<xcp<YJmoidk+h7K9W8cxZ$g(6gAy;%kPK
z;*`4vZ*f=ooO)i-a;Pf^oYF3*(=e{$4iUZyYEhDceb|qcD*40h2rBn28<vRR8Ejnq
zj?Ru7FrVwb0h0RH`M7<R6&~gLb=K{L|5m8f!-%9zhWHf5NWzLTRTg1Sc)}3Q0DHHW
zR6KQjB+}HEQymQZK5Y!a0aP7srWQ=l+0swB!3N1bO@fO;f+4&?0-s_e1+iEGN1E#|
zyz4aFxQbSk;Ikxg!mpl9=jd}a%gecq^C@eKAKw0&OOEY@**!tCuFgWnNT#fh3<y;z
zD|@2jATPwfh7SJV)QCsIAVBqYSo-#r$+A`;N`pLyEoAzK66kNQ7z*X!QVOZc$DR$g
z;Ekz0V3>8#@&VV5*^^XC51SHX@IH03PMAmy#?PM*NcJ1>bHc4IG$6?{VFkDRNDVXF
zW7H_@-RtrO$Xl3%`a$8_kjk2l{m&zeX1a9-);m%CT^O!1bx3u$!%a2!0i<~{?G##+
zC4;uOV#Nb!5q0LWpIwK)XAa}|4)VWFdpdb~oTT6#VzG580FuqYM&wgCpkOJE1MxWO
z39_YWR8zP>g#gFH#-e4wvx25`QA>@87lgQWTE*%D6KFXb5O|_DlKSVkH!c}b{Ap8$
zQ{m*@VGv)Qt;FGQRD?<!(zVJrn1NMtbVmL95Jes~9c;aw0%?4FTqwF-P6%U|UT?n#
zLV;u=H<1JtL*d8Tz&2qgU-Y4vR_6900K*wRk;S?=W%K8HR0v_b7~taffL#TpbvSu`
z@m6kMSL&F)0w`YZNj%$WN@aMOyg)=&@UZS}f@{prkyaP5dqe82dE#)g;);NvHId7g
zFSyg&F;_A5?mn-r=lIinT|)TRUJppx9!))+3xG?EswqP$*^n+mM05CF@Wm4CaPH&r
z2EH+bzuz#n3?eminf6YRHE4(gBPoz8ys#J0z<Bs<&cqN;E7F+TYVUMlX+>*^J^5S#
zAHHXs-?s6J4*6&%0R+w+LJd>}9}T{JC1EEqkkXz{Y284KlzwBZU?VMbh<$)8?Za$I
z6|f)sqgdOX>jGmP`5}ajU^(a4Ru2oZplP^J1zrjpA-yKJB%Fd~C>eR5V@lGxfJC2W
z2*ARE9{YEB3D@hVfOD(S0B&tQ8p0u>z{tQ*JOt`wQ(DK74+Eh%jKOqq!>-^jpe9n|
z`^F<6R%%AG{NaV1|A&I5i^A{tCz?OZaSY0qO)-@}7+O~!y?x1*kwHV-uN2KCjS)}z
zQI<j+8x;pLT^t3~5;y?s^vK2-%^^eATRo*zX+Od0kBd#ydCp~SV&2QyT2lpT_^uNu
zJS<e8->OX>N?Ajsw;x$6s~wDVS$~V`qeTf-bBe;uhb1de7ht;d%amAZBEV#WA@6ki
z1o?^7!g3&eTD@EH8rR5d52q!yCsKE9h;Dc{`!P_;D%W&|x%U?Ulc=apr9X`qovw@_
zv3%_?LlrpwMl4yVE$`#}Fmlx!*`fr^!yz^k+~5$NZkT1#{zno@Hw#<RK$I7`!zAhi
zTrw$y_KwI&^akB9tD@H%GW5>a!S`>leP5qC@3=8&g#xCBF7@MfuC%uy*be2nUYDIE
zNib$Q4am2%;a)sBasnheo&i3L72qQ1z&8;yp59DfP)v{!X$VPyr7id##z*%|CZ7L%
z@s*7rnhy_dU1;I3b|!dBRuXw6R4O*{W+#7=&ElLzJVYK}Jpd(1RKj~FnbZ$mrg_+f
zaZCXFoGOBXFc$8?rNG%1C$7!5mD^7kK|2`u1~p2NuxM~dSqf%e`xf&qK5;`!n(EzF
zxGg*s^)XHkfiOdHm&wPx4VzVy9LEQNg;g#oUxR5-r%d7qeEKBwjB?QZ)<bTh(65Kt
z@(+FaUrbL@mcxnH>{Q&&!y=Vn%_jcmIDgOY2JWITUm))fK(b5DI{U7qeWX1p3m}=-
z_Ck3IaUbK@ci7_aZ|P+)_`@>gUJ$n55uH4b)ynfL?L1^ahGY0bV^rKGQC<(^-;zTU
zZod+If*EdtSi3FK5O5Lb4XQreX!;IkaND@>oXtIE=he9N`gc5pSpyUOA=W0A#SgQo
zSv43$+v>f7z&X}zGiAh(fbX7VH9YzeDZd{pf*cq5HX0D8=6l`RS1SvsOxK(Xbwh->
zb6TEFW+Rg~V@ALDJ5^|!sA+X9=Dtq@96IIcIU#}{it{LcI7siULOwW>0iNkc8J%p-
zD_zTy89JYl4EZ1=D|~fnaA}R$_ulwtUf5@1M>grvH^_vN*6Y3lZ>(IuiD9?)CGILq
z@F4#`q{`8{EdLG_N$xa$G9McP39B{pH#BCsi7;Ccnco;C4u!<WR*~r%Hf-gQ@l*>3
z%f5vajK^Sa%kTESo6+w$Ma2@5fw^oBG53qRZoVLi=QC!2y-DG~37?-&Qs&;Xg}~q&
zkch|=C;9I}5-qKTq3c2}{M_cOF(G95YbqEFS4IM54d@~8pRWp~uu!-dT{LbfE3uwC
z73Xe+lB1G`Pe?|*u>TQ6IW~t59@&XuD#q_SgR}%o<Gr{>?V@Z)&<OJLH&xIdyV_|u
zhh?>SHC=xfxm;8J!1qceXogsSUp;7F&Iq|t%#4sTESw@sx*=f#7K}`&`FV&jpwtwr
zxP<E3$Gzl5CWF3taR!X-HocRH{(g6)7dunFEYXsOzvRAPl9M`IN9JI&d!11_9GwDY
z1+6z;E?4P3=MWDU`1^+(dtcjOato5+GXS~`?Ziw(^*}axy@e}Tcsfog&pPEk!`Nr<
z8e`<Pg&`TONI;d6Q>e|)kSJ*)25GUqqYh@hkoR8ik@?H-TQr(cn<#CSO7DmMe(GzS
z1o2&Y9hO`|G%+fwvo+ov>IpFkgBy=Hr4{!#3VoN5+Oe6^)=-htP-&GoN;U4<saSZt
zfb7FMpQ2;u?Jd{BK^$|gbFt$&AGrKa$|wqLCkLOWZC)Yw?Ihi!OL3(4W}&}5u5dT%
z&>&Ny;5sf*bN*#TJe>5ok|Hlm+bXmbIDvIPM-!)}n;L}K_4-)94NZX4OHKwv4}QHA
zqDN}Lw~TI$dR)laZ~rO6sCQ0HC*N)e(zTOY?V@CbQx>B>nw>*`0x7L3l^~3;kH){k
z`-3#^@R`QAQhEYnLNQP=Q87+v?#&5o^0w%lDeqrNt-ox52EBT;M-2#(hDZ2Yg}Hv#
zECq)d&`e?Y$lsjv91Udu@FiJ`+Fh?UYu`|2+4moK290QkM~SSuK=C_M<6Q?RAsN=T
zNkI_yc-e=TdqES9ba8e%qb=+|ldrIXZEbU0BNAjMc;laojZnOFl^URGFUb3&s%LkX
zeLqA2jRL^{!|M|F>(k|4_hC^H(#uz#65y$q>WXsZjKLm+{|P3Cz{jb0@>u3CHYI87
z|N1_fAG(yQ?#v{fnsH2^1uHaGexxSP_cr&JZ4SH~)KY?c!{9sNwc*@bauHDv+*?;B
zYEi`QH9|1X8NF4kV2Z*Iam?I|MZC&KmMsq%O}Nw7RFi|al-RvyJ6X;M!0-QZx_Q@*
z*zIdkiYW47%qz6Zcmwk9GqWC551x)fu|Us7-*&bOAg{ri3?S%>U}~(WRM!lHO-H<9
zdB1d@3NLwr7nr}R)i?hv4#edC9E7Li6l2k*qDx6fErdqvoO_OM4s0la`cQq_c=-q|
z_kn}|#$k8sE2a(el`~QQ<(rn7B7JMln(CN^M#k-(ZEG;pw?B411N}W6&%PFi$;BAN
z{!LzcKvBixU~I(3AOX5N{qE^0FGA|o_U`vib6ip=J|DG-L!2)i_Xvst@!F3LJZEB|
zGI+|f$SXVu9y1|ox)&T0{Dq=dpyPHqOLa2B5-@tPfQKa&&fIrc!YH`W;3J6lY<P0<
zwHL>MrM?JWggkWwJBIXt5qaG<dz?V5DA9=sR70&gsEJ){Gm6=GKn#afL&}(}=0mB^
zZI(RR+UtvA1Wep(HH?24Z%ApcchqEBUy$@*)i2F0yXFBLVrt2t&NJ|3zJt@0L#18L
zVCi#Bi_#Sy4iXrx3GiCdP282c$&=)8|FPfK*S#GXW%!2Hn;D@%dlal|B2}rsyri_t
zY3D#SVrq1-6YMjwZk1$BHue*pw6ZB*9(giY_nw{2O6vil^N`lT)-^J`7VG8e#6lC5
zV$?(rebkY5`*KRED{dc?j29KZX}OxAdr1dw5?ngAWDFf!u9OYnN*3nH(kUCs^v;`!
zj~~Gl9hjCp6|fqmklYyDxTbrK<DQ`TbFWM?P&xO=o^?_5ub<GxKqzX|NB5EOop4^L
zh)Dcq+gDzV8-RHA_2^-iRAY{>-E85Uus28)1C=Sa!LUp>Kws{T|NOdJ9VC|;Ai%|F
zdaU;unbbaZM27yfz<pk99DM(+nmbsG$vso@O^7!TW&lr(HNq22>H3bMPI`1`N!4>k
z&RPWdqO?Jm`qsW*H&gebsvS|mH9j1^E=0xg;m8Wi@ho(tVyAs1MwfQY<akpWVsnHV
z`u1&Z0im?Y69h~UL5+>+njjs&9*G;S3H;w`C9>!H4hj319h44;fuE|sYG#YslMn>^
zN&x}+{n{;!M&|nDb3IGfWnpJ9xpJ0KJEe{ouqsq05U?4^M;GYpJE1(!SS?0Ex)NNm
z<G}Y%;Cvj%pm9mq{M>Z0+PQ=D>4SqVcdX-=pR_E57CC8pySFoE2$ckompx+O_c^<=
zu%YsbPJWpQ)T@>@y1Mrb@@4~fV4U2BTk4qADONH;C)lZI^d)YUJ?}foisCqPa(1NK
z953r_-U(>b#r^0EnYf3Qa1*Kee&q^i#VZd~fi4;2J3x=$SBLH~zUFViYV2CIv8+X_
zRlzfx9aQQTdz}XD7Os=7s?ILs*DW^)XDZR}Ay+7B5&U49&BQEJ*$;ccO2m*iguPH+
zv#%UEaE_)LkP191x4%tuN9i*8m2@nc3__#gOUbAiiu7;uFiRwg2a3@&*#2{9bJ<;n
zs6&kp3H7Xq#>~%|MUj3FX!~lV^!pe#frqrB%u?+S2Vx><^-=OI>)nTAA^MjBhmK%T
z9GgBfr+48vTjaYkJYQ>NEUioWx!w`>{7|uhTv+AX4=?%IK!mC+>h*gJI;|l~J9FuD
zP+Qmf4a(-1Yqkf5rY#jtLo-gCxi;G$kmaqN^SFI+*fKx3^}hBG@u+urXT=NRk9F_H
zAgdvT{{{IAq&UgVVdG_B_|PAeXug=xqLH~#Z(?&|Q~ya3x+Lp*w`yM~TCPY)Zu!B_
zrSW6dmu+9m(*xd)H@O5fwF&IydDCS{-U&<+q)?TOQx6sDJ5n+t=XyK36qUY(_Rrxp
z4bS?sZr+)fx_>!im#mf}*8{l*u!#2#7ni#gQv4lkc$bDa$Wjzlmh-T9K9bI(?EwWe
zT6f?q0iF$O=w|J4E6%1HS<PiI$u2SPX&Xf~B8gQatM^prx~RCpF~g@nIuD^c!W^(o
zMz;WRR!Lac1kN%0*LXyK>iVwZs(ZYaI~9nZ2{YXL-tOurQsc6D-QJQBF%uno)(--H
z8hq0wfbYJodOeoF2WL=kGd%fA!fZ>z?7?VqKMM`&4HPs@5<i20Z#H<bGE>Hq9IBAq
zYF`&oKy6Mea~!4SL%D9kDgkIFp09tdfh(IlozKWPRYCuTw7k}(b-;dgcLU3G&y{XE
z>Wstq=8g6mr8J+KuSNT{Ndpv-GSR4I&}(le1rKS7cLf<HDEavMMv?Sgkg1ls>a-oV
zij;7}(RvqBuUoiJU#J1MpmzEV@<If*dxPeG+{a(30N$0IVJO*k@2sTW^t-GPvM-Kp
z2+qz<7dpvQc@tTY>dpYiispLvxzo`;`AUI>b4ii2aa(nfm73tssP5vJ5%|>BHJJAF
zJA4C>99|r<mB|mxK9LrT%wz`dUXaqTgMfeR`6p=TNS1g$4v>3L8<aFe-hozemi6Bi
zu6N^YAek`sWVk|SL;t$A&%_?&42S5G4=^!nE59NcoXpJOcyIiVNc{jsI`Q|iLq^x3
z{iOiCYnlGSQBI}s!N|(h)Ws~qjUmmj(~da`3S7qRsu1+m6<q!7i3SBtY^hA|FNLG}
z-8PG@l^bMI)N9`vBAlpS3R#4&rGAYP>`R=}=~N7t9G?*bQHj}dYB*)uc{*5Dd`<9H
zCev_XNI?CG#>|x(<m*euMg`5nY*&uG@+9Mrbz|r<{4hLnZf6ka_EK_$bo>yc5%8hw
z`&#OLg-5jka00(+1u07Z;vCK2kohZ1tLAouV%%W<jU)Ejlvfb`^mvNio*qR_;dt{b
zK%ripG-w%DY>k{Ynj|DgMlfc4K0bOs`d+7<aruf(>wGV8mNcZya(H3pL@;a3i3c`G
zL(mWw_jYFvrPoi<KtvVP?@7KcqcAUk+?S`&>%IgDY4osGt4~A@a$Tbl9*p)}I8V#v
zemK;hvU+dYakl(yP%M9h#DnJV>K(Ufy*X_6(%@aXWA?#!?IzkK7fZy>#&>C9Z;qVE
zl|_JrOJn;|IzMxbzfrvZ*Jur9y*Sihr|Y0@X(cCIfbH}c+%A~4f{|MKK|z(HO>-e8
zV)LEECkV;Z!>0!I<#SqlXA<>Sjp5e0TA(YO=0>js8tIom=1Kz>{pN38t#F!LFSj*W
z&v67yL=pC%5g+Yvwko*(lF4HR1*2?ypfnA*k%vupC}se{s2S|Hf<uZ&H)eMLa3rM&
zw`y{<GPtQwFI7I5Ck{`|8$>O&pV0&nQqXiBhy$UY+Ev78xR;ai-&vitcJO#K$seT%
zIl1M9M1*0Cni2Ugl(~F*@U}8lyNZDmB6^fnAa&eldwUvZVV=-ctPRuDw@}^yM>I?~
zu%!t32rw8fcMXq~uaMUG32$>gpV~=I2*`5=3dd?)3^SxzJelQEYZ~MaBYHXjb0$<H
zA+C4i@W%KBbh8I2Yf`5fxedQ_wzU_IXhLuj=1Xp6FOKpw=Zr>e_CPeYss9-N^13(?
z9kef+UHrg#_GO%MLr<7A{A^~|viIJJEmBo?pNKW{CsxDD(9=Bcfe32}y>QR;J)$5w
zA(pW})j$N=*P-RKO2CHO3rmuG{3*Bzb}M63<wVOJ%n_q!l%qxiLOKO_026)p@s~jT
z&iRCv(?~$i93EXvQv3Uc|EjIaL^O_4tT#2(?p5Y8d;TU@c%fnU;dsbD66-(i=x0B<
zd#en2A~WlO&;$swO~``!My(~DMojQW)4sz-EMF%UFhw8dOtI(mux{cpEpHCIKs^7W
zMm^5ipNFyJElG06A)qQ!?fd*p8jVlw_lVIAAjNuFb5R@UF~k@dhA+B0b;orK(VtB8
zUTtyR0E|&M0Mq%6no{87DzD28!HLL<BZ(BiKuvuN@oFW>+?O-4>vxmSnb9H8+a#@d
z>kc$lHvY-s{11OBQc8IJ7`+2J)(561>vt^yggyXDi5+mKC;VE7H`1R$jakJv<)zgS
zk*P|5ggUw2^^%XB6*LUjY2et{`wtnpz8Uhu0}wE?T9@e3COLbYm}hPOS2zcnr+5uy
z?*U%#^`c|__&r_mhTC1<sji{Zwo@t1X_O#RKk?Icx@iP37&OvFtFi`^J2?&klV_)Y
zqMjlmnb05vbB_2C#UNn0mlrKS8j!>qf8xKYr~zx=m>Ma<zQy+rmvIFEM2nv!|1;!G
z=zT9UPdpoUlq+dDmm3VjPmF0GoQ}aj=Q+mX)!$Dif~?S*oQ~h<_tTaNkpQ+deutdP
zbz&CB-qvTmg7gSj9*!bx{?U?4w)sbvVmkts7yoQ#Cx+6ui^Uts3DT#oxRP*~_xU}5
zA|3pVVvQG^mpTT}zd!#-moP);j`_h~`){A$=ox#?!yoTX?sV+8^!|8~sg7XOorckW
zI{aDN-5VP=uV>1vlEY6|^309-Y4>@|nzglG@;K<QNy8J?#(sj&<!RICi~DQLlq^lZ
zR-C)(&B~Phu}EPtRSabku2%*TYw9Vm1nrVIJG>p<OO3FGT4MN0L5M>ym;Gy|?AO%t
zOe+aCN?wnOPNgZQtIJjWT5IF5>|bwDSaO591myFSV@;aSECNU<1o&U*K<O4(BD@IK
z3nS^CM-bA}wQ*1PQ&W%Ty-!eaYM&n1V|zTeXXhYbmGA#r&byQz5c9uVd(r{mZA>Y$
zWR(mDq_i1YCXxVLjA>r{MFa;(^f>&JeYW@RD_YN@okJ6(BLL|n2n=6G<t3pcI4xrO
z$WzyZ7~xu&F)re2*O%TNPKBqaFF1ltoLPSqCrB-?$gTj!Fsb|ofgeCm>$eL~(+&e1
zn7pZH+*OXo?;@%jb^#A5uEb%j91J*fRBxhuZ6Llr*pOlheh2E50(RgV|LkDvZ2&?Y
z2Ha#1dw&(iwtQjXC<z3*&2v3}y8;Ie%fLgy6zG!A&nBf$p!99N+m+xPLdpWsRTsH`
zDQpOkyXnpIKi)H`2L8sP&60vB1*dnGLG-+B@S@sY9ImbBpTxhTnCdqSY;f0X`X!~Q
zmbX(z@?Ug8<0X2>MgOWy$@=kRoBGzDT4}wHel`9iY|?A0rqym||ELEx>9tId5Ha!_
zF73?t=I)rW(FF)EOY@BEVyYdO+QOjcl!UoY*U*H>@;twhyJu2wCMZb)?=JDjkPop6
zAzc6{<uWCU84l#HMYy}}5$5ewR+Kq1V{#)HwQ}O#$2t3-mRL$O3CYct9={x5nyeD^
z3TWsdEa#-|hal!%s02;5jXfjImgm_htr1KmN~(e<<~mrR5$f1~1Eh!XWRz?B99C@T
zz%x=gf4m&7`={QTFJ@E}TCTMAzHt8$mt(eDGX|wZ&7JJK1@O3Vd2)k39*4L_p#2Ww
zZkT$-vHwqO_;JBH-S~Hv>yHl^y3riPieCukbxK*=0oBg&ck2%r=-nesHrGHL8iLE$
zNkndBCVSEj7!()xv_QR)qQPX0$7ZAwC~#mMS-d+JZxbvm*5G$E)IL%2RHD{i9V4eP
z`%GLrV^f&{>MtGw=-QWh4MT#-v?j<~mKzhezjldhEC7rP700fkH0@dIyJ$v3pA-$1
zp-ljMJW3`w<*r-vy`!a<U}udZ9{#B7TM`zVy*G)hm&C#ojh7RE82*@80Ei``f!^&e
z_0F!xiyGry{^51iZsk`r$vAYcz$QM2|23SCyjCK3W4*Bfh|Uv=*D<^m$yoeo^UO>T
zsihO3f;RvT$uofz(ZlpQc%n$fgA*~l^>g6)hms3MzPdJGlp~T((yxSs=|;e9=`$)n
zUh|?wZ0*blS2)3ugwHCl7(vCa012L(aqKb6<a$qN2iVK$`%2om5V$vEXNb@;%JtPB
zdOsNBU#0%D!PQ`5yiff5>-c^-`~$=*u5%Pp>mimO5<Qwu`C;%)AunA6YqFZZK%Ja=
zLi~W6Uiq~nU=}?-wFGZA_S_A|_W)+P!)xO<k5k{^PUtmKTfQ%6-Vp82d%iqWnB2(n
zr>6%=GCnQ^DBx+`RN!BGMUDmsDpW*uNY+w?N74`1+TF#GS82jPT!kKNRXYm7pmt28
zGcS}%!8eOCYgsoh>zt!CsrU$|mLgiHG8D~^w3mp8b19HB7~;L?3l68-o;sobbpP{=
zlnQNK+U*9w)BSHKhkV5M=tl}otr<dU+-5{F0}7NgZ5tVSKV0u~)!g#ZKPXDi<O5)D
z!r2b6Zg`z==e-(UDv%9rS0T3=TS!5btp412a)E#H3Enx%;q&vjuiJ8MFj@VNJ&AR3
z*Xgphh#;XUIt&JUoz0Izbb~2U#y5$i`fhVYWa-s+mAZ_ES6+z2FLS-uT$xFzEI$^|
z?B^Ys9+m;a1(1V@>#_uP3Mq!GF<Lk}Rmh2hbga&D)8{>^&h`Zw{^XjEcD8E}+dFj}
z?<L(c$&;m%KR-9(n+GHE2UT%S@Uw_M1_e68&K_G_n)|QzBt!!2F{~P?(ouA>)XIwi
z*88cY(I423L;$l3JrbC!Qh~QE2sHZQ1Ok7c>iwG4sU7w;_(MhrX6<u}U~@;NRd$OE
ztOA!sl<V_kb>oWK`QXhY{$g&8eJs9_P%^>pOtLst3{dW8{%-+Iyf_&TVg=ZlX=+V9
z110E037UiC2w>ddB>68eEkULx{otXlXkJ({Dg6|X4-z2FL~BLaB6A|0i)PD%C1Z>f
z>D8E2zwY)gm_*$GRw{4#E5J5-*CIowNtz@N$H_RQnF<KgyaFiP*5;V^Zxle!+*e%(
zTk~Z3%;S(@bRNJLVc>Q|)P%4_pXcG!^cRM9O&?!=(3Ew;68STk{7}9>;jX8V()T^5
z{6%m_GZ3<h7L0oz(#nRXcFyZ7fcA}E0lAIp&tTY#wuZgXE9r0Bs-b0Isa0mkTxRsM
z{}5AX6ywm(f;GKMHR~K6qo!qkUB1?>q$k@GFjCd`_>L~LJ>YssHU=xI=yS(F5~Z@r
z+>5dd1fsOPy&=8aw_;LQoBOAHe>H;^DY3jp43n|nNk_BtX~5IpL!sT{Ut+s%eB)ji
z$4mY-;vath$TX<`y)1EmXe(XcKDP_S$-|f;Zise^B%pOTiX=y}#Ail<j&!g-0rn0j
z916biUFj#^S>%#_qPtIj?>;p-kKdu4u(u&ulB43}qRC()ZBM=+Vj+||pWi@YreD^i
zU-vWz#XWyHg6BQ*3s97!45(i0&yT<9ogLN_Dq!|t$e)&*l)f2Ocifz=m4(28AHS5=
z&5`Y6cWjxD_~T+OF}Adu<CLuJGDx)V`JPXx@2kK+e|QV9MmhN=*R|u(2*Nb;w}{kQ
zVP<jo1>PrXRCFaBQ^d^q4MQ?Mb2k&CEcC3@EmI21A$j4Q|0wJ0hZ7)Xn4GNgMz<!~
zE>t$=xa_GAThE6sFs_-v0Q)F|-7M#?_uoKWf{TK3F&T{iwz6e>YgXqrCroasL2R^Y
zj6QkTn23}!9JpprC(7ukP@qy5@>K5S1{gtxa<UufSNQTMG@f9Q28dzzeP=s|C}W#Z
zJ_5e=T5P7tPxrI*LJh&?-bc$$pl5?&(U*eJJ!VhS2|-p5>VeXarwQY4d-@VPi&c>1
zNHQ2O6;9Ry&ozU;4-7WkMQt2K&uVk&R_XmEM-S|pL!qN>=D1is$FB&z^D4bOUdmjq
z_qTQUyJlQ*6PsSDTVs$d-tx)WVRwSI;sO1a)-SIkm4~3~thxJne{MecH&n|V8K6?+
zyl2Qq24iVS>nhQ3j+f#rTw*MhOPklzbRj8}!+9^Ggf>!ktsl?JrB&^hx;OjyIe74G
zW`-A)-|8>bQ*vAYA9yfOU`*V26^!vp>6HWvM!k<Oop#-^c9!RIeN_H4?ec#S@zP_!
z?umPLd&Ky37G2!^{Ux=QKkg;%%!1&p7UG%JG8cOG%#Zg0U8B7vXo;~L)mi4{!v3nm
zGD9T`eXJ0<rwh}k)Fg`D&4%-|B1cT@^^~yC)7G>JL7@FKCJxE=mGX$my*}7)q}KlB
zrRYXLHFJ?t&B1{#hvu7lNKJLa;Y%tM<?!lj(O+b%;>${#YrEfL1{_p@nGHiAD%4Bv
zNpqzbP8L+w(zlVP*>T@gmH|(CHV5sST3cUwEv>Xn&{3??12D`}yNgK|z~K4dxnR3#
z0<bEiAn_shq+1C6<9Y%I$8pN#YUx&PgJ0=uZLN14RAn5?Tyi2Tazn?%FG{nLHqw&Z
zl;0LU&(reLr9+rtn3i>9VU>O(OhjpJm_lQy0*92b`IM<4#DSf?B*#E1DpYfH@$yZF
z8%oL6Tjk+e0b|CK*nS>^y1rh|+U~rLuBdXp22Se@1Xh{V>!pVtLYxaC<h)41Z)dr0
zzdnxqei9E(LR==N3skc>e8g`c6lAd+IOdq#lSOL7YGpdH#OdIuDGVPrYjC-qL=I#L
z9i+2PEMFIj6tEm9X<!p)DW3jpRO65do^Lc<h%;iOSxb@YuP@tjRT&;?wjG&H3S=dC
zKXVn|W%7^|?f$&befsJgn*o(uzRSI|2I}^VsysTWw75g?P<sy9Oj<_qn!X^v0Dqe)
z!CJV~>b?}F*t;Q(3EOn)rE>{X16z+I3O_$n3GyY;M*K$DF$|_Ip@3zWeMrpidy3)J
zs8@*UJ4+>!hB-jiYBM=i_ayd!Z;C>rw}rahTa)$rz3FIc;)eXpXJ+U-jGD&D!Oplp
zDRJ<zjNbUK%o8&Pw1!QkO-GA5-@A^Kx*YqL=T?%-%IkO~LqkvpZq`1dn%`A-G+iZv
zez#tc)1=J*l6GAA$woRfTc>w0jp?a%i#k5`KLC$FaKExyu3{LQSuukG@SNag$71J?
zS)vGJar`jrz%^SOFv}2OEeW$6mLVLlve&O)XO_Mg(N1!C9GhZs-vXQ<W417G;6QVq
zgS&*L&9aIA+Sk5j2M(BB;Ns82r<(#AbVdLPCflO|-?Bu(%n>glOMG}CNXLwor5Fd6
z{P6Ms%=(x;0(j8z!bosg7`z70N)VYhk)=Imz04ZfAkWO2^0SRID=`0aLMY(#^NNyX
zEU_Zv0Ot|<$NLG73w_TXKRil!G~5HlvK?{^&mK#HT~6s@UNAfjRVr68&m&7_2CB5I
zmTV{+Z^#$F_(k(JkRN`+Yx0IXW$cl|bAgA<fu&uRU4g5vyehCPhv$xcd72z&wgJI+
zG6uA48ZF6^9<L5^k>zQY=BSIZ@q8gaS^CDa#XbCwCsdOmTlU5~gEs{a5=&>)cdI;~
zw86cj&;URl<Au$%S7CTlzzLw89>>ZNTZ-_~argjQ<FSV>-~i6hhh;=$H+vzU82ChZ
z?D5BpHjG*CGp;rsMPKUjB~ik?Klu{R2PZ{`6XIi!w6u5sfx^`W=-_F{58WsiZz}YI
zUg$W&z?DCz0iIEG8J;rY;R|Gk;{{I05894Az_aFnw+qh_<w2jGl1~okMDn@L^l+}6
zpm%(EM!v;m7qW~tfFq}N@pwC+%UR+ik3rmkNGD=-g?^xZaDx}|DguPj#=HJ_mwDfy
z4Kx6#k9Iq4Xe<5nzylAe9S2M<vOEkxXLugkBQN3UmMvRa9}|WL9X*dnR)(kTKeUYc
zp+4y1eT|G|8JVpC4#VW#zFnSFz|(nL{7N}21=CLY8~WhwheiPX*RfN_P@!T4d&bMo
z0VQ}B{XswQhj$cRz_=Ur+9;C+Y!P5P1M&n9J!6GKksQF{V59?EPUx?O4I9c!dO+nJ
zcG4Nrw*UY@07*naRPoreX1!+3?E;V-yb@>U?mc1c#%=oB9@gn^jqZ2v-DgJP>J3}N
zx=jk(uq|xZyj{!!Qt=WB>m}Ux6cXx#kZ|s8pr(_@2O2?ijQ$&VC&kmiYzQ3(m<!^N
zhO*;0F|gy$EyYYIeD-c|MW`?^0Lnz*U|7OnfY)yi`JYb>1>hO@34n(XB5an2*KWM=
z#>`$M=Pmd-&eP<B7lAnMlAl41;edcaxw+y)aQs`R>`<;_q`X-=LI_evo)3+bAKs7p
z0B9fuz`kf#X7nfhi!x&Q3t)*@-Y?rH$MPskQ794s9zmHnudocr<e+!2-X{E+Ab8nQ
zAtpoPycp**loV;<4adVON!Nocg9lwvvowbiXE~PTX#l)22D)|YZqNLHD-(N``dC(G
z+mAdXW*`wyxz3NsVt}PMZ~$0#Wl0%+W@``m!2^X1xM2p}D96j7ZSk?fy&EKD%SJ{A
z1}pSrsTUmChC~|VxEm!XQ<keMSE+1$f?>xVQI;YBAG5o)?8i8RJ^;9sEfY=X%9M@t
ziKn#$`oZu=A!DEdv<p1x2lg&P0~9{Wob3nD8hkJWyziJGc>jYF`z9$9!=JsCI6}N$
zrw25mF3)F`>xXi|o4@$s1=10g4KUQ=aooqtrEcUM;rxpOc*OG(XX!|rt`8c3D?quF
z$CbR}w7kls;*7p$gzK-r-nIicztdKD#BpJtFUC>h#*OU6J#@q%rXI?~Pz0PtT=@g2
zpCx#}<LyB|l<)Wv=0+oZ3sCP~@iUVi!11w%^t1O5acmRf1U*|D=tIXdo<431!LOd5
zvBbU8jyl=zi*Dd>3I;I18wZ&DU})a?t2^x^HR14l{1Dy#{cN+#Zj+I|BoI+BkuuH(
znnZ<~)vAQ14Qhv`4QuJIc4*eHPN-U?La0--YG~f5PH0lUR%ov9hV^P`k4>S#h!;!4
zCrz4|=_nZULCp%7RpCuxkg;#ZfeqNqyZ~c5W6naxBitE)d&+m=!ZU&g1|ki6!`M&Z
zfM9f^5`&O|iIK>RXTX2~MtHoA0JC5QIG#oJ-~g2AooE61pHBq^lEQ@<J+nHL6MT$7
z!#fC&7M@1HIN<5=2?%fIcfo`g0AA&aQea;!iVPk@5Fp%`HKU-l^le@m%FOeiQ}#o+
zN-kow0UR>A^Nu_1RWdxg@q@hZJzng=zUG>1%u|H-0*{}|EBFAfSo!ji(WGTCJ3z<e
z06uVolClA09f}N38|B7%j7bH?2+9Kw5}phPj1`m+yomwBA*{Zq_cgC|D@|0`s1Lk7
z{%!O8kv3j8UMIo;cn=)-12DQcaKL1m@{y@p=C%#?@b9ng{FQkEp~0{9>X19`xWhbR
zv}NtOwHaDa4wEF`%ZtH)Czdh+u5MITlt%{R5G6~Sk>5<Vs#dFN<>7_n1almi@Z(9O
zkF-o5w7j0dnRM)nzg6B&3`L9^^PZ+R-Ftt>%j2Fl^zT2wCIaX+rx7a+?8O9MCKBMs
zfdenwjRR<jte_kKL!G|CLyNIUdGxUxCm2KI#k+>_%ic8y_7>ueq<we<@kTi;UAi=5
zoO&2n@MF&`#;5~z;oWtBkEs`4Z{DoAWYKRkyaDcbu)JTg$tC!UvjE6B%0_l-JD2I<
zSt^_Td>B>mJG$9vLH$fx{24mJW6%cAGG)OdP8(<iPvX5p7RPN0_>;pvOv>1=>-<g~
z>|u=K4c}uJyB$E<%dfcH>T$VEK8K{SOh52iCHT?3tzJGj!qXczY_#myBlq5WujvNT
zKxeKPsZ4?x=S&uvY&B}w$asR4fj|B6Pv&62VEp;der|>-cr*6cPe~h(6=Yp{ju*ar
z-v^;V)iN>+^?DrJY7!0B&E-xCl`E79)v8E%=!?-6%4x~rKq?d*++$17@iMq)fbZP7
zD<H^ViebZtg)6nR;TAdvOa{nE!`<#PF}x>$GXeL`Fx<mz?&V|f!-Nhn8^RYr`P!*8
z33Fal%j*!>NX}qm!!AZ3n`t>TfF%yYGvh_E!_3UkU@n-Q4nx?{k#StS-u(5GO92L-
zPhMyxTP0Y!!>fouK!^eG3(5e&3_l}C5#}grHX{Rz7cI7vaNP6y3|@~yJ|-*}pYSBF
z451v#=G8nH7o_to7J2@IdLJUhCh6b2{hN038P5m`Z;ZTB)g<WYM*vR=o<x)a9$}1r
zPD%sxG0NbVzx;1Apzt_xC;>Ty!p9RCU$&xblsb7h+`;QZI9xDw%2YERSYiV()L0?$
zP3|lc`*I)N3FI)_9WW?S#uzdvno+NgG6TvAN&ny-oHKWh#pC@#St6HR`O)U{<msSI
z$Xk~9cn2dMM3!WC@7ZnMQI^LrIym%&5d`2ly;a5;MjFN)I)XNExBxlL*m0wpvE-9{
z@?tQssh@+9;K0&8VbGfK$k;?r&|XgIGKTz=Gphh7T*eejxX6BtJKyr;x`jg+j74Zp
z7;WMeIE+8&fNs0+!V6?<%(d61pt#vOf^)(>%FvpXf|e~?+V%qI)bFf*rt6R?&<t6^
zdpL1yzytIt_ZT<;_0w0J4#xO~{unUyEANM-op@0(v;lBL?`bc;84bu4j7RS?mme5I
zOiIX$Y@tmUgp>)7Q4hHL;ZP1p-FDko?QjgspcqA@@$$T{z`?`dL)wF<9QuP7%cmGc
z^c(fMf&J^>{5teIvme=QB@g5JmYZ)0g9Z;Wr_I9;J#4h1PtnmBgWGp(H_tEqi5&oM
z(cbU>;QMx<2}2v+_9b)L)2VYOGb%ap46icj@QKelZChjPxsgXd^7<RV+hh;=ArBKa
zCLIp65jsH&XhWYs10Ofg`o8<_wf<#%-~HFS&Ax!QF}ksVusJXw*{;DjrT;m^Ll~2U
ziIXN;AK^rR4tVOJAuAHlmVTwL%akcAn=JC|JAS3Tp2T66=FJ*~ri~+4yBENILtb+;
zVZp92eCD>$wpR3UK0J&}d^YdYo9s2ys$QvF*mqE`%F!OhZF@fmoA;Lq-x^RS)UJv<
zn$jYJih%>8{LlaVk1;s}g8^VjH@Y|}gb-nN!%T=liNK%}d=CMg1Q8Jg5DrGeo5PF%
z!azWPK?B2Jk&_2O_|CiUgbJFqGtkM)?3IqBqv<$sWR?QcG9bYP{90;o0|<F-JT(Te
zfc(!Vk^(xY5bD&fAzq1Iwcvt*ePt+b3`AED7>}H2WzvBskY|J|vqARS;K3jtMxf6w
zAsWkkq=9z<1V0LjbO=Cr(*@@ooz_PQQ8x<5g}vit1>}EDC<WH6-K1A-Rg?UQR#4~*
z`i_+lWCRKZMd1?*WDE)bUO*wi7kHmA1ON=8cf?2ir4-;F6dp1OdB$ET%4AZDOvB@Z
zj6{*ahsZvRDfkJ`8g;r%#k+tULm8q#FqAN?0OTD?79)_dk(H#uOT|hGWkiamjCtXZ
zq3|Vq=;c$6-%}1ejGSbQz^m>FWPD(_;VH!1$x<=071*+MOL%k4o7PU0DZuyuKXB5)
z12gzAD41;Fb%I9F6eSEDsTU6r?PRj$#tMcd^r79*ocAUo+kO0^W9T#X$zw?H)(adI
z=ofIuz+g;!8)*miQ-_bgcpS6_Z~6c|;s!o#qK}~gW1c<*r`By+hsu>In|^`@9XfWf
zvcZStON?^(g|z4)p6P4&0z3eCihe|1AY;&B-ahz62S$xvOk6R>F=)V#G_-*~WEft;
z7hfD~Wil}(4LW+k0(iDVhF3{IUhsoPv>$IFh9!7I1NxZ$ae6UP;vO&GTJdCS$vEgk
z-Q<Vg86VJvw!!as#OO!L#7L#@;0JU&<#3u9dXW|<4u%zVqu-skC>Pog$BGR+;Ix5n
zc<l`Gl*t>DE{rhR%{B@60plGb3>w0Raqxb}9>Mzx4qh+m;2rSsF-#q_2|mTKMce30
z`ip*JT=_Ny#t*mxlnviA-r+lpVCY8Q!n=%d!f;|yHWLRXtS!Ya^ufOU{1q;3TcIWR
zk(sBlxg)Gxtv3MVG88fLgo}9xm+Lcrd*oS+?{{F$n=}v$u(StLp?=MBp>DN8N2L=J
zCS^9s>?2N0?=)WjfH4R&KtyJzFds{G46Zn1!*CEBW(2&B<h?~E;yui-@w^_!H6G4A
zK<5DQI19-Ce4;22Hx#oq%=_Q3+0x_+v;93bwhDQPw9Z@ceE#)_co_FbQg5=1{PWRK
zAZ{p9Qm#HB9LUzcgy+gf+~L4wXEL3KWAvdY256-QWy?}4lXaHF+{jAiMfRfnk;RUi
zUp*~6Ec3!2?V3#Ek%R-;+Mg{CvYl7rV7OwGqU2GII1x~|4xZPq9`4tY)a!KeJY1QS
z4I1=<(a8<5czmw=Bf-PVO6E;Id%EN`8~&v6a12N$8#r4qLhvwSh~Z@g;xvLEaN-Qm
z68Z)5j^gn}$HosxSSI~owBjwLT#OuEdBY(Kyww=V@Q{0*!384?qY$G$365(rJlFHl
z(#H87!wdT0$%W@wIjmi)cKE>$e_(CE3yVPw&#jgrR!I)2Z2XYKC;6PK9ofQ@d5fdX
z2O3v#d(6wjc%*-rNckjf&)xzVin-5@c;4id5$=X!p+%QSm9~k@tC;O`e2L_TeFSNk
zidiRy;sG%x#-;-^L9BRRs$*$}87Y9#m<=E#0*F6|47fmwKNA)wdOV-Uk=JKO<aHt+
zl27gMI>?iUPY(s+JVmRWcjCN4xIdFVD=&%dlV!zu((n1iSk5x2C=VYl1q#Jih8N%o
z{*wI`?{E4Sh^O^uuJOEn?`b`r=cK%frzIUm0n1u^zZWkITO8PL4Uqp3*`_e}fKe7{
zJT1?DpEMFZ-1(M#@$|%do0B*b7f*{p!%{pREtEQ5OuRWLY)?m?IBxNJll8>o$j_gT
zPp<KJ%I(ytWBBRMekvs#?TL)nNxXyCAAe5PO<vMDJ-lwN@i>o<mq}TUXA(#90@-Nk
zX^BVQ;@!n7hNlT{Ej$2t{eF)ThbI+}8mI1A)$pZv($E*w2aY&x@LvAtM?aL2b-)ZL
zywrqaT=JI<95>4F`(zuEw4t0ht~`_1@@c}tNp#9{+IiY!x$%75b1s7Yt4vDpNaErC
z*0;Z9b+LqtF%8dAS7W6Gyli_&|0L^;Ka)O=M;uSe1>*7C1LOm;#bxLgqao#zhd)+T
z`2%=%d@SH7esX#gz05Su{#c@`@IC}^sp6t#dBh3ejqnCxMB?UWIoYjuk2|EmBM6`@
z!0SyGaV+afmYsk8_)y?*9>ru!4#!udF9~lIS59$pNqq9p$Dab`QLLq<=L*r`j(Cm5
z^>u0Dic1@>kNYHlcwXc#OI|4UTq`i-cbS+hhq%&$*PSh2uDE2qct$X8a4N)Cpt6<e
zVY$jCzPLD#_i~&T{#@FtwM9BGn?YS19?3W>N0pZZpJdv2Ss2?G7)$~vD;}3@o9}(}
zWl)U2czQIbt9LwC?5TsVSQbs<kSyDu<K=l6*IeP*;!0YV=jG~jjMszr6TpLxT|#@<
zLc(MP@U(ulz*77iF5ltey(-cH-Ubinnk*yvd`vuwQT6d^i{585`iiC~*%RyWzUEGj
zc!T{OX2a5V@CF-^K*YK92rXr=$IDM%4;P<IpMTC%01A|ZZ;m!iN%H4=;{;P6hwv<}
zuSyeFT-szylWF}Kx$B2U$m25A^Lx5n&mLZyYqHFE-du6X@VIA${7JmyW%_-x3=ij8
zTwF4~Bz48hPTm(+S83vkOMAFF<9XfaA<yC37T3{UN4zXI5{YwX4)^hLxi@PvMe0Mn
zTJiG8>yRs)_+(u2*~`dwO{V49P!xLZK_?%0<D}xxpFOW%Eus`Zhs$@kc(1Csbji5n
zvzKu+SDjb>=z=%cubHXLv9ex2x=qhx_90RLPryfcTzrV6$ye<ZfI&WnOp=kM-j0vS
z^+e)*BI`QQ<Ud|*i<g_ZxAF1O93<IHhz#E8PDwtW=)O93^&Nd5*d9fS!8N`AfWE47
z?6Aw1l&8SQjsge=eZDfVS(x#l?{t0a+K@;1_)-8K`9N=azyonWJmUL}j&H5`((@F^
zQy@=)Qc?g}WjgHWEW4Aj3|T?hzGHXTxr>*jrUOcePd<5`0-qELl(oGoI_bZsz>I-U
zO1tvyICc~`NpiBFV832#6nzEd*p-|wDNlhs1@aU)1{A=Q(`2?%rHVTBe(2Y8N>hV!
zN6Bl}s2cdoL!JVkb_#6Wwo~smtB@ZLpLRwlrv2Nt@3Mm|d6`)Zk@8V_3gjv9p;O>U
z53|G(FOy?Gc05h~K2L#96$S9D=f}mTs>@5=SmP1R*7K03K%N453VhNjP~<QRVz0QB
zY~&()w~Bxs*%%ssCt{KK{6n4s9|H=+d7q`{Jme{mq<~94WMp36C8?8t{v=SqPAsb-
zpPYjnrRx<N<Fau+t?kc6ts)w+I3v*u;In>3{>t*=*XX#pr^#PW3<Z2ppP1S{*|o%Z
zU#~7L(%7O;MWTv*pnrH#ZN8t1CDX?y5+2F$Ne-qU_;~iW^VEkyH0t)h52OAgt+OOJ
zM`@0<hNAgOQeV*=C4Zvq<0Vrl8~C^yNnn4pwDIxnv@n7c^J9Ijcu41CKTXD*xj0+`
zp1I&?+mI|b>eXau>7H|bnI&5>cn){(J!qfx;~s!06)Tht<zz5|kQ3S>^FPO(0x;^w
zbzmQN;vB0AL}TM^XZjM9>;2-Nt@7s*WX&h}xKJP=>=5w0w3qRSGC($#En8$Rp0#DB
zY?PS1#ewsX^HgzZk3}5y0kkK&D=d{b+IW(1&h{y>!jy-<vvO3&v6f?wW4uqmCQfJG
za6mT_M*4&L3~jv6;xss1OK1mBSXLoFlq4_hFOCM_LcI6CKOe5_lEfd&vPx24Y0{LG
zKj_D!rA?d;@%uQw9?sPubM;h&Cxk;fiac@t%a-zJ+u&H(72MKj76~uqLx~JUC(L_u
zH-{G{ZVVO5OQ5N8WZ<p>ed4A@xp3pTjYHj<e54*iWG7N7amyz^3<X@Mc>f$Gc|Q6G
zDR3loCeOZooQmD1FBjC(2jI(^BJ#415S4tkj}ir90+=!A0v;4y8I)vf!V@Lo3(^!6
z><inrZx40r)Xo?rCCOV_vL*30iLUzN;O$MOji)Kez0;~BX-ks^x;T#H^LiX#bX9zt
zNtB+|F?B3`qC8Gp&y%Zu;=O#*#Opp>Ued?&@|*-OgHPXX*|Jq%tEnmnP4qPs$1$0w
zq|aV9*GcbA4=tKE4viYtw~4^v@G5B?N0Y9kI51J$xM@qMRkMb^L{zR+^49H^y&7Nd
zO_>$Cozg*Hk*k`O22O9kmZojw*|lqT*rPAN)RA6DmVr^cVdG{Uq^z#5-IOm?8<Kc<
zzoL7hZ#^edl>E6whN2fYao)Dj>y%odU9+lTZ^1!%5oIZAG>v|5Ls+zGrx}W#HhBeU
zM?60BiW7?P<j1ayV-jYA%x1lec)8TiGj#%#<LP*YF+NBY&L)X-9Es;XnTK$Ps4iyO
zQM(X0lmSkbSNCz;33L2N=W*cSCO>H)sLyD5_OO(21>!gjeEOx(t7n(cv3(nRpBwq2
zdLm=p>mXkgURVat@p#h2!EyC8UTz#WPjiyKiyEICB<pgzdwSyIG>F&h_qoa-K3g1N
z{CRwwP8L|&pQtEXB6#)nw?l`vEko;8%|+(}YAYYNr$4jP8G*$YG1hO`6#n(-3*q~>
ze^FmCsA2t2yUEAvRa{9qU7XfDQ++(1ae?A0qi?dt)%8K%=cj*+1J7UDrsmThJq763
z<ttW)*Wa8NcJJ96s#d8S`k&o9v}o4E_>%ZI-?}G`u>Inx{re7t@)gR3lj+}BTKK?a
z9N}x$t`CnqIVAk}dtV7vDp#^Htz74iL*!gsrouUe;~t*!_k_mB3*}K46P@vsriAXN
zbTqm4@~E+Tf27{EYu>jITDNQ(`u6D&%8A!KPjUR{vJn%^<p^U1<%~gBLCT$a0Z;4R
zO2YZ`u_6@p9LYm#e|pUDjpn#4nmu=6czfa$!>@L&n&I4YPM3nNsd4>*;jnJ~#_-x3
z<HM%S+w_gxO5xnI``9=K2aK}Oifh-Vg@t(=iHn1WZ{4~*j2<%~tkbwhIrr_|T?R+T
zOq(1}^3oO`ue^)1VBbE=Q(oV?&PD^;TUM)fyLRplj|_Y<eD=x<Lfh6YGW}24K)fG$
zF051Z!+~Rci>@Lz0<Uk<<mqAB%(>Djr&xsN%_Zl&FOdK673FwY>7oz07=H){`pDZ)
zBCpH&-Q$qA1>!?^j90vP`OY6a`}o+kdr$cDKL>{I-TsBpIBn>{tKdm<i=~Yc9F$zH
zRI!5ieqR_qa!k14+RH5uxOu&d)$!t|rcD}#neWdJ@K3d>RWxqP*n4;B$MWUMtA8#G
zl{G%$Z@}`WafK%*ygMV@{?+T%rgAp^ecbQczd!u--Y3G>Z~a_o)q-zLL#t>!B-`LL
z^YWc$JUh;_X3q~NtB&T9L(uX_fgV0AFtC9Ga?97KQZ7`lQa;qGRw2}=Rz6g(T0T_P
z(lc?n03NmuO$#xE0)K?jAb=|kg<xF$&*QU|?Zz2tC?=lA%gbHYNmiHRVal71OxNw<
zx$2M7MategnY7^KZScHYX{+NxUJxeS2Ml3ReAFeLCsR)rnsx8m(Pkyk2EpVs=AL}H
z>i2ZnXi8XwSJVgo9N}LSx5D-m?Z<dqxrequ)Rw57ar`VY_Tz2$@+qUZwv@K-VpSD$
z8{tgZW5-W5qmRTGfZk`h=u8>_Ww>+KUNOHtX6Q;jHv;3d=H8z@p8BB`JOw={D#9!(
zlRBK=2yr?^vH9QQN`Z90Qpcjj%fhe!^iXKhxIwt;^7BIDM)ktq|Mg5*wtSV1OB6<Y
zT%g=gnuMA1e`2u71fKUxS$Nub-%=0#yJzn{ZVjAYGW?MkE6zL7*eg`dmQQK3j<Iyv
zD_5@#@4Pq5COIg?u@h#54((cp(|U9XojbIV0X8i>_T-C(6ZisgeoXSB%SO_;kwN`K
zhP@URFIkbH6Zt%Cgm*Lv_qGy78C=Z>NVg-RRiV6@`To3c&%@7$9^E>HD=ryeUZ%g_
z|D+k)<X^RVUHFaqj8Dg2dg0ljnUwz@WoXQpHP_m5VE=(IPHn`)1H{Lj1rR1&Y5Nwf
z9Q@^;$HPt;E7Wy*uWsR?$A^f1(=Dl|b9#fjD{kb$<C^quk~fU9Xp<yC5gMe)Ygk}d
zQyyTB6{AOXo$7pK^im<zOIhjcnQ}I7-WpyTGsz5`LirWxkz8`Fuq|G0p`144Vn2>A
zczAhE(Kv0K-<?0e|M91X>bu|DjW&!8!1=@Fqy?%`yY=o{Zye<^&T@^7BD8^q`UB4G
z-&e-|<}h{oY<uR%@n5rMeV90TW@uQyUT7=FLBGDIg$DKOgwbzJ4fX5Q(d3{<=-Q>d
zjVtmM(x^}$(>7jNgOLbe1cQqMZSeYV5D}Mb1HE5}e^Gt!V*>dyZv2$6TRcgAFVpKO
z&9y`x#e*VvSs~k}eU0$IYpX)7%4Nfj-3LOY@^WcPku|7RF0}1c*XqqSn4kf(><t??
zg&NhXh4~AXn6-`2VU|F{U|?p;OO~w+O&T=_Rb{2`Q64OJ8t8=7t?r{HE?&AK)X^-l
zMvZC~Kz<Y}!WzI0y<pMOP)UNIW5>4k-ZQUj)8;K<?)=4ukK?g(=dQ3t3|XOk`LKG;
zI?b4yoBKIlKjrS10HH42|LY|{H)|>2lr9}?X0c%5(y(6bY~8Y%x$iwMuHQLx7g(F{
zOu<w%1Fw^J;1b$XM;_ZYEv>yfgb%Y+W+sc5EVmbD;yq-b0kvvYw;2%k%T}y1clB1`
zzjEc8(5`JOtHbNxzGG*Yr}kFX%Qu@gX=H+}Me`;Zx>5$<>6sPp*X)S2(0-@f<!je%
z2rV_sf$8YadGi<9QdoQSV{LiNJnvp9vRSj|>G=aGmNrI1gyPzD8zrpEt6w5MXwtZ0
zRB7Uu`nGM~q5fH9b#+ji@z8kRZQH)nXo+jSQwQ~{W`TP(@DS+S(>IM9)wkt2$0<=o
z2_Dl-rc1S|l}*Wz39pgQ6c>uOn5i{u8hxJ}yb<EF=gc=e5V&<~RkN>nkeBD>D_5KG
z0FT25<S}DHGwkL~8<Wi1K|i)pJmX^B`b{!KmKv{i>ex<UY21`{{=y~V!A&+!=o`vA
z@-|!b`Ja+fAT8{WIZr<SO8DFr1Hy&p^|RdY_GWphhQ9J<_|DhAU<w1ig=a7t+qY|#
z8L#6fO%3xGtq2p|nJS~EbEq!4g1nf&U~$;4anLF)ODLHBt)h2)I-rPFOL;9>x;)g>
zl3OPkaPW-t0Am6f*r-80$;s-bG?0&!gKSx_XbGj-II1c>_c2EKbLK7z-MX~1su=Gb
z+B6NPoqCGNYyvy9Zxw#{i@(SVx59WC#k6S2GLwnTC0m@ItpNQjlrg<dGNgX}x+dfB
zq|KN$C(N0@)Y@COPEC_pq(`=|)i`b=uNmH>iW=*91XrwDV;&opUn^IxnD&$$46`L$
zckbF{@&=C~Fn-dsa8du>p?A-&_I#zr+#1QC8MEe@Y#uUvbU33|mvHUX7h8Ngtr}3~
z<Iju;|JS9XE&WxhSl$#l2?|G@CC|{9r#Hq<(xkmcxaA91TV(TQjl(TB9t@8>H9U0b
z)ZV<mw0F+Dg#kT-+@K$jThnLG3G)^#3lr*03+MFf9qQGsZDlN6BwB9RX!Js#0I*yo
z^*{XwAdA<_s6jp;mpV!w;+ge+#7Mxagg#|CnYtT@{>i1;sWaw?N9tsB20T?!Z72V7
z=@Zvy)Jfg+_4|@@$aUlnx*EPkCpzzu7650*7kR~`qnTt~OYsOm9Nz1B;&*f&bu|>f
z?ky+?@4h!fV`I6EjeckJGH)>DF^<r^jgX^h+R#H)tMHxXG;Jhr(XXThuZ|iU7-dcy
z>Y5|(9v;DlqRkHJ$oew+SkgbOM<*GCGXl;S#u$0P6XUUWkIv?O?$WuPg<&X;e<w<d
zUU$GdICtJ6TWW6E0(+pIMNv*o*+Fa8ZZJE8eq-DksBu-qgHA7W#wHo@bHz7|?~d(T
zXN*wf4my%aN;Bzccn+}1gRYAu6UvuA+4=|Xc(PwCaS4CQe)YE7@4(QiUad;bEbjhq
zR=;xiOrLt;lAiU#_APtD1wCqquU*<aoPA2|P_1%g9eY|Y%#p(|`|%zB2-~)9HJASI
zQEzKTw<dIv0f(_TO^o`-e>`DAaLKY&;ZY6NGAE@%*Us&WFdA$J5iuB<!8NE?+Xevj
zz4GeVFi(bB4|Og^(Y+5pr%o>yX3Sm?Mva-MC6x9ym{9hAyZ<S*xpJ5~W3C43+|c{9
zt|IvM@Q1q}4O7Gn>o;r(ojbM`LsYh=M0G}W!@&1E_>7o$x(&D~)8~XK(`JXIGICe1
z*`S%>*6`31!$Mc(uPvd)Z0)c2KCW5O4r7|fpM5#BY}UXAB?I)&_dcZoywe88z~@GW
zlTwi)VfONq|GiiFwpu3-d3mgit@RS#?M)f{=1&i*?RBjE4?Z?1ygv4wa6rt7;2rYH
z*wCeel#z@{2FqQ4do*lS{X4aEF?jeJ5?G7E*&2B9cF|BDL<m0m1n&W`RGyK)Kk!Vr
z_`EaCNc{W#Pgpy5$bfwKiJ_WZHI{&@V{!j{;K{I63T~TTTuogJItIf-kG~L}f9Z8o
zY|P#fSb!V<&MO${fB)B0aJ(iCtHPjRZ-i4sOC}k#<!|x|;ObwrWMz2s?a8*pgUg>~
zhqtsWuzKyr(5`iJYdhuppyR$IutPM$pvE9)X>P1$WgXhKFggz#IYxauG{~0`R>~vs
z@26i5?OHXlzC`H%?Y@Cw!QvIlmkJ|apI{2`%+pUbBY)iZ$>F&dN0~wy_R2W(9JLjm
z2<1EPdN^EiUSA1;lf!TR_@F%Xm1OL<v`H1q*VU!O-<|rt2|YX{0E%wZ8xy4jDusd1
zy`sL~XM!ZzrzL4~K27N;z<U%?q$nQ7_mG$03^#o45}VMVJTcaqG-)87sb|WKiQJ$5
z@woc;BpEyFG!90G-lujkMT<d$LdM&|GAHBUZ;}@%5{wJ@tyS}Aylj^Id~e#EaCYCG
zCVM7NnHe6`Qe>T4)r~(ef{+g=7$%p$y6Zt14kz1W<B_L^hP``sho0R#+hpqQ`<|4-
zKVW?P<ntrLsok_MO9~Z0X}&S;T`kr2F(tcd)mlwP*MvU3x|(r98YXJ5OHPoFJ(DlI
zG*V0N?^t`EA2M2F;D8Lh<|GXxUVSqR8#&GlF~;)_?Xzs%s+kn;oUl^#I3UBLY2*4f
zjz*6eA08SwR4Z0hOm^S<?-wP@TG(<T+ijj2Jj!rs)2gYZ|F^uc^A;{M^Wdo$Muv{<
zT9^@z$8hr0*`beQJBAU^O*#M?Z{M*iyfAchxZ$&xm|Sr~pqlD@b<8`VSC5WnT+yEP
z8v9H<fut<q86#)JtK-5MT54v}h$Df%v`IfWN-p9-x?B1RBZ;NdN1hxO+O%wJ6YNPc
zNY-kyhk1is#L#`>nU^HXrWw7Seetz$U|)d@^VViqzVqHpwXvmWUdx;ve}CZVP)!CB
z1{FG>yY|;HVcxQ3oAl1WutIb|$kN^!v*w4>)AYdL0)Gtg;UmWyKQ@-(g`qL(_3`2U
ze-9RaYoaPc^a1rp`_>V?ndm(7_@MBnR$8iRx&AfDpb?`cXp+;x=<aeHdI4@=4}WEh
z==8SeQ7a4@J|-0G*(2Jvv<b^!MH?JD$k2zSJ3F;+AzrK&-kvZ;j+kv`n8GhLv~Tc{
zfrG-N$+N8PfzQ4YDwHd0yu|+9*Tu7E^yy}Nj7J$8pqBE?oV_qi)N*fEO?=>6jIZCy
zn~Xz(zIjr7!+7Z_BanEE#n;EaEBi!F3K^2niOCWZzbh^sVDg-?Nk604Cr^9d><%A4
zg#G!Sk69m3{$tYlEt=Lhorey4Zs-{0qg@BXa~doA)xQ{l7~rqTR_S$WXWMJZ<mx`P
zfw3@IHpaXKOG8)jF!F`5@UHk9UHIrTFNcacJA!ioT=_%aG!ft82xCvAhey3~_+R=B
zrw?PLL>|S(t9OMpoA#QJ<8(6~ja6H;ucVy5PEhgWuzlD5s8%7@QTrEbYDxMK5Leca
zLc8LU{$}}}Kj4gT$M5gcEOV*NxCTBqBHVi8W$NTpEi3y3Afka=67fRS3TD=2L?j0k
zJJvXW0l`3Ip8@df;Fpa#n3X>8=%8@Z=PwJVXhs11@o$gVaswV72KkMjyHX6*(FAsq
z=}8X(p}~NDy|fSM^l<qlAB6w?!+m1t?cqD$xQQfY^u43m5Q1{EEdF!O=o!vAtGC55
zb2lc`OcMdtpl*$D({)$atn&=Hu7CcU`@-2Oo55bSa)og973WEaHVgx_=joTfy*Kpj
zwIp<sflXUs7yz73>DVe<_t{JB`Q8Vg3bQoh!)y4;sBto8nuf33{5gw55RaQM)!JYI
zMSdtr?r<6J%uF3<FUAWrUNn1IShRFaxc@J|urgX`CbL>f4e#FIp`$cYY@}KGC6@I?
zEi1h``fbAt+FmrEx0W|9vN)%$*v4oLBLnYhGjT=L{iPePvgctEFwC0q(meLmOEOmb
zhBHs^X>tF0<QdyX#WTwi*IYgz^gH9UoPB4Rj^qcaDmW<N(4%uiXYj37ZG@JWW{Q{E
zYa{ryuuH<^j-Py6gEE*xx?jA;-Y0~^2u+TD_?<7AQa$_3Ug1}N_?J91TE<gfUUl&q
z0b0?|%!)6$@EjAGk3Ta!eCfK&Y&J~&KfUvA^ANH3?ZKx;hQI#rcT70oHDTg{!GTfk
zv?Wg-juQpaJh5G#3BKgRcm>$Q3jNuT&L6OT{pRqc>o2!uDW31qWNPeN?}lr%mx=NH
zFYyVUExa47bew%=&kT>_sT%(3Tgux(lV_GJ4_aLqr~~E6{MJ{lmBMXBvEk0&-y?-M
zE%ZODkGz~Ohifi7J6w8Ee~Uw&qU-?nqgB&*zV)Wh+Viki-q09cZ-y-ai<hnx-&T}?
z6s^u+cw*pSe6Y#CKnmoIag)qYZqvG@dFdujen0%`XWue8hQj^zpB@%(x3O_M@cB{U
z=ik3Yvc6roNM6_HUwqY;`mVm>0(t4z*itQV7*fwmiT>z2Uo^f3UnaipfS~Q?p4lVZ
z`1vag?^oD2DMRObw|~i=@ti)d$=DCSduzD({Ikpm`Op9UOE|O7DN?>&Y^4R6$$<i-
zCbBq!NcPaq+BK`10l`Ezl1b@~PNz&>Fa-7%>=#`kXA82D{%5}-${$#@W{W9*^d8W#
zLESKT*z4gJ|M`t@?KPK#Ir1o8e(^cxLB(Ogp62U6ce%;iQ#CRC&7U6$7hiC;88K{U
z;j?V0#e221{^c952t8!{0}np>ob9iJK4a8B^zrw<eT&7_)?{MLTT@InSpdyav+)M5
zUb`vd$z%zZ$<7(QItz!(ENRPTjlw`VZ+>^j_sr8gW#)qLr{Db0R<tl?z{C5<GNgZ8
z4v}W`*va9}pWSXe4lh6Q#1Qd$uYj|mf4|ehS-J;m%5gPh#2ev9-~F=D<}Wh1uDbkO
z?e}eL6C6B|Ur_rPZ|!9;|MS7;!+BaR#%N>0fsuz{^lusCH{WoXyn@lh`cHrVcNjBv
zq71$B!pPUgnSJn$uUv0+HmF})I(c$t5(IrQ+VH^28)a!&L2IaVzIsMKM<7B%%jm~~
zHp%0CcHdK_v-{XH2W(!I@lCsNBGl1J(~Z|&s!2gDjq@Jim%qE;93FU+G2GF;)c=I+
zqU)}{(Du4g&>b4zOSDa+uF^d>{H^ftUw>-%EO|5GWQ>xR)dHMW?2|<oQ6}E!BZZuX
zqPZ_s!@dKl@bIfz4z683G_GAC?AKmI-lMopOV8_MEG}N7Z$$4o5NcFDISiY+Ib7YV
zPPnjlBwS!*2M&%f>&1Nvuxxr-_x9$M!n$XGc9iAo(7I(4xx6(K$_44N<8_b}K?3ws
zCm|>?T-c0#&1Wt&p|(uk#7#2j@G7obzd>y&8#Zc*h$RV@SsR;&F2WzzF3gt%!ZGl0
z<pT_m=9(?EYtz!6`N30!XDPaGVY36669a6qJYmdQ00w09rVUKF^Ncanv2D|^L54+j
zdC=<Cu5NjW!^rJ(YR9ltxML`So3m<Un6xCB0q*dF2cp9(wC&Oh&+;g_>+5F>%uHaG
zn^^am;Df<o-j>?L-nvD@@NdoRdY>i%EF%RE9PaIfi<jGg9wSc!`)ro4Tr2uS%k{QY
zlwPKF&!tz3K&C$0bE<?MUXy2D7-9R1E;#p04gT`BB)fXuCM{oWv`ym}t@Par)v@o?
zeWFvf%rY?Lvt;0ciYs9CaIgBDb{0|W59y->v>y*cq(FlDN6TTF83VKDFA3+Jjh8k`
zTVLL8Jb}=SW&7>&R8F7Cl6>Tu-Y7oAYlLUuGnbtg?z;OCEqA;x<?%HufNdBI{P|jf
zLW$F!&HA?RYIz9YwJ%;XAUyrT%VEG-z06R!PTmoK@_hnf0r{WfN&yt>Ng1U<RnEzU
z)v{u-LQ8mf*6;u@OQ+ufCQ$Gzd*T3$3yg(PIz+|xjit+1o6NOH@fN(t*k=!6JsFX0
zTD7n!e$MaT$Gi?q9H@iC6b{X$>}P8^891%SDPhWt`QfSOhRGw?DO_^FIcAi2+8Of3
zurlL-yjrn(LwHCl7i{=vQ$GgdkG^}e<Z4+hLoNuX_tcV{CMg)C$i~yUwbRy!r6yNz
zxcXdq97o$2?yL#rSJRVLCU+>@ee#9_$YnhAY&imuD=j1+KhU@X7z54IG6cG@EQ*oF
z3JBv4@8r@IYYjgPiCb>E#*7G7NAAA=nb5OqyYTfdUuSaIm*cG9M4$Qijw}DT42kkY
zzu<4H4|IDDz{tTH#=#l-niU#k8f6|7Euop~E_CAs1I{#K9?ve@hN@MqXr9Y*@(z=h
z0~4#)thGsHTY2Ri`f0*ESSt<a?~T%{^sNJZ!csc=D}snmIiQ4o_C0gNk)~;S3m4B_
zI(G;!YDEi=-x{rI_37Cuv+W6Er$ODCrprj14d~Y{9b1}_Nc-`;{@^<|o8E6$y`e3q
zzdHIYWlg2|J<_}Ihm8&42+#&>h<D{lx2<9tCzWGuLi92=&=Jsz<z|O-<!E8WiGE+Q
zd`-AQhPeYvx8!rmu>Fh`N48u!;KgJD2e=Hk2N(GEAfrs>vmDMOkuePZ3nar`=R<3F
z8sib5O&!`a5$~=w4>@7T@2&DUE?K_L!tu6ZBe6=ywhUIAK6mMvGKPnQelj#^=MC3h
zW_Xc*k-Vcd^hsux@a@F2D=;FD0CF0N;xki@(4f4&-}0pkn}w>C3X`W~ke$+|MrhwW
znlV#1>GtlA2DIZ6r=brtk7L<}PJ@u;bstx5R=+3I)jP(oHh@()Le~LHdXL=C0JGB{
ze!HGA)N?P6v>DhpHG8lPtI9`R49o&8k6a`V6&@kHnBa@?RxH4cqR;*VktY>gF(Bgk
zU>2WYvC;jZfkVQD1NxYUkv(T90tXBU2kLja5SF9^f)cM502+l5ZG!jbNSJ7^ii$>P
zus1LRRF^EcNTi~b5#i^+?6|C+p%F{K-~ZOlwqIkMmIek5eLZ~nrmIXLfR*8>K4mGO
zllC!jdJBBO7X{;B{GbMB+98}k4Mp&u-}|!mr_9vs_)TN<Z{2o-m23U4zN1Yn|Mk_T
zah8%$8VGmq6R*PszF!HC-+Q{^uJQETv()53zdQc$6LiW3;0;{>cpmuXtyi08fqMiK
z%Q$$Y@dyHx2Y;i8IFYxvU{AQ|+KX(Ng?MKB?CY7VCFxgQ8z0WsGT{K7>IBEaaYD*G
z92W|tJ08WpXU{(U71-E-*HOAGnK41YW6WMFyn+{>e}=pgb!8B(H68{p`pcA5dQ2|R
zo~ox`ctuNroo(+D<7kT%goBc26dDuOxZLD<*Y3SG&KSSWbCy@-`<O;i|L8lnh<9d%
zmtT7;?0<QTyo*<xq5@~O-duZiTd&f*^(>uz{npRhQZ!9x((6DyaYKXf@`?u+;L6L+
zx3;_|ULCC^z0*(YqSd8y)3`_Sm~`+way*W=$q6FUfZ_v?0eFxwRG|s-fTjN1zI2rt
zmK(Qiv8_L}mA{MRVf@wq-DjTvQ)MXQ@Yt?>qfEdZkZ<cZZZ)r#hq;8JpZH4x#&K1x
z?%>4%&}ZO}oR}jo6x*lpl>Svq{pf(UCa>h3-L^PgUL-Rk>8E9Xd9m)%ax%`69^E?H
zO4y_+b20)y!UGYWGGo&ZVNf?R`oR8!TFQ(LM8*4vc+)h=Ca6uwv4bB(a>>#trQ>7e
zB8Mzpq_5rRA&%nc3m1gR{vr*u@ILi;_MHO@G?~DubEcMzS&HWL^5UhdEe_fne^b5y
z2g>8m4AT;Q15I{1+qQ{mvlb{OijVhC1$36Zp~AAJ`LV!w%#HgfhF`TdD#C)eg|5hD
zfd1Q}<z)BVgA-mlfc8iAMuerEY(ry};3D;Rv!+drH`xl23#f}e0G!{T6XBdHCvI=S
z?r_Z&@~q0E3NQ&`dHp>tNe>_OR=DK+Gs9V0O@sgDXjOs(X8?O8Y46cMp_LUY1%fe%
zm{q(pdsCRWY)=?5VQtvEFJh$GOSgv+)3=6K-qk^l?U7-&a{cZwdis_yZqBx_azo@{
zVN5ykY5Z=@M*P$g1_Mh9wd7`IFUK|w4m!hOqxSh>K?7cfGZ<Go27?K=xx@O6TWm(l
z^VqlF6=C<8yZ*nvf1AxR-_deQJ#98U`Q$R@slt_i*+u6VaqG*KOFb;@6fzskQ}oa4
zg7DF60TiNk!Z?{{f`p$7aF!-pX*u@XbNb2%YHX*Z_6v6aMquXeuc<&t%w4EMEt;j_
zP2dC+gC4*bf@Z!cHsb4u0SuoQGnk-)K@^QAcb*OqIWSALft?P>)<*VUZQ5LD%(9n*
zv3RnCKl>XoP|ncayKmigqYS}DS~eYR%t(JS6J?3zvWxrM=6*IiBUljXhq%9E^o3^p
zv1HEy4VDvr@SR&tK)wFv1atYb#K&^hh4M09uJT!8^8+`^YW?T!Ji2Q{U49Xe&J*!|
zrF`h_eA%i+<1k%&fE-xfieCLu#`d|OOu+XN@g0As>fnNJT<5haz*&8}Yl-J2yJvq1
z!U&Ho?Y-=x{^4{jF|a&srxfL#VE@TY*L@~@>4q!96N6q=pKY<c2#Y)%M+%5BkZAxL
z<=g9^$M{K8?AZ;bK|@{*Z)qY0u<z)+b9&p>8V;whuhjX5zS^hP<GAu2KXIy!A+{f&
z6l^)Fh!Tl-j=gMa<YDKKpu^-Tvn691n!yUM;>mH?EJG$ElOzi{gvS_TX%aqr^R0I*
z>HBjQYFVyH<T;cK0g#OtekgaY7$E2e=d(r)>uSk-iKRvMpzNp2TxffHk<oZo@Pe}y
z=s&*kh4AMGUbH=Fq~)YAlVgB=oeP$%vL$Ywsbllj9X8H*W-Pj~i$PgiMmqEvpe;aG
zTr$Aq4qIS=-)QN3>a<yQ&kyu%tueYno*UY5>M8BQNNtM&oG$F~WLc2?*0c>Bgl7tH
z8DI~wAM&yUI$m2pkQd(nEbrg<$RH~lk7gq+TjD9S!x}PZk>>ygS%JKw&;nqu+!9SB
zKCdNdXvRdFl?Cd7<Cs)nP}i?lSN*@Gh~DJzL@nV@TbX!rAjV;b^o&oaqp*m7X=7!1
zUkjw49cU~2*&SBNd%a&PRP5PjKkBU6i#$qteXoq$-O^=+j)k~RAtB57zQSgGE<HDr
z35x81X*$e<?BpO=i{?$WN>j@m3*<A}sO@eGOjrNFPtb;~V(1$5iuWJ<fs=#1`CBy!
z;9#Qz=MkDTs%yqI+d1YhT<TG_f8S0Rr$Y*K4gnqQllJ$t2eG^OCF1+EY^Af)kTk@`
zYJXsdw#_wh?`zu$SY2`l0l01vPve~h(D@6sm5WtCvq4bWf=ZPtnOC!W*A7M-lmETC
z+ln3g__1+V%Dz<w;}^7yefPhfxADRXExH@tF^J(A1(g0b>tPnGR~o)*-LCNO*Vlw^
zUfCi{TDT+BsaPg7s#7W4`OM;Qb^nF|5wcqQ7dyAA9_}B$Tn7lMhbHwahUv36hhCj(
zXK;k+c58X=#Svq5dODibj+6zAFuCZ0vm}tT*Y2bb!c#B2s+nAsFniv@F!GH_a>q8a
z*|-@&DuZ(TkHR?sGJ4!(8`#st1dqQkS{u1r+su`B96hEz74@`qyL8zqTe>^FcQ<V}
z(5WT~iASDz$@ZdfGU$aNuVt1K*++KP89mHJZUZw`Cv^jKIGb`$>D1Z=0G&Hldm`Dp
zz>+h7F||s|if8COV+Z7U9P-Lr+EZE1mS+DoaG0HjJzLiQ#!Z{Upb?7GUQZ0dX9tgz
zAZcW$-<YAkq<q?|Yl3vx%Wue7-yc4s&9n$3mU6mwZets*Ulu)EXlaSPYXGOSFfuv#
zz@T|p`!y=6AWmeDkoT!d<qBG!?`dhBrd)l%F_U7$aRuc;p$r-ErZM*=>Mu@W{^_2l
z?9}^iZH}KZeXcghcQS#-sjmm+Jq2f$OlS`Wir5T3LLQY?%^TYu)p(tLZ^-C}CD(f-
zVC&YZY91K`OfStIanaY%a=^bHeNnGys%UXf4|+vq*R%fOKmlGD4iM1}T=b)*pgB=C
zMFSn<mXl#G$is{m0J=D@d)-{4!z>j{A+hB3lFIGep`~pLVCjOTH$SDuQXcy!PuBou
z(>jNB3gr3Qr%B3CZ4h6vdSkdi%Yop|iBLA1*U)k__;7!!=(a-2{C9T`3_tt9SH!;^
z?9^qA>Xpn0+^;1$HnY=S`1o1v?dm9{gmLn39Zuk+e8r08%&XW?!iaaExlo0!c{n~4
z*tv6$Etk2`f*1S+dDeIC)PzdvZOpiLY<cSo+6&EQcwUk{O0OTOP`<2r0G@hrOlaA(
zo;J^SG2tG)#$uN(JD1boc}a(zkd=&uXI|7&qP#s9o_mHFP$OTTB+pdzKEUlNmqRB^
z1~E*QYQNvLS6yf;C>(HjVBkxko(u<;qF#J?oK5O@nJ@<AJr55OUsW)J?frR6YzqV9
zcd!mUFfn1}fboH1XW4wpjCr=q#p*;99{CyIGmHlg=5hL(@iBPlYcg0H*yI>Jg@+XH
zT6wjN0~K{@RF<6WX}roLmaq=uYu*O1UR#3R(AZ$F?nJfe&GFO2xo7n>S&PBV{ysnH
zijg>E#28JSHk&p3(umi!wP>r+v6l7>K0RoZ(VRVN7{asXEe%&|zZ-31d3*Gmlgu!a
zbs?kvJv+$q-EZ7z@$5b1L^>-#=%7W~Rs$V($#co+SlW$2#Fg=l&Y32;Td7icE%7hZ
z_<t*W<L1aq%WBgQ(Z8blf61~H;c*>W#2Ld<CbE`S@+{KcGiborX20<^?QQ3U{m%}5
zHOyPQI(+8henzjMIuz9Xl(t3>IS}O$ep}}PDqEdnCrk@B-}o6j%)x%w=XG%CpkxTk
zv_o~kk-p^64W4HJ+%bNZ3McNF#9(OA&eybOua5R>vh4ZDlS8%tyT8eJ4!?pQc`(e_
zd$(%MMjejqY1<K!dXsuE%#gpl@r1qgFUf<=fkzG+;ej7C{7vbaGPXnuzvECium9<W
z?@Sqo^A;?%Ls}d*!XwQAPYfdT()=Z>!&R4@V|_93g;C-BvrjWapLV~ji2&O(;LVvb
zZm*Mp30;_A{Oj?T?A3m>??shUUEy|^Mg75^awh%kp=1jKeQ=p3ZsY}^6^12k<=_fq
z8;>Y_1;7{BJLpf0^`{4qHr{8?B3{wE9vm9#>jNdoisvNL8*8G)7AqWSPl{*zoi1BN
z#x;i~IsD4oGtg(?0gqs?|MQ{eBoE{m5FQ+;ZLb5R=o3~im_%`68^Dle(gV(=0aE*6
zmaK*%vp5FEwjKMzl*Kzj_l~v0@^!mI^8o2U7Qb2*LgTuX!mxKYgr4ndg#s-ze;_a8
zDXnXS@$YYux2}>6%B`FChCZE(8j5(a7U*PJAMI&F;gwTEK6lkc8Mi+#4{g?@z8Fcb
z9Ff<JgA?F^_iX&c_sl3jxUJOd5m=gGeZO-j?bB0h*u#bJxcJ;YW(XoYcs&gJ4cSD?
zY2ORaJ0s&ZZlyhTjT+Q8ro<)A8b33448TV9YnjJ}85zgwXS_dGr?b~eQ1V)nm3B`j
zwQSbV>O=_u?ET<%2P{JYFnVL*&K?2&nl`FqC$ceAFFn7n1fs$usMxDgMjefTIbZa_
z8^Fw%fy_W)-vXzGNe51!*M@iY1_8CIS2n{39Pm~(m9lb1Wrhwu&;kRtSND!K_%X_H
z+pp8+dQQhpdUvX|4Mo5ybZ84xL63Gi<;JXwS!ln$J<M2Q*^JqCk1lPsKS=!{cREV|
zXY}c5JVX02UYBWK6?<g5sE>Mf?;<9Z=SBN$*c^|b;k6x8rp}DYP~Fg%nKT2BSrVtH
z+3&bPUgC4kJWU2~XKOS0+i3QQAY&#5KSig-4hpXtMpHH-1MDxstB3GoFvIu=bY_|G
zOLYlk25NEu#ZNtx$>=QFBET_vo9J{V9$$c^VLX4#?s;uRH_>H@4g&1jz1ud=_v)b&
zq3Q#a0ZWj)q<*0k0{x3OhyH?&yrzSLPk0MDv}<m7^9l)Og|)TUg!jy`1j&IW_y&Q0
zx=x^Cv~%#FmJ9_p@52iSDd?Do<3}-A<oN&qKmbWZK~w=V6s15g6rne~bZWQudZo(-
z_2*hWSJ5)j`I$XOcuJ~@Kb9<AC4OuYF2CSRlNF3n_Tix@=*LFlOI``nM6wIRfw9h#
zQgg{h^PEdAH&q;anW>wlIwlHCSm^W5$w+kGBuyus0G=mLA4;c|ls<|G1;SEnYpnzz
zS5S(KG4?ZJ;1G7v`TdM|j1B*5A{?Ff7|$L~`{C!VIvmKWI(YL0FXP4o0*>%%Z+#eG
zj~oMw)JDd_m6x5Hkz;s;@PxC33_ZXPgAzT_L9Y=)cW^+CvCsGeclLi_U@#`Tc5Z90
zN?E112egvhVx<G)2VC39*?{*2IfcUi>}Sq5+9BhR<4kao4J(y~W%3PL$!ga+dbJtt
z<Fx6?+ETSgaV+6+Sd4O@EkK$~`*qqJPZWF5@swS4*?^4BK@Rh#3-l54?-Ff6U}Dco
z7L$HXJM;Df_HpAuWHN}pqm7Jt_IqN)Bim}rnSyM<+r=r@8ZwCKW8TK`+0R^H?M8PZ
zi~ES~)Ja-+i~ivNoo|r=e}EOHw{*Y}<DD>!UU-s8H;1b@Y;vaF8Au#?IV6F>gIBDD
zCjZD;`W(l{^ck}=`kEzJWIgzDcyx<S?IYLQwP~(HpaYCIkdMve=|e7Jz+I}b(WG%b
zb1pFHMZU6ZOFNO}c)Rfmv)Au@8I#>~h?AAV3hI}}^=cS@aG<5N<Y`Ui!9xxmuMusq
zC+K^&8}!xo2lftf*boN>`&&;xt()=k#CN8dEXD!A^6my1lf0}QaGL2Rx)%xAqlx~d
zUI3lnSg#vmB9BAj(hK_;J<&gm({p-vQh(MKZi{4Z)VHk}j3N51q1w<~dnV~?+S@p7
zt04c`XBmxy3buWNcW<(Xnbn0WFF)T_S%+&P(O>)4v5{yi+m=`{$lz@l9{vZ;a6|E=
zw<k_dvB|lqI>rH}VWzN8hT!W{)`$6P_Jn%X%7rV=XsFlVoE#>;zbU*ke|xA_scbm^
z)ViU0gUVs9mZQhc+7kB3dOg2;ozSUeWH2#^K#&di9OJ+9r{A)U$ke3<K)Bi349%y`
zP~hxA`RyP76|TIrzjgZCn&}~UX*8XKamQwDm?Il_ou!RSrsowq7$gWCh(@^(9p>Rw
z8j!87cv$@2G9-RDna04m?Uv6cVxlF8$DST$C*$06L89Wy%oc|svQJAJ?2Q4~zz##=
zzJKkFw=?adA2?;$R>p~+*0T(WpKNuIgm9oF42g1@I{kgoRbEUPN91KQe>*7#CJosj
zSG~!!5gLaYfQP2bo@TXPufq(OSy>$7^=E5qJU*U}dw3W6CLx|DS!S+0lo8JtFEdwo
zJWc-o=qa#f?IsE0YBCz4Jxsaip6t_P&AIX=(`9>R3^Somg7XcNK9o9>J|=s-wu<*6
zp4b13ocxHf0!|ogj+<YT^~9fZr6C;1CKIydL80^Bzm_trF{m&gfBx%x!_R;CWf@bA
zGF5tBzh)xRH&(AmgM3MX=W#m4<5`K}jTvA0(r42X$#`t;doMGY!thXFw)T74WZvYn
zr%PV5;ZGV5XDb)pGWP2O&kh=4ivQ;HyB_1X@p`fQ9(u;S)=X$0dh~g{f3I;kUrXgl
zz$nBE+)V~O4iR1|{)W7K-_(~z@Veqy!7ybz70wro`M!NlwQW|(vK-fB_|ZP+D%U;X
zt28m#p`~d*?DE2pk@7@u(;nRGY$fczho04&IxZF;a;SE-#!-2*O_F#e`wDiKiE>1c
zEGt(VC_LBLXS={!^?S<}O{{N7i)Y*pw3HGtn!yq|ldO{|C<(UCuLhTwEBKPr8;0{_
zFmmtEw@aPSvxB~0D<S2As-q0Uw#_29>&dwJlAs`5pe#XSIU^9_gNGT|z-NZaD^yF%
z#2d|f<&1c>PAq2w2uT_IaS!-2M91J|4<HavYjF~?cy9n-ek5<avv_Y6f7!r0kvstT
zfO!4>OdNk03S8-A+}6yN2rJP3BnA|Nj&e!EEL?@@l(}f8SuCCf($F_<aF8xuhu?FJ
z>WP+(@Gicj<(Z0l9S6(NEMwiGSI^K7mt8!7<c9$H`SZHsG(z_JfFom^wme61&?V}Z
zI8B_!%#JVCNy}`ItUF$Q)UMopN1aiZM12W`B7QEU6?|dXrTZ=$4)HMR1RQt2=NgYA
z-uZ$!=)h@M?=#|n3?Hc6IDa~=y}jAe#rq*y9=LcJR#E=v_);Jm`c?;h&#axkHa<{a
z&>w~U3lBy8<NZcD{^C4DVLW?Za&@I(X`=*|57|qcm+SdR=kScSel)CK$7E_#tzzJ9
z15|7gUNxMQ&)*kFSzb;y9KC$MlE(Sg?x{fkT|ao6ou|Eh5iYbL8ehmg4gv9%5Ke_J
zUbZS+fAx80B$CG=j$0ABC&m~DG^o?t0KHu96CUAJsK<EY0>*<+5=kE;r&ph$jR$!9
zdG<C^cD!zHGuL>ZMtR{4@3*8JL03kH+9==Ykf}%I74li3=LlMk9siy!6SK#WgF3v1
z&C75aQXXF3tMx@8wlLwbt*wbNd*>ZYUyEMwH~ZA_8ngV27jLcf^|e=BV5=i+rQk0c
z6yc9VKjoqg<q#Lg)zcCemxuARPMdhzs6QeaqZ3DJ$(((qtUR&j^DAGxh9aaZ-_R>-
zx|@+met&U%91lyVpEzFJJFk$|>*gBoZ}LWbSI8@#mN@RwW8Q|i9pmkd#(tswV|6GW
zuX}1+wK>HUp_>I9#ZOj`qL&B0-f+T_&mM->br$!$$tyD!UPR4?O&FMlIgvdrU!!0a
z#PTS6$$)I>JiT9wOG6xxtc$SX;)p-i5XaN+Id!*pUqPs+Jw6VOD{g&GN8_T-MKjNn
z>+1DT7PBaxnVGYU?QyyC5>6Vxak7W>&ymK(%P8*tc$H6+;(VRNA(uxnnJ(9Jad?x*
z;t?w80-&(pr-RV3MZ$_JGg+ROk-r{43YbSx`-XVMNgSf#a;R+cH1t)ru|#|_E@!_c
znIoN-GLmJpJ%bnbGu~Oc#z>0SV|B#x@l5d;1V;+-@{?sG>+|?zILn&sHDrmIWjr8D
zvpsu><P;++SF^0$>ArCq(wC(7_E5hb4xw=diS$jfE%A7Zi;ew5;uKI=ztxy|j;BrD
zC+l>aSuW>GT^Q5IeU{BV&dZ3?m9J;nmtRDy19}-dOSDnh5$)nMVOtbV4EhJ}FOV$T
z>xf@-rO6fU<;MFj!l{r}@$!@R$+TV%2Mt$gD;v;QTM5`(i=JGsrE<1IxS<yDK*{RL
zR=4+OGLGj6x7>W`d6I4L@Jtyoo=T=Y79Pc74Mj%+=0Iz?@ZdRvjAlWIlp<ju9g{Q8
zT$EQDpbm)ab;a`*NBnrYqqzrfwd{~0j#b^>zC$XY)^yvm#T|<<FFzY?;{)<o)Rn7@
ztaZm2K3Bfu5uRpoEBa^+#p8irzRVAw0&yNmE<Jzv*p&<eANM6oed1HaX&kTpMBz<6
zUe~db^YM0k*!SMHBp#&=Pv+;DGEDJDinB<Pj{_}z%bg?cG|9!2p6;W5Jr;&y)}`lo
z!|C9-(MKH5$&Sw!=H+;PC%lIzuMwjul%5fI9e#~MPuy>Wcg*5F##I-#>rhtA#QESm
z%DRoVu`;}Tzs90Y*zJc|ce0U1d%5USGHw3((@B9MTv6oVqf3um<Nl+Hv6D5f3y>2h
zN>-f6x=utNl(heI(KlCkrd&GA?88_exxzmY4LpiEGHpng;f^pb(%bGl>EWNo>&bBw
z#n;VcqKOtB!xiwbZ1<KR_LIz87!`Gnm*rjH>6I=s8^M#vo-R*QSVr-8URLr-E)UCf
zPdpH>)AM*-l%kLxo;I1z!%6RX3G;g|$FIroSX!frKYO|H`aF!XJUm{m$9o;_rA?;w
zJbv}`JbV3q?`gPtIoZ-D>-K!f@;q;@^yKq6?vv>W100v=sqi@-p6xy=58(ihdQF96
z!plouJ*9_7<wQ@!d0l?>bbj^pp4P*Y<r3~?#IJ;VUe6Pc_b}2G2aboQiI?ed@i5YP
zxaZ*-Pm{zW{_J@iKQGIlJw6`p`HAy;k0&f!-Gl?4&dc}wQEcIFJe{YBU(@@F*c+HG
z>QEkWJSa6;pO@t|`m<j>oNGMH@3}g7+5Vg>&coy5-t#1{aomYZ)<IYj7tiC@cs{S&
z!#pp~4)L(qeOebp7ca;0iKX*mGI(VIbQ8}P&yy>hyq+$3^*FBHR>y}h2hW#$PKJAY
z{7M?Y%k}3dv}nEY@;qHKpW_*o8R=io=Xt!o__NoS>zXdtvLyM+afs)Q*O@Ke(>e~0
zck)WQco@%KcKp7$uw)(N%hd)?8>Pu!7jX_=uU|bp+cloX>xt7Q8J}#oml@CNd7`jL
zpLx0?zn+ZoPmx=<?zH#EmEj<Y*IP`vj!rR2J`qu+ZD+Rh*}^^%#5u}FKo=lBG@_6X
z@7HnS(9ecV+cHLDz7IdVKFL<|;rion@!85OX_)iKUVV*avtDfLhog>loyWSo(zfrT
zG%ibu`zIk?wtmkR_F=d6qlnY-pvlL%olFdP<r1$Wj3x<3MxkiwS(M;|=GFCHzC7e9
z@M)$18<@9k-(~M><Go!+Gq^s@bo?Z@9Uj>(9^tJ4HS|uqJdb>mdpqB@JOw_!6u_gn
zXYW3Huct4iA4zLYHn+Z}j?vNl{2cN~h?vjw$)W(?jO7LD46LIWT%Rne<XaP`0H2+!
zt(QONc_dDi{C%DRc?x{gD8Q=m(SqJNUvj{x%sP9<&^#8{lpK|O$~*;*8wF7QEH~sK
zPk~$%un9z-Npg`VAO10=fU|UI?1GPJQ*)w?os&0bijt@BE!suHb3WmDJme3>>Kv9c
zXFlT7LIF1SAG*Q+*tDLB3NIZ!zHn@q*>Fw2SoZkhn=k!@Q=k|Y$vT-nMhKo5{y#>@
zeng6)s}9#Ehl?*wQz+|r>O*AfvBcNgW@QTTkF$}8Za8|{M6XD4x*Y2(_!Xxgk4+nn
zE!Ky9Jx;tjtZWYZ#ot!XfZ$6k#Brau#N!k@zV|*LK8)qjTy?_(?BO~b<jP-MKJw7k
zve~};Q(VTQj5{h^(*weBKT1^c**{7YNN801o~rPJ|6LK3bS%IhB}scC`9IG0+%vXa
zzDLgy&POYM{4mhbmXnP&{7V*;ovlyeVdypf`BzRTFHVDO<;TO~Ws&dTL8nhVRrY(=
zsm0O2>F<0(9mS>3UQ_naWLe4Q?72=%Xh~?}nD|$B#HvSZ@H$O%(ZIvGIwb4!GCba|
zo;O!K=`w9N7X7O-VrV)VrM{NPQ1r$vSg|9#GI^s33j_ws&3pFgjqi2J>r;OX^c`q@
z)LK~Om!V7D4@Z>2na%s>hzcoXCa)`3-S7o(w+HwNKrYCYKUaFf$-`$13sgSe67@2Q
z%X2K^ydH0RNy;P-pS^+>eB9lIdr9)<(|k-QP^c$t@*FoXyuVArGw_P@*x_1!qWC|F
zcZ6dhc5!@@X$w=8?CyB!3-EHK3ntzt7<AnG)v@$_`tkO7JL6%VK7KX57n>lHj|naL
z@X;ma6!ENfAJu(GaFGBNX*eTO%IlMRC!eg(ydDFHw{6~n#r8FpdUb0bLZ4$$)e#j@
z653EO{kdn)Ueh~#$*eTsG=R1X7cUF#+O)K<86|myGMy*<YGEa;j68fT=YYPwjt)x#
zc<{9wK8?sHeUApbP4G$dt>+^zt?XBCyZsJ6zf-+hm10YwfzORy6UtXDA3C+Et`B{e
z*LRsKh5GuNykuvnTd7QFtb4UHL&$i6APv#6^HHESi&U9$ViQjsWoRyEgDf5&FOPfs
z{$#8S@;h;e_wu3{N%p$pctki-d9=Jq-MQ+ImOrC5QIDs!wplxi(t)zcLt4Pgb)2Jk
z+Fs~cD2mUaG#fd3oC%9sHEY<nDpjb;2d9HY>fnL!h_<w^=(j{Iah4xaen4MASIZUQ
zy?w{d@a9|Z*k_xnh}pdje6O1U`q~@g!=fcCLi@HYi}VNW@pg|JukTLp-YXu81QK!l
z8IGzet~?0er*D<Q@O(Dv@uy!3J@rjizLi}BM?JVu@&57pz!4gFe3s^Bf_CV`>Xr2w
zN$Mlt<f$`F&{x;T?GLDpKnB-XogU72Ls3wCj`DGRzr0h2)+W4Y8{qvAS6p%2B3vV7
zMtYvf6Y(nFttB)93#WfXBQMY6^4H@>ft@=!@FZa_9*Jmwl0LV&EsT5n-7t0fY<(_s
zeW+EldZ=6pnHceX#4|-@K-9MpZ^8p~E<9^#jc1F>i&d-Fg(sgI9=e^<A(YcMcgY`>
z8_5pxI?vO3=N+LSkZgcY(hTHrT)kdPmBtr7o;7>E@oquE{xE*R<S>815{>O;VeyjX
zrhFK`5x!PL#HWT+;aH?hAjzwR^gw1Af*IUBE%`_X{?volmIuRGaZ%lp8w!tyk&ie&
zTRK*K^8TC!`h@J3P*?bJTAlKdRXa7--%`8Yoia15Sh?Ch8Ca!C^!5+RoHBKm#{Nmt
zcU27!%1i?IK~p{nH)-;;@b2UpVbS8{_9;9*LFhTGy=gpYEqMyVinfV5oCenZbb3C?
zNdMQXTPxHQf6-<u!{l_tXK@@ojw=A2X+k`W-_M@AFpL~MKJ@L?Ekh&nfCu2|xR1(>
z_?BmrO}fU@5T1m>HWlR$D=*Q9@j8-yTUbtEoB3w*y$?StBd>X=sy=ibU}@EUaEs#y
z&csm<f5b7SCcHB(EM30J^cP_sM_VZK{W<f^*qb?PUYI^}j_D*mlel2f(lB@a;;?kt
z%Fslg07O5bFRYK07e1i8neWdFqu-nqx^!x5Jh)#*BeGjjrswW?@afP(-`lQHy;{0|
zqdssvybU~4cEkgR(vx({)DC#2n(RB$mj=LhuTD(!&F{mn5vChQ1qJ&*2;JM(2;JJ%
z4Bgw;*0omX(V<po-LO*FQxGu|>9PSxGcZxq5D;sbFh`!oLM-A?vfT6M@!86xJS#(y
zHt=G3BE=h(hcM4om*YYG5sp#4$vnyW9Y=5gXYx{pKgV&81}E)~(s~?i^LBEL+8!w$
z;)>!E(F{DCCVa@fY?)}*LD>i%@S+^AgY*$CBD#AYa4in34&mVK!CON60Lm_3uAHv0
zl9wNa@w|D<wy;@Bvp6Vsayg?1X%3+Qb)}iw>A<&Y0S5NmMXMAa;gX8coVJ4_dAxtP
z=Z`uFD>+1i3c>LFkk`ZV6{{_))0Xn0{wm~A#}#1%fXlqaD~<mCT$oQrXacvQxJLbh
zvhqC93^P)ilt=nZ|ENDbKXG|D0ThVX-^S_MbsNGT{`!c%6T2m}ZPOyG->^B{`_Qvt
z<EG6PkHTO)$7KM#OyBO_vqwBOQt=uK`q?j!gQZQ&7Sj0GBW}_1HP+X(kZ|V@AJg!`
zp>dI1bFXJSpYgQn^*TI1Z5saSTju##EraWUCq{&QYDa|%6{P?_2v0u$a(HRPXsZhe
zT$CRRagJ~)%By%rogPeh8DF%+4L;{<!lJ)OSAajy#B&AbT(nxUbVc~fKL;{ULYtP&
z!u&<c!@ma(3R|~rxBOcqr~Z2H<5KQRL*qvE!-kDp!(IP)EG${N(%Q6NlheV&-U!QA
zuCnJeS<~%}F0`5Y>BEN}dp=BfcV=kWqN#bK?!NCSGptGJv}FvN+z{><2#)*Up`$d>
z*q&(<>752#Q)xq*@a3!4nW5t4LI=upot2cGk(`R?g$$%lZ;SW!P8k!!UKty%x_m%z
zL)rKuUAEJjIz3Os%jt5JE-E*>F+v{x3fol3AA~y{yiUdjVP%Bx;9;+Y9T+QVniVZ4
zl6y{z`O*zcaH8jEd>L&-!#IA>k+J5q0Wac#i!V4U%$~bge6h%$`Jql=!^TZv*vPS(
zBvzFC4jLPkrSG<fhn^fBHf`Q!6T>np%lp9U#-<VO@HT+gbH%FlGD^$YbEGe#@~LP3
z;#HacMgO?X1ddpnq;V=|qo>;&6h7*W3HI%3^sTqSDlO$tiI$!ZXs-qP5IZ!j67Cwj
zEHta3h6`DkZquHFp_1bIU(w8}PSf)cGz#|Z3%g|T!-Oj&6j+XHq7QM?Io4?+B$n@L
z&6t_>;g-b(Tc<W3CC3s!q{zUB<EvDyY@I_a0svy*VI#eDh-QfuDpUw9nl~v@7cS<d
z%U6bKRjU{tFd^SW+`D(Lx%D?mz}Kx4;gPHvCf>SjN2sd0H*MM)cJA60TD53qvk^Y3
zzIEHS(4<krj1}(&6~b_DL4nnWCl1)QeTNMm?pLo~8*1qz?99@E2p=t7%5$-D^%`SN
zXy(whONZd)Y}9PIdiAPdrv?<v+_Y(9i*wo{l$NhpWdf{z{d!@WXhr+7(G?o{pg}=^
zW21%*G~13o{9aM?>?)5&wW?JO6$A!?W`#bm-c%o+C*2;susR7|CgC00w>D#wdvIsQ
zLx16gvyaTDXH$`YN`=Ksms?+faMOm+Ct?WVH*ek=)~??W8a1dd`qiMwfRclU@B#wx
z7T$wK4eQx+iGNg0O}$SM!x-4055_ZFMbWKNe>D^>nb|wd;MHZ~E4&sA*k+CDnxY~v
zf&m_drVZ-V4Rz|&B3MSnCX2%Z1u#yS#nrD@+jwJ_#=%PQaaGZqnW_WygkGDsYz+<S
z*R>@h;v5%Gm%kn-3b?dZ@y`r;CG_ahHr(*}E3C2}-8zT+AATkb8v0uJ`mNWQLc-&Y
z=YcWVOyd(C*&}%~ea4(HcEYsKv0cm1u|r$E!!w!`trUOl65lq~m`6?lD2BSVB0k|6
zMT8PXK2)z(EyEx10Aph}N=dv^M{=dA#=>s#7Gs3C0(rnzYRm#HCBKm8E-whfJJPv*
z%TP{rAd64y+D1zB?95o`-nB#c#c%JEcfX6qeI%FQM?80p#iw}FfC!h9Z0sOc>(s6l
z>eZ`b%5;f5lanUT6wmJo_3PI$nFU{O+PuZmH*MTV=}_urOy0ul70Or8c;0FF)~j2`
z>R2JV?%usya=vM1%gdOz-VLYs>>RGR^gK(`xl?-?^AClI?@SMuTzIw&qc=h=$*OOC
z?M90~>x^Du=*zEb6<}ES<$rzC<aw1Um27O1ASo;3<80j9lg(iG$q#NbdXXNvc+Vrx
zhu{73KTL)b2ECzW!-n-uHo+4M7cC3pCQg?JsY*Dr?`bAqNQ<n24s}H@bRvM%17|ZD
zbWi`YGD9C%tRy|xtce*w-j5h3OJy*#4Tv(3EyzUjA*);_&yaVlN|lPH$JAps*~c4>
z0gQZVDjuvV9*nmcnlo{suhFMCF3{`oG~f()J(PuhYNYnp7Ei|0qCcPwI?iOQX!E|j
zoNtLXb!%4-r}ye%GM(}$XR~Ni4>>9u0iccsb>ZzuHz02*550@s(M(=C(l~7}D6s+1
zukg_ht(4(8M!)qCZ;zj(G1<ONCJ%X`Q@76Tq&sVcv(G%u;^?Qj3zmifXZJBVY{;a4
z=oj=_qej}A=VMrW(YRq<$@rZ%R_Gh(VIb7&s|`M(!-&LYpbxA0_>P)KgH4xEj_V=H
zh`wl7*4j;5Tgvu<58||rDl7SKi3~-IMBtJ>4MN{ewbY1{!c(J`hmOswhSN`}E9>`z
zP_0U&NRtN*9J#HUE&bo$9t~YOv{Xqai2)XebI$A$F2Cel^DZuuz<A)%K{BxFn&G!X
zv!-qmyq~@DBBe(nM>u$SF!>`-z8Ee(zhCHnN=L<qFjmW<yj=47&s}Ej;DOH$6JC|%
z-P$4I*9u>}{xilf48D6b+iy^}W>~jjYiQTHX}ICq%Vj+62oFB?f-xGih1<S#jWK3n
zosj{BfPL(#myGaD8rKiA<}3<rS~M0j)DLUcZZM-{)tZgrKfZCJW~vQjNbU|#3773M
zROtA%>o<q5-||_TdCs1*FueTQ+o5^0hBj-Q_Wr_f)3q0eGf(fS!LTv>{r+b{hqld3
zsZ5=@AY5=xFA2VLt-TLC`a-z;qO$@9<MS`RY7E7a#DYaDY$o=NTdy_7g^?aoyP!>j
z`n5H4-63ICCVclBUouAb_E9MJ4kKS1XEWs1EgNe#{z~}l73YSYJ-V3idi?2O;rh>B
zWD1Wx9gjRQ#AuAcH*@x)aBjbzUQFg1uZJ0Q+t$s)IsJNv5wDJw!L!K>BMfc&>-Mi+
zXAI6jfBJ<HVcCkcp-ro%VU6MoG}HI7GGo?Uc{WB$$>K3s8LrWcxc6z@Y#Cte_^IK?
z-}{Qu{7?UQG@N@@FEbS5cw~?}<R+?tUk2GpY2ovxl+TRW3q$7)tt6b+hBfNT?|$w2
z&`KT)CJ+O))Vy%X%FtfRAIlXFulW3L`pmiEg_lN47&j8GE5g;64G5?A?ykYUK0N;H
z%i#}qe$U3j1L~{R;-@PwJKy3SdVH`1L9MWA?Z(ind&i98du#mU@XF{3;++Oz-oh2(
zn#=l!v(D^wNS_|kw0ywPQ$UR2{fZ}O_WWhxx@#`Ba+#Dd&ab}W0vT{?Eey}%gOYDm
zC69PdCp`Ecw|`Mz#M&Mvy*DdVmy#YoX}TE@7zU3%Iam{@ZI*tqJc!?c$K<IxsBI<i
zzmHRvg7NINYThWU*4XGEZ{}617o!iO?Qi!#B_pwVs8^?ESiEet__A5JQN}D2mWKxp
zwsEvy3KNC$%`abPlO7Ppz+4~?+$9(EGyLIg-~)L$LL}-<q1UTjLlepEW+=Y?=7ccj
zt@k9aT7;(tjSN>^+CTK_+12=Q;=9vin2l4q`o{ZLU3zxt-LtzHi74!O3)vU8G@Pm}
zCGSm}6`pwZ6)pWWv+*!jabLXdGAZv)VaV{&TKZlc@XcKNnR89S4}NJ>m_2W?ly^<Z
z)>p%~Z@b=%A`I>otJfRe{9w3!`)fB?nM}T>NS=Q8>o-`u8xP3c;iD$n<P~FpzBKid
zDdo@`yu~vm69)7<&5T6vf68LA8hMEiNH)A=9_On1QpUoitHbwizsZc|iSJGi70aI-
zrp=shH0{!<T|oA}HEBj@E_%(JyCi)6%5!Cy^fu!f<IK0fFj;+g;1ErcYlm%`Fx1op
z8$HJg46>7LIxE*~2%R(uS*^)42Ikjpxi(alq3C)Qkw0Vhf^cfLNRM&|=j{no!aGxD
zhfbO(td}7K9slF&H=4r*3Je+kT6lB(v~X(I_U1G}r`+;|D`luQHr{l@Fix!rlct)7
zy7T{M?>zvmDw6#FR)XXlB<GBPpdgr03>Z+y9B0(YIqc4++5K&t{qOGV%+5HYGdkvs
z2nt9>qU0nZ0!q#~N0I;cQ|H!w{SNoRdj!XD3*J4Ub9HrfbyamA$pEho8Xfvx*-QMd
zOQ0`a5a09<9juVH?Wf<p*96)r64uI>D<ju{_e}|b?;tcVXa1tluwHG|duh1;&g;T?
z=XPZBl4bLtXgQg~FabaJ%236t6*f!T*Ff|0tv6k5b14GzAD`-P%9zFt>xx%z)WW7>
zxbMyzExdi(7Gbi+BSIjG8x~gh7S4TdvC6x_n#Gtv;7-iTi5c75i*N|;txc-`>b09R
zzHYU70<H3_d5i22>~a#W=e)Nh+<Ieg^{;rh{$cKg9)Wf1H-@J*x7O4++aN0iLh6mz
z^|moJY}5pspX=AHX>;E_w_Ovu2@j6@1(GeAHECcp29Eu`*RdqmV+x88kc8H-Y5Re&
zdB?#Z*+Q$yQX)3_il{;R4jl<QrBU3z>tI;BWxokn4QrPV<<C0WtcmJ;qg4A3-qT68
z`Br8-|K)F<)`Z(4v})N*NF6M}@!Zh&s!NSYJ@UsFjDToNQ4>2pA;!2eEyiKf8R*Ed
zlZ`=sU8{K}>qj1c$uwT95I}sN%X)+hM5Jgs|5ri;{sm~VK3u*oJbcgfp-1;FHo(a`
z7lKhYch_q5hQ7VSwGzbs{eK=eCh&uA-D|72|I*5JidL>)>35Y0t<|bk4qq1|23{F3
zG>jbkPWXnNA;4`rc5798nS_B_;av$6zy9OP0gXgiO*X67ZwU|G*H3<KEyBfGRT$1h
z#Lb&EHm#GZ*>~*RZG?`%i$C9QAA8>XC$75U;xJ0M053oJ?)|1+9XNPonEmbt)?Zek
z=m!FYnaq9n{V;Cw?C`Vi-*1G5|H`i)dpZ2(Kbjj8LTF)-0Ia|-zMzX%>6cjFZP@Uf
zY22c0kGh44G4KFZ#H<4ExaC@#V4u<iHhIb{6BMURpJQtJpM39r^Vt|P?wv4r#AL-Q
zW6b<zO-MfxQ>h~j#fR!cp4);eG1bxIri;P6Ys?;8UZ~ajiGb4-X%YGv1J_-BsjUzn
zfBIFecxM{}m_2ua7}%2VFMszPF}aHJeVU~SbEGX!(8>-RGFE+glQCO-%^rFD<<P!u
zOZ9a-4fwe>Il#<TtlFRn>>gV<;N#f0PcJcmbF5$g@jw0$I%&c@TiTaLo*ESX<>wD+
zLTwi2sK2I8f7cjAQLFkBX?s4+F))x>Q_;5-HTjp91_nS#gJ$ZgkN5)?N|5PsUdM3x
zB^TK9|NQnTTi9MJes}ZrSA=K8|8A3@$)v<sLre0&-8b17ds7qRn{T}xe)#SCj3+VX
z(R!dEfBL1tp`R8AJ<jWF3)Fx9&&RZQJKGjZFAo?d{@OI$bNdaZ)%f#s12l2%w(=*v
zGt21dZ+`r+JwGbHs6`(xvwV25a^)HulbBHfcmfM1G+^bzSvIB^oA9n?O&d#iTN&OM
zHZlDCM_-k;q>kGAVfe$71GI>#Z*6+~**C%uzj=pzE8B);n!sNgFkE%)9PYZcZ}`n0
zp3_9%!GuKoJfC@KXn5eR>q56K9ZhpI`JaDhzS7iVoA_>n`n5En_cN^%d;$UJ=V}Ln
zAOhCFA!EYVzj|A^_Nq(5pQO?It6%&oTybf4Qz*DaVXY=$z^x?qpdYlnwWYn<u6iIS
zB24*$z~iK^2-PgY-I@U}qyNzqF~<N)#k<M-=RbPLp5GcVF7(&p{-@vnYPel|@4x=<
zDe;s`Y;Ht|XF&|_#ZPVFqL0Gw{`5-d*}bc2?e@r8gOv>U<5L5|<rjA|x^lh`zekxc
zQ47g+8@7bMm6o%DG<~=UOq=z-Ee=TQ^E+BYOrcj_(TmrnWPs0AuU=V;jw?*dJ3y`x
zFT6T5{N2yKVRPjh!zYJd{^Gl)h?p~PLHN@%Z)EeeOfo;<f%y~P@>ky&9e(z``%D<d
z_x0(QhJ=n%a-bcA-XDJ8Hlw)#gNBEJgU6Vr7u@__e6rtlm)iyt6fp==-~YzlmS(mV
z70>q{E?ViJdW%N2kU>ahj6D6~o8hvHx=GX5!|4A%fBk3kN9}!S&oE}(6r1}|B$N`}
z43Q=oVbnFXXir&?p=ERn-$&B?R+8Y4oM3YT!jXV`{@mQmJK9^dN+p})d1f&)bj0}Z
zy>H&jqi9NsHz~OoUp+E&Ye&gNSOpnpY*qrWR9vbBNUsaJipKVbU;gUP8Yk@(uX1?m
zrD5T>zx;{SXO?_vr)$B<_+pVt|E-WFwXeniiamr{Z<}RY!k;1qMH+1@A+0VRe`}>W
z;fzqPnmRzwXjc}l*%vnL`Z#RddC2?|E0!xA-d?yP+<Q^&aM`(u8dX_j0rNpqN$!|{
z0j}qDZle|8W-~+V+OuDSs<VYb)Lo@HL919KsE^Llz;jIx@sQMAaBSPUnHa{nFijJ1
zJ59zv5|f32GeIww-&l|H&M`-A(m@bQwfO>5Y>OsmD}D=G8M;(YoEX4OWtpAZs0;vA
zK3d6^65f2LZ?`V(OtVCITbWr=do!6sT9_4GNTQ5$+BGvFk+>Z@v<{8x*ADB&$RO6{
zjq8e-5}Y-c)~d(3ZI$mT6BN--AZP+*wIXG(pt44l-l};c4UWY8`{B}6q0i+#vvs3=
z3qC0DzpxDSLw}ti6AyrpdvVV$CM5EVK+~ah<G`*sgzYjKTufGIEBEX@U;+y9=sUD+
z2<OKF+qI|u0x;uVaDJz3{a6KIo(1q9>MceH!vqkDN{yakeaYmsTXd6{Gq&2GX649A
z5-sbuAHF?2{`3I*X7exp>gzU<IODR+iv5!?1fqkZ?p-@%%?R`f4#U7)t#YrIQ0E)N
zT1mSDV_}tu`D2S#-I&fWgR=@<D<-}|rU@7XlliZH_l){%wpQ+USo;=h;%0G$1`20<
z7%pD~!3@z@^whI!8}mWIG}yjPOKAk!XIIls7gn+S&*{a0XaeCNyP(WWAaS8+3lM^4
zYSRS3V%vo_#xCG~xGW0M9@6J9c-%UCEUOUy8!cltV;q_`Md>kZT`MgO<~k+}wD7mw
zaHZwV;-Ry6%K`}<K#OLL!dPkl-kvZubk@S-+YjHF)nX9-?t;Y{L#?uHg0C%Kxjy_(
z3sA;5ZZQWn8UOVU?z3kms`JI05E6lQqQ`cv5`MuVuIG8}!`KPat&O<p{LPOZG~UH{
zWMYFi1Iy(fh<5Cp_HFE$w4K{Gw~3e+;HZ<@foYPl_@1;T@O}Kr$OB%^Vhuq7)Ax_H
zz+5PN%+MtI%Am2~#;bdUn{VhNK3U4*<mxm0;#@1`mMqGqJm9GA)qCD$^Gagbum8X&
zFfU>OK_iIkl4&ayfi{5$<}-kLBM7r;2#qm31012Hf>ua}wiNf8Jz8X=wFMAFuj<`P
zn%nUvC?Y6a-1A)PAHt!l50<Qm1R5G7Aws-}JTd75&h5_8W(#+1f_}$Nnr({<77-V8
zZD&Fv@ljed(>w(q2Qp}~d;ft~qs?~LsgCViOKW(awHsPT7<>1<g(m2s{o13p0<;P6
zvBAO%<qL|PWpYQt0!4ipCthzB49p)pwc+dnDSQCvpRqA>&if`*&zBYO8a;zopp)i{
zdGCE__xvD;SJ4~~uXdO=Yre@1JiB~kVb=Ktcw<g))v~FzmCY{T7U3TO(9-JKrbR=^
zK*=Hu`J`DR6a;HE7Nyk{0-<I4eeQy#;k+*GZShE26k9CldSB8rbUmkK7(QxZxKt+Z
z&QdmD?ejA5&t=Tw3Wmj?pmyX^awt+zv_WCSuTD_KzumWSsIHyP4zG_}71}keqQ9!D
z$R}c0XNFppMa%~hWO%%IP|*k^euv7H${XRa5<(pxPj2kC^?~W}xhAB|4Lg1$v}Va8
zLGH(y{89TeFehr|{HC0AJGN_~)$4UePzY0)4Ogs6oWfhn1j-KGgX#nZyANOnZ&3iD
zu*DrPfzm4Gq)PRYl@#Hqk1@?6Oi~W<-3NiyDmbAn$x2j$rw9~+s1zz%Sd23?7x;q!
zl;Nvg?inl&+%w1yD_`pB1D<g5%iT8Woa8_qVa9;BrMk4DFgUcs9?$zOUae4`N67Y9
zl5O@EKZ<M}6v<5~M1aZr#DNBbLGD1koFT*DpsB?&O|gQ4L0qmCr2DMkx4}dTK7Cc_
z`JDJw{cZy<$pPl*bjxIp->L(BK%asSHr;@$B@)`1C=keRy!s-W6o}7aqmEo5Sj05Q
z_<J4D%DIdf1}5ya(%`b2{o)>-WS&g?EWiKFdnC}$34?~dEumwVX{L<PC_nEruS@=V
z8ZeL<D_9HI6?{OxL_wn#-i5XunnXBkBxb!x{(fk?yLD+RL8!JC;mM{9YQ=bDJV6%#
zS`*wYm=xP-k;xeH@xTN0&pYS~;Sl=s{;pQFk_5%Qrr9qqpEWe^4vZDw{Kn*jd2ix7
zvrVJdRHp0OZ@$*(cZ+;}p*j5c92kf7&#tKj&Goi`g|1n=Iqg%v^9#l@?XRx7V0i)1
z7ERS|Qg+p1Lc8IbOHA9Aj3szfGB50v)})%WDxNQCO=zRR0$7XlXYdU_U?KIv;$_xm
ze2H(q?oxYy;NW4?z#%mAcm1`Og@66;C(PxgWs9bkA0|kA+AU+@mAd2lf@TNE@~Gs=
ze$$g~1@UAS?JSxB>dP89@nha#N&?)P9+S^%b1i~#xdG5*0niKcm<w7gvR{yynhCy3
zr#4oH(&7V5bqQ<Ljp}+(?XMxNU(9>ybNZP%0vw_=a6pMtxIG?{`0as908~4D*$e%Y
zE>&8>X&F;+P%p<1;n1P+e2<*zD}Us=Pg+YhfB;S(S?#WbI<%FI8q~G<kvP^~UCEoV
z;d3ox>a{^5j0U<&83R6&v7tzU?A%~uqkJLUz+-obR<J~(1Vho`KshmP$SqmGBz?p<
zUM=%GRxg0`-sYra-X?e89h3E+o_<Yk7>#8at8ZaG=MxivpL^fYPg&)P@&<+U2X$I0
z?IcPw?z_r8puYAC(B_|h|AD|M3$MK~D(usO;nth_m_moVv0$`m)l@XVx1JB#mG>tK
zIR!;32_k?+D|dyNEBA&ui?@f~-ICSf`mOuJ<b^wRhT@UXvSAey5_j$UILuqBRg!4!
zf{ryq^-2kYN(kGsDm20Jewlo4nrk(|W`OO|vf-5N4$#(_YNUg8B6Xs2x<C*h(utdR
zta8ig8@&Kq(9v4ne^);vs-OMCuR@Ea4MPX5WavnCHr2>%e6R%iVHHAWI<fISCZ4!0
zh99pU^|E^^R{)MfOpvwYV{n@oF~EumH8DUOOy+bbfTnS&R_;}+BpW20d03!+mP<>3
zD%!yX<+#p-(MBd7)Xw;6u9ha14J5!}4Rm9^_LTg1&A}(c%SH;cU;uej$N3AFC8iWr
z6<omF8GM+Za4vUzB5?bJM8qWT#2jONryuh4Iw$B$+E01l!iBLKqK!2gpyy>=9>E8F
zLirUdRtz;2e#?!0NM=A;2xS0fYBq=<l%Y9E%zg#sSfu0pkRN^IsgimZBqGcwIUJOi
zN+WVX_j4@*I0kPFYBZ?z>eL9g$w$W9O&e%CFk9vuCa6yBTbd8fZ8u$Gn_bROKVm*`
z;Wvq$Y}{h8gE^hQxmvkCAz!6``P+In@g<X$*V<F%ucr(H^j(H3Fay=CUEMT*Xu#Yh
z12gExP1{UcH$-NqOL}z`4fe1qV46ZZ3_#ELg|Qg`7&md6(JfkLfbjsY1e{(NR7}>J
zB-CMo#y1#PxM-RABSQCw4jnds;<M{&LzMt+oAVh2S2mQ~Dbp|T&;Q?}0UyH~ue&0A
zAgyBq`F}CC5z3e_;R^^MEWTaKLptgXJ+m<ZVGW@DjNkVctq8aFyTT?wED>mT_(KE#
z{lEXe@bqt+8PC9M>jEwAH-lGCl+d@&$|pbO0v|K9AKnI_F+sbDcKy0*F0*(3gZAy0
zzkV{@cSm0{S@NC@U){U5m3HPMvpBStR)?cdZo9c&HqQ@rtPMC~a|3N-@#%H*a=i?{
z(%!~0_s^3>p{K^aYpLFsM)<L(2Zi7N_uoj9{H|#M@t+64<%i40corrky3l|nVdlF_
z!XN(UZ!H`l^R3a-5<aB%gA4kjrYvCVHYAo5@Bpk9Pe3yXZs;c#9S-nL6TJLI=8C{d
zo#ERCqAeIKaUBqp_U=1q3I~qU!$;6TQEj2*eWb*OJHnkls#UEjcc&x`_+p;pco|%*
z=mQo-xJ>~FP`C{_P;bX6?mg?}&;EBm{e}f&Asi=PbRQR7sSnmT`~$&V;zAJQ$G0NX
z(4r2Ztdf*eC~$Ct16T+pn?UT*7WD|kzWAA|4QK6IH#MaN0;0|B;_nXj><_wfL>y!2
zR`Kx!&XE7^47&wS`?atnAH+};2&>m^4mBhr0JK5><>FLUazI6Ci7(8y!6N9#HuGrL
zK4x_O(CGj7BhQB?fA{~S%-Lazg)3!61n7g4g=EB~a`6@Jx=nk-lcUyz2m90u!xn50
z3zjBFp8W5i6`@P}>S4qFPr~qN2?Kj(#HvuS+F7A`&9lP5ace9`>$FVX41zWCx0|H%
z^H8ad7(Kz9wVOy#WEI%+ybf~89b`L3A%<aNrr9cu<P1=d3-X-N@gBi%%!Fyy;nQ_?
z)r*71WhHb>C;uZ;9?s<KJi=6r`WnsJ<rkeB9{JOYdcRKEsAckF>2HqTFocbAAa}%4
zXDgSo_2*?n6x-$NlhyR8A20zR6gbfN2!sHPnoTM&OU_t(RK8_|1E{#C%~=$1^kp~L
zYXgUe23omuTmvhw)$6v{s)2zzRJ-&xZ`qk$HEh|oD?6CkC<C!OFc5d`+G~%OTzH<$
zE@Nz9VgeYd%_DB+AcEtTt23)hFX}EQ+Yha59PtOfInwIYrd2a@l4cOGQxRr_S?T51
zhD)$qW2TjX!zO1}TiL!-=h=N`azzW^IIw%w*MWAhK>+C4qe~b$Zbq0sbDjzEm{qoJ
z-)*?TgkD<yf-m+TY!l+-sk6d!+TcY0!36&F+)(+p^bX(r+HK*97lxXjkeZn7UoS8B
zH8Z$$*)E22D8n@Ir$l??KpS`mT-dW)7&T$G9Q2dA;#USe9n?gJ-z4<MCItpLH2%ah
z{S61;_t%fUBEPH~wGr!DbEbd)gC#}-_?SJZBRy7%hCkA#p+7wFlC4(3`y)^E7fp<_
z@w84GVw%YD-6u8LnTOMifeen}2W(_vjJ-2$w)GEZ_f4KYUrat>*7%gNi;|6B6SPD2
zsaHp47ej1#U<}}z0-%9l>|v(l@5vVio3@NF768!yfrAHRo^B-9lzO87A+~#R#;kY4
zJZ-9AgBZ}~vhLx}&%I$jf$xbQ4jwVdcr9U=x&A}`PVhe_TjmlLhrsN43$-xQ<^X|D
zo-8i6Ye5*h%vglX5AoM++!jWTnPev_ye@u$1%io~@%ZQG-wcCv%*n=$o9(oK_ARvQ
zTl^NljQXww542!SWuissentM3EZh;AXUtm?%4E#*@El)6k`~@JYQhZjJwuB#_^q+#
zr-&8ef^OP*E+0O8J~<(S1^cXdi{-1>hNSZC>>b{otW7q<-nO}b^AuklI4XQye#9*9
z*lmhH#)iWc5^nJo#2tWn1At%pT)~c4{I>Ds+n_dL?#9>h?pv-@ykLU#dlH-%$TyEo
zZI3<mx>=2AOBpQ?zyUk~;S8Z0;TRvoB{H!-{>*D(g*HPZmLN779WbQ|b6KzRJA{||
zzh$_hZbL>*)+V^it$ydLPezQNVL}A_gJWGd)`-QY*PkmwW)r!Et&=GmU}=w_IZAw&
z1qHnH8ExLY>az2#&A1*hm$MKejLnE_>hu1L=S>%`aj80R@MD=uCz$ZYhLlm`rW&5{
z%bq@Gq2ZSK@y{;|vG!9Jw0^kOOq=m8j}pG>+MGyVE&gzMV8iMv!;KUO3g5JKm(dXx
zq^_M>+2%s#RZPH><->jDWr>gQWt!if>p#jAN}LJ$n*1l}13!j{lT7Ff1Wo||MR)Ni
zV6Dj<0gY_ivBzk|BI^e~VK%JLCrO(IXWImier3cA^OK}*{Ra+{Kv*f@o{(s?cUv1+
z2wr%8M;){Eij5h3@P9A4g;PSn@qhmIIa7c@+nC@xv~FUwhP%SqQc6HafXglRaDqRj
zaviu0Ga~b?+xLg}R_+d0U(_IM+O|K`D0gOPP^Wz8KV@UM{-S!?sdZ-9vF$)Or$yB;
zdiIvkscrR8PlDp=)w@FX_VGci@~x7#kmDAbHmR>p*KQ&;_MY3Xvu*d(9forF@S*Vb
z#2F^cRo4zAQM4g%iI^G3xo`{$e;b4pI<U2bmi6m5gvnFqNMO-s1q~XGUf`&PHm#b6
zGmab<bC?qrYNgv-&dlAqumewiZc6vb;g7>a?d)P@-$4QgrWhDi=`)YW=c19R$ytrD
ztIW;?RJn8z^`Mi=mMtY8gn}a=P_45XMxy}Wc#2u5nS@zX#b=c{Q~qRAMT})MxI3y7
ztJq4HBLNQV->3Feuy&M^3IA^GN@Vijm<hCcjntm$@{i!0uLthBA?q7*;J`lH@PS5l
zzsjfGwBO2?kct+HcdVqFG^``0JHz~)IGP1B35QlQNZ19A@Xonn8?@7!0YaJ%@->_>
z`#t?FFrgjOJpu|U^0KARu(COJpoM%?_Gn<?gT$s0gnrBlv<cy6yUd~-Wk7p2Nhsp%
zsUzx}I+{GG3%G+>py9B(ixF0ph6G1n+R#`#%h_$bMiU3S(ONXEXLv;egWnaxFB)1j
z(iivaYMMBF!FtG#1`RSyuWqd>Hi6?$1A{*n*n!((o@f(bn+Ff<mv*|oY3k5)u=@4m
z45&Lh4bfiH-)-bx01ZPoE#)WLL4qDT->E}K)tw#AFul#f2gfUbXM}-P&E&HyUnB6_
zNY47uCH|Nl+P1PIQdo84DuKTW=k&pp*-XW84fGM(0Cw53dS>!+27Rn{=EF`L1Mz{|
z<N}>?l*}|OSm_gdo9?*f8uQ;G96zjW+qc^ouPT#l?~A$`FKE$Reykcpl`5R2LwIM1
z-!(7?e>M(|pET2~0+)!U(Ja8z(5{qKAm&RZ(6)L9Pn;m3g2@7&iiQnfTvk-RV>KZo
zXjPSl5Yopzp@q_yJB!1G=b1m^`RBF|muT{YAIw$#5uzNRCCt3#Wvywc`X=Kdv%t)Z
zCCrK)+BTP;mlnOs6XD}dY0nVY&>)>BGa-W3bkXV-@tQleAaY(=N0U1KUyRG<;+N;j
z--=^om?zNeeSGMEy=U>v1l~|4N(2EDs)YBJIt_s_Fkiwji!pZoQ!ajDSR`i7S)g6X
zi;e%>cGFenGtL;ndex<4Yqfuo{ViO)+)k#zVuMB&p#eUH0L6I3D#KAWqy@Kt3yT~j
z(^)>92rsiF@G(~VUUi}E>LniIymG~|VeG`|R__aYbk;FPRjn=XF;3+eug!xM)L-}#
zBDk@j*sx)X_;kC_x><c4c~;Nx3O=AGj&gw}_Uzkha~bD9-lEMX_>)sdaEIxW%`MDr
z%sI?UUByG-GXVAH4_7DnJo^NAX2)y=Gh-hXKbtO}(U!J32!BvCa`Y!V*})3}3G-=7
z&6^+VijO!u;i1dT65ip<v>*4cdE#}<Wo#n4Ll!pr3%*}Y3;uBvXPP$gQfc0+RMxzb
z;dAWTAFIUxJM5XK>(s2Od40AmxH%jge%V;ZO(E!oPY&7GVE&~4_X;<RBh0sV$eM%8
z0l1+);B>Uc1`C4vny;AWyJ=Gu{ejR9&hX7dSYM)kXS1eIWB4)TW$=e^cjg(NXiPP+
z{vpf`+?F5m1i8K)7EYk4%9*(mOJ7GVl&J69nlsUz+^3z?@BvdksSU^=$T+QZg1`}J
zSaG2<{;&EmFA}#)$5s+T7iuA}z!q@qc1H*uq)n3-YI7-jE)ZhP<xf}owIo1nKXChu
z$y4VYY22uu1h&NQiHuxO+`IqdFkr&kuyUJx2+N!i?!7`=t*f3DhP<;b%wE1Hl$W4*
z-FY=bd-*8<u0T=0PFt`gjD2srG%rWORh_Dv`I)@v6e`I1h<}h|{Et8Xc9uxva5R7T
zinuS`uYdnc=-#cPcFi>igSGlVE$f<2e8KRaamQFMgZzN>bMiL%&8m&#mqpw|EbRV;
zn9*lC(%DT{M*<GOnj($<xcvCu5~O}uF|#A?!TWAag=nXonD+Cpz9lt#vJt~094pUU
zVXU-a_HMo$HgdfATiheUdik{>5@NL}NPUD8HydqOIpG-V;Pk*VIEaOi^s}eo%EZ8`
zxQYlKVl~2(kl9DOz3|%t;`+w-=`f3&`YEa})A_{l(qXAA?Gb-Kjw6V*t^~wsMb^A2
zH2C6hLSr}<o;)7u0UyxEN)wk=)V=4Mzn*#wtdm9sjhVZ;6x9dmK26soPL~cl-g7)I
zAswFwoNn0czyihHd7jj+=ep7wawHjAqr^s2xD*y$95jsv-18|;9pgChE;!c!06+jq
zL_t*P@kR+w({a4`-fKabXgKT23d3TEN&K(>@&B}A`c4yWJ)WoatH1Ya`h8rdTydO_
zV=|ngg&dn7-JI|7k9Cd9i~E8!aoDl)C~27YPdc5ql?@b3^zM4V!RE_XtPS6I@DAg}
z)C-_**f7P(Aa~!^*Mu$(4`<PG`6Y=)JT3zPiX(G;L4vCSCptX*z*lU8C>kyNSK;{x
zQ8gsY_r2;e(;mk8a9>m#2=hMSzN8S3jX15BhhhY6t}j+_Q{srDAARS3v&{YW(dWap
zeJ(Pg8%rR{Ar?vLzDz$;R<3t(9g4b7rz@%r=`!MUnA(>}Im3o8+?@zRJB_u|$6!(A
zr{6PQbL<fdq?|sAXcM8K3fjqh_mz#p&OL|h9<3N~eXn}qqI0BG(kh@rxy0GCM~9lB
zL$j)8a;%a$Q_&)4e(3b=yR@50nl4r|F7y#h16YN;)PI;Xi_K*!S!+Aly6SiYRxjVt
zQ6ag2PA4sY+ynj$f*3IFKnl@fBI3`&v|7Zx0I)Je_#thKbcCf?V6w=WA0Lb^B$5t@
z%lBu(_@fN25CB(J=DJ8Y+iRKv+qJEF5(Z&%-J!5OI!M+Ap6W^dE~pW%7e@_x$|Ve(
zkPl4Y)j^|d*BO4C3l}YyIrdgt{p1o*Ne|FR&;ozdnV}n(?R5bcG{oCS*@Uq&<}Vjm
z-4#H*_@21&Gg;#UnC?d_TWP)Dy=>~~{Yn_`>2tp)T}h#EeZWIfZ~YdkD|v%6FW>QJ
zbyYo%u4~di<mdH^@2R`ditwIoe?+UKA#eVuBY&jH!>5FSh?J7PFU&{MwCH^m(}DLL
zHRc|O`;vR|VGPFM+$ZBQ;d|ciP7~zAi4sFcObp$mky^e|2meZ&<o>*DY)JA*=q0Js
z8CgwPOiRRL95VjB4m`!cdoSC0Y@A2jW^0o&beeWvN`ABhjU3MVt)%tj7_W;jI47%_
zB`x6f;2Mv!qsobRfR)R$cp{iirzPJjFYjd<O?(IeaIYec0x#bKc#g~FeR^JTd}QmP
zwt7C^$D||N<EHcRaIWCW@``ZjxFFolQPk08oau_MDT2_0_uiD9FT8BxqP@D|noGm5
zkrTt$?!CnnHhgKsfwmBzGU=}&!^fEd0Q2Z{X(F%JdA?|Q@dNiGpggT#eGX3JDsHc}
zrwDo{pExehF^)Yvsi*n_TG3xTHsIL+e!ZLpd`|lo+TgNRR>x#cBn<b3b~@1n%`AY{
z7NG1HXT0<0IE;63J-LTAsE5aoX(f&um&5o@(iY5VaeHHYdOZ9`-9*kiFOPgr26Ac?
zJwuhFg8a#FZg`Gf(GLc3yn+-3cM$EemHK{S3!U_zagH`ZR}{|=zZp!eXcar?U`bTK
z$7?L%Q~~A$99`$6g1HbzS|AQPUU`;4KgEsb@wq1D!SD+N1N>Ro$%TJ{gV!hd;sPej
zCWUb3@#419633&5bM<;+US6Wz!3bUL<YU5_Umh06Pu~+K#;=FRWf#0Vb%g18`Zd8_
z;lA=PuIcbxZOip8&cpB18pT{~^|-mN>AIxjq{DO7EB!8=#`E;|JUiWZSpItYFkl)*
z?Km}aS5(Zg`op-5h{^jYS08&AS$bZ)i{r-kUUVGS-*LsykMFKyisj5&OmeYcmQKer
ze?Ga!c@@QD3dJG4UQp+v_!05rcJdsT%Or}47n3i-2aC-#4oDM2x*fT~c$Y4hcb=B3
z)jK<vB+njBT!SLo=D{BSSY_pEPdZ)v%)RFq-yg3`G)x>Fgv$cHg>F^ybX?>7@L44e
zf+c?(>sGiP;4s->gdZj@798J(={KF1y-5AUd8L9<<rK8n^W_@jz@KBfjN3vukS^2X
zU>fJB83-0PpPD+bolQ_|XySAdEQ!fjVZJ`Lub;Zd@RF2R@Ee!y<rah<T{psV<rU|X
zPVeo{g&X49QC26ZQ7j}VdVz68KolnzKpaT80F?%DZ~_E0!f0F~!6)%}=a5EFx}0>l
zr}I^oBgx+<*QDIS?@sMg?s8QIZ9WA>71eICPKTwRPqujaDrp71aWpv59UW5qH$~!4
zS)7Xei(ixD$Bbz*Ehrv8bw0+I0Ru6Oq)pGCm-f46qp14EZ7eFz>3m-lpGzj}Q^9qQ
zU3<!R9DUY!)Uj(`IJBsKbe^1UTTyt=^*+}-O82}A*CcsLmzOKfU;3TP8(t58E~>pA
z@3VIGzW3{?5EKiUo^uUD)6^x_<t#qvbZPGk0fJ$vSUQYCiH{)34mwl6Mq%70;faYQ
zAt;)Nz?qmul6Us%Q~f#J<$AkmRJtq=18=d}=|m7f9%vHd{&n1{<P*uVSZUI2DpsPu
zP^6=<0Mhc1$3TRELNrq7A&T@Fx@Cf6vWwYr!MM*|(Z6)F;2G4Jf7yks-nqpncdbv|
zTgt~>=kpHUk8a}h_7v6sKHm^8eeY@gn)DHxB0zJy{v`?{FEt7Itp8%BkH?08Y{CUz
zSB%l#&l7lU{dy|uUYhCfRAyLIrNFg!M6Nh=M!|QYKaCpYs>P@O?pQ=f*r}jV@+hSp
z<asD21~e%A2#I2*$VdCKVZdnQv(2Xp^VH8z2PG4<<JPaApZb56YFd<Fn5&NQTom8u
zid#6}&u1UGFL}Cs$7_2!{%8OB<ol;ILIlF%jvYEQS!Yz)Amv3K@)-ECVSw=@+GnN7
zN%vc{yWUrqUp7?a+gk(%GBkqE7pE`q<q^}`6%jrE`Xn%r!SzYxkWX4t41jZ>xH7=!
zy^lWc^-p^1=-*5~GJoNp%)XG5nadK>vofowuXmKwPA{jEqf5@e$z$M)jRANg3#Gk#
z^i5Trcgd%@PG)d@v9a~#Y+aT{^nG*A4CRxWc^dh0(n7w~c?^8!F(6GKo09mn@yS>x
zOPec}a^R>IeVY9<-|l<`^B6eY7~snX9FO6jjXK@s<@5jiVPN0Bo!aqSCQl=uzpl&I
zIFErZ6$Y@7$xNm;pST)O-`6M^m|$s1TsNKMa5B<r$!d^~oyWlG#X#ape|pQv=l=P|
z09wQXUikTLOTPAb4CFEJMaF>3YA4>t676uHI0VAvkBt_|W(%HAzA7i)h<wT~CkE{3
zrqB3noi|H<`DpWW@<Q^)Co&JG76Ydeqo*>jT&+Bvi<Hkhzp^9xav`k*?-Kl;zFs_D
z{x+|bpuV3*)Dj7b$I?C$cKT488x_Yxc<xlE=I!TwK%E*aoO~`P(}$ndkqjqO$1mOv
zx|8qoFH8<8hR9JQ(2DUwT}vX+6_=low;$W_Y2Y!gmyZL#dV5c{9-iOH=94RZT*vs{
z<1#7pSI}pE>`M}(By}S$WfYZ{mznEI+TwyMXo?%ZIPtu6=T{}EPjT`;nK&h>%c(d<
zDZy`Y$bGJQdwsYT^_MH1zw`Y4IeoQxE&cK&o=ZSlMV3<N9L1tyQ4m_gbzAm@ci!8o
zZ#ars>6v#24jl;%YMvD?=uksnQb|5L=fqZ2ey8gFr&Ug_`u-)$&Q+h!<2we~$>7nL
zvT3zp&8H8%jwP+HGm*kaNu0iV=5zj(G2pYSilwjPeuie?kHw`Kr?KO;;M1ZhuXkLp
z_?~+Dv&TJN-HQtMe2NM`(f8CV?i0WF`dT=hlmY6&pNI3>>lVNB`0>@lJ$|md;`r%%
zPnUk5>-kjkJ)hqxEB-#Xw<%X0KFxQZ25!8q2lQR!jhnWF2KDP2?fCn+y<Q)`#$m;|
zCr|#I9@A+~RsVY3*?*FJ>p5Lg@t;dQ^zgU;AKwS8Qn}(WQY91mtK-&&Wjpne@9JlT
zeV9K~fy1TF2;&y+2#u<i33Y3f)9MT%vS9Ferj8t*`9`5PB1Sd{GRI5Bfp|TR=Mi81
zuuRhXcPQ<c3Ki{nlAnW@pOk&{s@%(_++(fSO)acQltCKLmvRcqO$b466rR+<;}WMJ
zUJ^zg-fj;gKi-qhR=lZnUT&O@_VY{_XI3gn7P9Trn_T^qji?*1tFp=TRbiaO^`a23
zbCNFkLJ!}P1w70iq95uCp4YA4Xy5s+Tc=hbTo%<1`dZZrpXmDXfVYfpt5vIFbte0Q
zbV<D&f8J)Vdr^awJa*|jpcTrMvkhL<bLsL`rX}E*0m@JMwdg+c?{RM0yfq9OI>tV6
z#pj@)JvB0^qjK>&IldiN={oc5?Mm01_k;tU-X8KlrxgRccki?B&?nz(Pxt|o%=-%$
zhb12^4?A}5w(qn1u@v-;(_TED<G!aafkJU%sF`<MnaKGTEuR=GUAlC3tU7&=Hl_oo
z9nvzM6W)+82I@h0T%RPK^S2{m)#`ON4mb{I@sg$XNkHnrr$-qFl`2&zRNk@Z(Zi?*
zW8d)sP20T!d`vJ_oQDtw&@RUpSAXaEFjlFPx1a0IUAx13?=RA~uGiS-*{W5mY7;d1
zQ|`wf9}XWZ`beL-TN<`)-w~=*sjS`XWh`&<Tc)uOF!m|O^R}0nAAir4PY*6!^r3`}
z&Gxy(^5P>7h3gsjbHWR~ZC*weUu2Led$&HB_on(knX@YiAIV&k%xg*gJbjW({6=l1
zY*jwF8jieH7R%bj=W|~jI5KqZ*xK5g@VbPj5-Xjr*B6{y{;4>mNrShE_qp;*`Y;Jg
z@O6CLK+WW}N1wud>9wJuQG>ISPgPpGkDe2}PUN59CK(sd17|A^8#PhK1?~)u8`Zab
ziRX3Ye)XF5;o!kT`rPoEuwv!vz~^zdZrdK#Yc5-}cD)IjHL6#$gWJI&<I913_@v@H
z)8>R0`j$E0JOB9OkL}!E+CjcAygDS*ty42p*7vua&cU14BU=~6XC91k=H+<YEnBwf
z6T$mJxpK+3%RRg}SL(BW|3QtRJ)u~pXRp}q{hx&Ed!8Mx>sdEkcTxRt?S*HDeizpZ
z=e4R5cI-Z6WhX4?=xUG$9l^D<PQLfk?`aSKLI{WPa)ps_EkJQWo*<tNrNbsqn{9cK
zFYmmrr1SE;Y|G!u)`!hio<m$Vc^t99=b;5x>Ix%+xr`h;*|wc0bxq18+~Q>FuBh2M
z&|dzii?`Y9XZ6ao+ry|+(kAUj&ymi{b$lhlNwRxA!L90&sd}OI38!(}3tE@lCG`jY
zNgpJAl`wK*5FXbHe0YAI2IBX6d04s}<z%n6ZQm(oyhiyZgPlCcpY+}iPfOW`N5$bf
ze#$)i)+pf&q{8V6Xo~ufHm<wpS@bojA9#J@*+Kdy=u(SHxlWteHd1+k=g$NV96We1
zjC*IEF#?_$)U?mqrYpE1O@g<AI`T}N0iVzuAJz^Fp?%56;<NRz{4#<0%jw5JhS@=P
zJ0%$Y;fa^R=<(C-+wEh<O$$%IFwiD1!fi6p75ee<oQ&BsO@JBo_B&QzXsb}%3}5hZ
zw0G~mFlqXGM(-rxeU_$_Hvo+QaaclQ2~W+2rRw8lc>2v-wuYAm46{iLUi**#{bZOu
zZ(&%hZ^qA=_d$5%@s~8=&9<^glZzfLFjE(JYeL7G95oie3;38kb#_>zZ&E|^)PcX4
zhfsIo0!cfP@z1^2+3;$(D&R*5v%h`pg)ryc4*~+#;Nj!L>u-+G<afaG=exd7zwml^
z?aeV^z2c5mpZ)$%F9sHPz`;X@!c#B2srD|j=LD;EoBg5P-oFFh7!jU*d5DCJUE%!?
zmWJQ_;rXyu!UJ%0Ju?D=;o!_LcKlQ=E_PY_vN&*jMeStnnK^fn(N&UfhNlRR;6O54
zw*S3uKHtKt6I@!A?8oD<$a!Pv+u@2!yGs#N&BEYg#E<z40i*#ak3Z*!;K9QzLi9rl
z>(@-1;=c1V1$}s?=sTeg@&-5bA88mH#Lv=_-g$axYRsg$*1r^e^qg2wcW9OR`ut|N
zQySh~)90cvY1+K7LV~k{m$7x*j_~4ZZw2thIQU@ka*cs`;g`R8HcXm2*WN8$w9IIS
zwALoWk=i7>2DT}W+3zm0vUvv2M>1jH=<UgK!yb)uAlJO+by35U{8K!FaM}SN^sbOV
zTefW3ES@Z&gg?bHJ#z+6X?1Xenq|YU-&h`6)H*AagD0snTlRb$cI-JEetb>xQE=fu
zr}PPd)5&K^vfaFSi$1u0mb5{Ythyk_iC~L9)Lo@YB@5rLfy_tj(*P34Z_d2;HE2Ev
zZCf=r>6?K~d<Fz)+PiO`7(&84=`cj6ZIb*eNm8#+zI+yOUN#J(TGcAHnxf1Y;XG3=
ztAmf0tq3m<91|LA<<hEEGZFD#ou^jb1{CoQshto~d9{@l0;|!@lI$69<WD~2y;toc
z9ajbd1C%%rF?9l1tq`|X%^KOxr(NLhW1Ww*T`QleS_QLWfT%VJx0NbZur`w3al8M(
z0VB}rT2T`>-8SL^)C~q&wk)e^^{>jWsQjpBoQC(*vv#c-*}6j9;D4`HcHGyjQQZb~
zoX!f#l*4_CW{vH`^C~tRkYELzC8G8fd8LYprrYyi)yQOtW}tPm23ef@Q8pVkZc_Wo
z8BS;mAFVH=f#@qL>by%@1~efFP0-3?fC8&jE^m1di~K59s9;QpRV3O>>g)9*4)4)Q
zzyMk_si!wd31##SdH{Fc55%WF3}m#90JKdXgLCRgzi!^LMRZg?J7$On69pgC34D~x
zq>t-DygZyH3`CN{z#*fI@qhOl_gKGNb;XhJU%&aYCf_mP?%QuLTA&v3c&2X|p9mrY
z2EQGeH*FA_HEo=Yi{OAz!#IL30MJy!dbP5=fM@vXX7R2H8mG=vp#gXZ^bWs;=RrUF
z_M-_cXJLw>`XCgYA^uW5iJwVFS&Nq}3r!o<6R#|1{HaIhR^hJOt~b6$_<Qd!4*&ay
zmqN?tO+ua8HC3lz;~s4c{3_ug2_K~{&@=)yT08OtF!PNXJ0+agwSB06b{%_1T-r@O
zHI)x-;S;2cGkE1$;!S+NmiK5~0E9DmT%FprtR1{Vz-UmfcKF)8x9}Kx_UIb^>6ee%
z*t_!bUSZ^zNfJ;uhrjya*Q`E_v*%tK6khB<H2m<}_t~6Rp@NRd5{`jn6x*%+#N%w*
zjCo<&tOeokfBJRf2}Bq$XheAQ&##7G{Pj1pT1xu#fa+eO2E0Bw1bNNc4PoG0<2C-v
zgbU8^Vq>24@L}S^-<d;zGc@MUu2WrgO0=Hj0Sz&Cfp7Q<6?MK(8s;9_fELntyZD4J
zMB$OZf`v<L-s;q`tvwqrSDDOX)WK;mZZq#Wqpzmg0$+n4!Q*lPrSP>Y@}*yCe>u%z
z$y}Gzfj&H-KCCHPG~TTKUAAI%7&L5x`ni1QcJ4XZvB4aGwwU?Uc{^=s*04?%f7As$
zKx5E6?FS0uW~<d19Fr$FB+m|Qn}x|!W``yjts-g2|9#=9g~n+^&HeSxu5D$l->^As
z+`KK^bbW8Vt0THpTazZ){EWh&M)iU*Oud>mI@`>_d-iC4(zDYseb+>7pkIN+A`zs)
z-(+*Ek8i@L4|50gt}fZZ#~XD8e`x-9X?|$bpq}bfpphhPN#VGHBD@eG5xDu{`k_nn
z$|i^nn6NIiZcrg~?Ww`7#x<&&4A{~#MaSSsL#_YpOK*mzjq4lXu35J!T;028=ygF?
z8`vAvnJ>ON)EZQ~R&`?pjq0BruD$9KV+bGxfKXv1GiT2WbLKBL;o|KH)53)poEx53
z`nzxKYyJf=nir+Qy{Kn5L+J3)lf}HM8F8&!zd77}Ti?*Ob#u!TLVEs{A?ln`BINzy
z`l~Mv=X7Xe>3m>-2WqfZE8kIXPYu;1JdB$(Ba{*Inlo>KG0ICWJm2ygJ8p`Y*1^!{
z@(aTg&-6Ef+O9!Bo4a@I5c*zyskLM9u(xd`LEaxNTdhG}Ioy9&KV$X`0>U?J+$vn`
z7sIO)ZoTPh69OlRfR`>`9jZy7hCo?4UDdmnOkOKgzl~w*_FdtIYc2_$&uM44Vz9mX
z`Unx)SsL_v!=1NW6<W4vS_rRH+y~ICxeLNVnPRGG@T^_GDQw!ZJv?yN4WX6Nzz~Ly
zo)8vj#SAgltX?I2<;JUwIgS`TQRbUnM%)`WZ8e5|&mA{tkW|g)Z3xPgMS9fm3qJTr
z{c*jSZANO+Xw|$?Sgf{e*Vlq>?bj!C>X`J!+;<m-AtNS)8WPS}OsrVFK?ITH2)<qu
zV<ruCJYN&f6_@o28#itVuM8X!e(=q^ZL%CWW}@K?JR3NHCQs3C0UamIEExk6C(jJ4
z#MtZBu3<Rf(B=E@x>2TrT9$VBs0lV<G;3VX1}TgdyaJf92D~}iCWM{4_6l!T8VxR%
zsdC(;nc=73`>Mt3KWLZ<i8uDW!Y07yMaLh1d`JS}zHr4Q-8JEzYw=+2Z@l%kO>&(5
z*st$pp+mb?7Upzo5BZ-{j{%Vf3r_%M{mzU9;U9kbkWH3Mo-p{kZoM{qlrdd0LB9I>
zaGN+V1vRQ)C)|7IjW)hUNt0E*N(HU{Cx=^ZC?D!;tPj!He}C~Z<2jV^z}@|f$Dox!
zNJ4M|;76~ErYMg|p+~oK!o|JLGv0+z_S`FPYB8bm8q_rt6m)yzbyt{BHDJ)luv+{A
z6K|u2b!{BGK*FN!gC)zwKNDI*7=`a<2b}IYwr?$=rJ9+c>(s7k3-^(4PcfdbQ;X*t
zuDR5B2E2Qb%+>=3kBw-*cWB<MiFnB*6HsPLLs_qGZ3zP%!-q>(gjd9`Dr+%UTS5bK
zL!Zkp5N)>(Z;cqI=dH%$uF?E)ez#6x{G{p9O3sxqB?X2S!S@NTESAAj!6*(k8UOg(
z_ZY6=5fh~e`ucr0+xTI;pryL*n#;o9|JxtJc3C=D1k#s<G6Cr+V0_P*vmji1Wv^@+
z`s3<87waPya#zv9PlbkIBgcn#-~UiTniL(v`PU!#iYE86VT1(M3gya#iSNuY-p|}K
zYtDONq~@6l<;#XG+jfQ9`dw*r5`A^xz#-u*vEVVUz9PE9TCrbkYTcqq=&L!CzCvL!
zboe;aUbSh_SQ;(4?TBocNBF=-%p>N#w<vV&oCt}`CsSk^{c!0@69Sj7Tx<D3gDfZj
zw7_qPUR!Fh4iAK;nb$D;`aF_ClbPh-7&=aQR5f09-BlNd)>5>f;2A!0f~+<xRi{MA
zdHDXXgfrD2!$(aDm4t&a6J~_Ul`9*+oIG`wY46HOsM{uff6wiGjm~J#9tqd96JTB+
zIC!+pv3q4g?bM-_=7gTs7JT;505k74X_yFY2<rXBb1PRa9nKMLKPPzt4I=Xw_+;$O
zl6LxL34{PsM*`vmdhka?6~@b3>hBMhtT6I{w(iwj$T&fuUbuKgcx~Wt6Y^F`F1Y=s
zJ~p1nZ?9w!`T&3q`)gj?t+9<6_~M>j!$rNiS=jVh@5-_{MRUbj8qbH6$5k?CH?c5&
z-q*Z}GK(^iM_h)=Mkv8eGW!*g07Nj*cJDu|jV$}a)}04KothQG*|jUkAMvbEM?Q)5
zB_NhBS2}Fix<72(c0dEb(dC&Y&meBX^abJUy0yaB?)!?Q@5{q8uMU%)KT+?#@XBBj
zWtH&tuih4}RA(+-zE%RtHp_%gaG<deA`GHe_fDaXgvzU~xKR1lR$Y(C%<#TNUAulm
zn7?qD1gyHIb(uEjgK%D#_O`mbq}RFO_fNcP$U7t=eL)0qVUNz?2j99k+;rXL8UT}Q
z<xfUlwlkcD5?-&n`Vx)%G9tPQq!DXmllruo^G)+Znz0jS+JJ#LCaTR<CDhy}!Q`&5
zToc|HK2aUG#0YQMiZx-?nhn<8?>u~GSSi70Zl?b87f1+J=l|q;4}_n7|7&6O+Kpk_
zjJafQ!o!lKt2H5X3lBeVs|cY+_?v(GqlEAV;ad;g6}rgB<i*#9Tisbf(!Lw}UK+mt
zP1<)^cv(!?3CG)K8E1Z&Sf<Q)UyP}h^+%`nEp0L)c>aP#;q6JY!}p{)`Qf+k4V$;_
z2vcXyvy_;6Hb^k*D+c*>)eGVoICzwW(QmoRLcse_Z2_q3s7dq8r|&xt-xba~x1BUC
zqb-a{?~l(6G}Fj~_uZm_+%jz0zFUHNvVwhc=vdKDRm0aq_umrUnLgiq3-JR%vx|0t
zmEVi6j|rDw+}-koj*d5Y=y&2dFljB);6J}>$MB=?+-GeXuLT2u;5J~$`0&+x`h~BE
z88;RK+M-Xqp&4Z1(*KQ-HsK}xaCvxD6E%Wl=Z@{9vDv2;>@1rkM~s^lF1;wJ<4f|x
zY}=}daD9LH=GSfwZw{Ye3=rn}+dsW3TwkPm+#kA$$qyYl$;v4T*WQNw^%P+s!<M#b
z5m-?I0a`nNNd;POqVafHrXOd_nlC}7tc}5+|LCExY~?zeY#TSM7p}RYmlmmIjISUh
zE|kw43$%wt$A9(12ek;PVSZ`k%_M~83jqUR=h>GBn<nx>@zmQzb1x4ZZFERn#va<~
z?|l8P(EHL0!nzGxjE@jD>7ALX!`kp8Y0kd?t$VcSSr*>a*mhVWQ!~P13kh?8wMqQd
zEi}A?7pz*hMM7qM(_TFL%3FcS|DpSD4d<WRAv~_}ip2wX^vTzRi}S*dzx#j*RL{LS
z++@z1Z@5w#oXX*X^Ug6L5e@kh&ka=i_QpfH>H7AR_iU0RA9yC8o4x<e8%)DQ9S}0V
z_0a8>Hw)Kc5;}luuDm!bl<@Jtk34OH7n=7*!Z&jTma9)RSJl$|0k9YZ(CXKgAcIu^
zpdWMbEep*2un0iG;6hX~M;$R?6-5Wa_cAT)7s^Ztpa0np9yH<PHI08XNjF@3x%DSz
zUxY+>;`qt4w9vT5#(m#D7lx-_9ISc-(;Dp)&u~A=XI^|G)RG|c)q8FZ_el_$s(FaM
z1*T1(8zxSf8@?sJ0iKa$7RW5>B8^Y0XlbEGggoF(S>X_}P;4NSd{^|t7l>Yw8v=me
z>J!hs8Sc65TGKG2S(`lb{X%@wBI?I+hsKjO^u6jL%~`jZQ2N-@1B`}oYhc0h4b}6n
zH8!eOtz??`1UHwdPtFQgX`z5(hkDI>Z?P#5eki_o>4jaxGcOIX;?R=X*wEYzpc$?y
z<<NtoM;2|v#!Lw_BwPXDX!g5{#Zzz7!l}0j@9%32AjAP!Xb{+TN^9z{V&xhdBrRiu
z%&UZEDD$xB$9-xEM3J*>#aioc#&Avb5sDvxv9xLHPAz;|ga_`uIrO=#d-#*a3c_IN
zQfP>en0!IpK|@EIR-AG3pcXYFv=C#Sg_a+E>UC?^kH7oX(5Zc^Fi1)R>Vg6W?fOT{
zR)sdLn@O8o$^_Tr&2^Ml6ci~aCJxRrqiQfcGkj%uVuZ9Ilh%djMz0P}>3;I!U19Ky
z&Ed~)tq3o@y*9i#bwl{qSC)pE3lski3UorW!iCe$ZJUHHo!Z$7q-*C6p>zA@=KM*c
zm#^9ouI+P)4II?BS6tjJOJwQFgGd?;gDF?8tgXU$MgV|_fE8kb?OQj|>Y$>ThOfA&
zi;&jb%yVd(U<f##u9JFp-om9)-BvZ`f%<msdNEWHFAyWwi5^vZnKGrM0jy$ix_0Rx
zfoZ3t{~g9)z+L;cE!Am<LyN|B1L2qjDgVk#&a;Vtga{D5r6EG%C(jEd_^#F91iDKQ
zzWtVKY*21c9T_~ErP%|h)1^H-OLHoxT`{3^L?m6>CAfvqI}69GXc0ni(#9DT)jNZX
zG8Zph8&+im^jHY8%=Po};g3U~OS@@cwy^xWO2FQsJOJ>yOP{#=NUMIB)nEPKYvCek
zg#iWt8i-mlN2BJyMa*fzqUA=^)Y<W8kuyJ-k*ZfqTo8D5MX!#wvO+U}Mik}-@nfEA
z*|dJ>+5KG88W7g3QC-6YlgpS%b8Jz7X%D=YRsYP_Dj9fKEB8h6C;315D}D2Uel}Uq
zZt7b+NSFt4&(tQNt1j<hxCfU^WH5FBVW8hN7n-?(upZ}iGCE^r{L!+NV!T@ne=tqL
zSFBoZ!YrEXZ#{Th7@^hSi~ZjUKmO+JW^O_Q$ts%_EiMIzH5OS3FA*-leGTDl@rTRJ
zoO87%#qWLNF4Kxr7tB0)_;fIU#)w6s(-ULR`G&u{P-EnVYkM2dK?_*7c6Hq+{%eWZ
z_YA$OX%%kPv|+ga?wf3)TD5v@sH!oyVN<eb_Hl$3XQ^mv`;I-KPw$ItyyJY|_lh3U
z>@73_arXQrS|DC-0t*`N%P#6B`bg*k6Bayc>GG8p{%`;A{j5fVO1!u5!_baNM&$sE
zM>P14KmBTW>iGfk<$EDK`^wPpgNJW5K8$mIhc-<t59)|klQu3A{{d=i!bVew2CVye
zox?AF_H|h}${D|}AWa~PX<(@)H%!bdln}65w`>+JyP%`+X~7c6%ZE!Y>}F#OJWrWE
zPvuv#MKxo;woKLICeJaRfzbVTKY2)+q}E}qG*Z9#_dkRQlaoaqb;PHQ@eH_tz<VZE
zv~d8>#{+l?a}xe;0C{<SxIqDpWWxWpghX775IE52VW|NUEz_A<K@*<--EZ729#O$I
zOTYvVXx#6XnG#+BUq@4kNqNcAHKC6bCAj?H26U6G3hxLf!264qnh;W7$`ZnR_UK|l
zZ~-4q1RY$M&{mNrK$W3e6e?(WN!w4t)O-n2D17M0uAN%i9LKzNo=n0WS~t!qC|ZX4
z!HuC_-I}rvwY67R-yXj2CbO0`Z`#NN-CdevP#i%EYqh8cm`fO2;0VA(jGzhsBrd`s
zu3yy4`-(Z7x&5Q%>$H%*#Dr^PiW{!JD9oChD3YeldM|uM$|`V1o|j#GzVa-W&4YP~
zXX@lIWA=PgHu21y<YSw@24_wx;1>nbH@<eeDRtQJLZ7n1ElGPgoYS_cWTE!P$1m=6
zzVY(qvi#9j<OgVwMb`K!^Ua*irWETpg|U!CQH4wZUJ)?Sgnvurxi%FV10R^q(O#b{
z6m5EjhBA%ctc@xUU)?aAU9-Fh_LETltWx2%F)Kr>MwLUC*44xIT?b`~EgJ?+TobnK
zNmSz5iY4R3Rxzw@O_iSsgn8@}fnsB?QN40@k|P*o(HXhGJA@TAambee)LfnO@yDOo
zK*aRfrd3l*j&u!xXeXvxT6yl5N%zp9(xx@VAr*u}WX+q@GvU(`<@ia=iJG)kJ^&ML
z)S$NQtYdZ7S=ufbD_SsC8qRcx%gSPn9Gq1ZV<rWIHfeJ*bQ8Z4cJ*Q|Z>X*MXzp0K
z0jR(af09A0p22C=Dv373!i5h8FpLnh^?`#Q%Tar(2^kRe1zp>k07G2I2lo!Fj2y?j
zBY&76b%k;N?T;R?{QAE!I&?j!b?7S-6L3)FxXPSo7#+SbXbM>!#%(1WfWaP8eeGWP
zgBJ&UI~Xu9N){7nj~&ni8#7h{+6lA9(SF99_ieDT3WY)Pp0ZoYoc-u?L&HD){9B$y
z39bc|!sO>Gaxy?jfc5~)$?e)SvwMCJ>Zm_;I4t2C0sC!DSO-Km;PYJJ&ixXhAs8tp
ziH_~tSRU-YMj)6vV}3Y8{!jEcCQH{`{evc3HdX!Vch7_>mCA=(ZtP<_^<p}=jPgIH
z2LqWQ$i&7NfnEW|C;bbbK-+|%ZyQ5i8)h`jjz%Vp+Oh-yXzrjeeE67@4~QoY8ZuhX
z2V_!fENvY=-HDcjh>Tg{A2@ixCVrb-R3;M_JOWJy;{}?44>>S4eY_*AQPvo3zIk4n
zzzchHl4a&%i^{@h$<kGFH@VT1TAQkC@pqw2Uzl~7pz$+fk_F&}OuBZjvB^TFVg1_L
zB(lZc{p|Z+H52P2kG~ws2sdAmDYaFlrq*_Nz4Ou?D!ZOEs6Gjs5XP7jp8yzt&ST&!
z&^p$Zq0%CPZ+Jql?j2R%M0m&F41dJSrBPk@!H413kG*XCv~Hc+mNq>%koQh$_i3Y*
zmnoO~n14AQdCwxeQbqZ3s;>d+O#Qjya)d$wVeBQjkQ`F}__(1Ez*G*ugKlV_*M+nr
zMvu2eVteru^1#dr5Fg%5`7Dqd$Y0g{*$A(y_QF#!yJO<6oY@CJ7`zHx9}Vzbz0U-3
zAs+Lp0~&1n1hI^O=Q^3bCLCUzYyeF%$YkS5?Fv1*Vg+jm^no%3Kp+|*YYTk5g@i_2
z3(AXs1C&MG=xYPD9rvCOwV>$GrnxCklChDD3GWx^2@53x73OSC0YTVAKm<257Nv&+
zZKcg#ceHZMq5cNhVDU$*qz%8sl0avUOH1Pk6-phj*kL7QoHUYUX`KXL@^he%;TgUV
z!|jYR0Q#5ipugZHGv(GWb>_R8*Gk!90wI~a{z<;C!-R|f{_WGDmfCu2zpG5BB##f|
zw!)l8`;kdbR&h|YpqOETYd7x;OEw$`o3|ef4P<hzAR%%8!B4^mt2LO)myw_-HLZk1
zVB@xf;lRhNe&l#uCZo{+ftkFB<C7})>*arky1R0vN;b)YxGY47=N-i2L=Xp&pXZ4q
zZ<mg(!t>I~oGm7Nd4>>)Pse(Ckk4waf&>{DdJReDcincK`P9Yb_{g#HqC&}sKQ>J`
zbeC@s9lBMfMx0s!^5V~(p?Sw3s4OM~F+d1Th#ueDGGzGMh8z4z00s&S17MX(zA-S!
zvY@<qCNBi0hV^SnZ7rV<;UETUs|XhGx^jO8gCJs%yo2BY)ZR=8-_+`b0r$rzUkPsv
z858cj^*SrhSLnpuv1^wxbta?)3d)bG@2hS?<8}$lHc%iS7(RlaL&5+OnqUA`(hB{?
zzP-)0fyD!pr?2`rf`?s*S6|%O9N6*Ea$4~Gin@a3I4*VaNz2nPApkWrSTVgj(C@6~
zFxQ=VMk&*P-Y-8N-dnzk=<Q{dzGnSqxewHn&($=U3VUj?QqdU6Z8u+S48r;g!V$oD
zS?%6@Lm&H_FnM}-?5Wqn-~9MNTjcm;Ws&ngryc|9KxhG|A_0m?9}Nd%!+pB(rNRda
zcbY*OBP=4Yng9p~_!0x250f!4X52frm_P#soGrm};Lve)pDEJr*^sw==N_AIe8I7D
z^?EHNl1(l6EwKo9fR0@NV@%+ujGrMB)Gz<{37b^<^uExv6g4$*q3J|ZgCGL0LbKVS
zZL93$=J|4E(#5p{KnMVqu2?6F$@wO5p#5Te@;7h(!tn3^`*is2fBwv9)h5i0AcXtK
zdTCE7mr0cR+IY*b4#ySwqj7|%VdlO@?k+LV?ms=*-vm;$N$@Y)dRec|+5ovA+<x=5
zp~2ZTwIOGTO|Fg?e7q6vYu8FNSiE;Z%;Uu6aF23<MJztzSb{u0S{+P^|MrXTh3Rt7
zVX^<$KYGxTH)^<4zJ()g9x(o*_QA&htS7_9ObfsIx1ZQT5+B&9v)(s8lnnob|6@_x
zw0V0tgu)`jW4B^a5kJD+=1k?cV`oBR<cnp)c@@tN#G?)e4<!p7m=nAP9_qmSvwQb`
z!#RS=;*VB(P$;c_qRdPekvJRXe2zJQxe<Uq$RBfjGYN(hP0M?R=9D`u92yut`W?H^
zu)8eH;k)^s{5*gB-TSRBSOn*o6;X46rO=NGMR><=lFcz?$|M3IeG6XrLt}U}ZVKv+
zpo#E^pDgg6TpaK_$2UI9hcj~|<uYe7k{#G61w4ccmH@thvc`cte6Hty^A;V=lo9Ib
z3mdD#f7Qwr<P&*?X;x#Nj_)D@H}ft6>$nM1!~Z<;oM`5!<}<xQt^{|;)eT@SFQ}Q<
zpk&tqN{G_oXUOEeY1{tr=+Kqn!VXo#ljGNi4_7Bd_p1R*!&z0zhIf|l38QChu#}jm
z*X{cxY?F{UaJ+2!0y^1I&mdT_c2k(GK?-7K&6zLl$x8EY!35E|c|&bR7-_0`&b)d{
z{sgRG00yWHCVOIYO){Wh&P%m=#^1!DgUqnc51pn}e3h)ax{5SPQ)exdu<)S?E^N9W
zKXwD*uR>g$q^Z|hZB$@2&#^7W!s#^b^y77)gYijOy=I*kYpbK>tJcZ)V2Ak%5&-dF
z_Jv6xxM2n!GjVq4C{qZ4!?%je0?g4@)-Xx%fS&~Bo973}SC2{vAdq;q2LWL^aG)J%
zYFUkSlF!RpnLH6bSS@49V$+BFC?+{3ZF5Ei<Bo-P^2bS-_Onv?*Z=yHnb;9{V3ICW
zqF$e%jW+ZL=73kl2oc<UbsjSwA0*U?x&R1ve$O-Qpj}L=Y|{8>#riOQ;xxn2l<9NA
zq*;qC4f%KN)XLgLn=#S6{^m$cT#0G#_m97#%}!n9t95sHbHqF5BT8E+uV^Ufn0?ah
zID<U^?p0?8^1zoA=+(VT=s#qFnFLwIjg~*jMlo{w6{l?`AcO$&!UwFsoSDHhasThJ
zm&}LtKKWif`O+}kq|mfULo?Y89Wma7ax~PW0l(np@BjT#El%cJ*)U%wO&4MdYHz{$
zpVNo|_|dKXu8<GyAh`uBSDzj>^U!N=jx!-9DViOeYmAA*2VNdDHoN#@(Sr#YngEzo
z;cG0)m<V4TBws^mqyhRJ-UFY&alN8=;NW3njh1m$7(HR8ZR}&L_2|}K=gJK;p32VJ
zw>0_sq7_H@-~9erbC%~FlV^s#*n+H^gfGD9o-1?;@A3E4g+HKc=k{Ulf{%>9^E`I^
z6r*?e4;s^d`R^yfRE=5k!L&^MJa5Jj^#hvg6oezv2BIlvEWi8S2jQJrA84{qgiq7H
zX38XfPmQ^e+6=@(3qAy|WpfKSWd3+e!Xg4Jc_Dytv`llE_JMvf%RkqDq@^*9k<55(
zqPh3htBtRr;bTm#lfNj7GWvs^q)gHPJjC07*~LAit$N=~+mwZy&lArM3>T;m5K@^7
zFx?|CBe1+AA98pf>EXNJ!u|Cb%bT@`SSeo3PT<$1ZCkTmE?q)3O^5fRO+<UxT<$oW
z)rug;5kCX8Vd!f4yaM=`4;eAp+?Qw{f(pFK7yUk;AylE6#Jrin5z|<WlP@~$r9IT)
z{Bzq_UEyW3=YJ@F`h^yTIiI$%u@mrlgnL&4bkw{|oS8D;0&h#Od0LxWX%wewpsi!)
zK6LQvz)@Lk9sLf!#pe%Tj#;Ih>Z@g1Msb2~`i4yze^Q0-LO2w?oh{9JBWbh;ys5Dx
z{!4u5|5CXv0Pt%3WT6e_`XM?x33oC>u)_E5+iR9Clu5v}neS;M>N$2_Kz<4BLw9KZ
z{mf({p~+_q)8DwUy`u9eo!(gxzA<K&EJbszFGq>ickex5v`<_2=$<(b#aD+mO|1=#
zcliG+uMac#4QTV{|NMx_G|&YKAzz?!?r&8ozkGvbBE(wNPxz<QLpcuIrr`{bO<VSc
z1uM0y=*AXd+s*@_yrhbTb;^flC#(+--PkPDtWqYdTel~4YFSM_iW@`k9(6<8#+9Tp
z-yXWRPmXf|sSqT-8S^FiBcYGcuHZR3N9evguCoc0+P81pLW6yIcypL0MVVkKOO;<%
zjc?zkr5*18Vi*jzveBTWBhWG})y^#ZR63v2##Ub-Z2QLbCKx!P7=RGNL78esjCsdQ
z6>JPZ6%NBfg*{#VWn;%r3-h#zq<!1wChXzJiqL_&opKqROvDV(GtW38CNtd3)T|Z|
znAXYnsF{3G@DT(^H(N*epc!J-G-dj`^4q&SoGYdZgIFa&6K8h!zhF>8M6I-QjqUdz
zh;a=Z!h~{$c9+#RzYH9DVOR_pm@0tke(&DB=Kskvt7(oPARo+>m@g)1w=RF|Fg~|a
zTiaQ=RRV|MROV@}tXwOUuVDUgWy_Yfon+*P(8sYt=V=26!u2PI4_QA=lEwtB16l%9
z;Vc5sDB_bbbmT;>)N9JmvajJ7A3N(qO>*Fc)f~*6EAN?5@L$3mpz}FxDb_R{yQG!G
zg@Cv%n>DmuUK6Lxw8^GLlRD;Zz_CKDTQrpq;D&%ug^w2XVs+0%vqg39cm0)CM~;@5
zI^$jI1NxqRaE57x>c<Y;7Jd<C>2D5J#gB%5#`lF?*KAY(HfcgYP{98bKi9f7tJr3t
z4?kKiTCXUl^}4EKL+b}Nr9cDYCQdg^1_#@c&y;Di)gJAVyy7D3V>I;$6KFtSuq<#m
zXAfFJ1J77No6=7C4HKRxX%ox}EmH2d<!bYtOxnca%Bq<EISm+y58Nhuj&`YEw?=qF
z4(l^#zb8R)srsW&=%TR>;48!iwIMQ*9+Kv!bNd!zjKLN_Oq7QY9SG0AHo`V(!5=nl
z++^qb;h&7JAQLXW&Ws(jM)=*qD_XZ~YMW3-8BhH{r#@V3i&n~PrLavp`1v*Mir%$b
zM=)vei9pEs!c7NZhF!-KwYY25qEWd1n#=6~{E1WMn3kFaI{cd}lQIh(=+T8u#*L31
zbMFwHbGih4W{Y-<J}5_hCOZTl{KeU!IbLCC_wT>+`s^60BCQFVaLQ>6(4LO%T80Vl
z%#vArsx8uS+kn>546azYCe)MfA^1kXWOF2LOK-}Nf4a<boC1OHh&up_OSEKTBp}U{
zCW<+ypEmV%@75Xg*m!Q;qM>bGB<(1f;r9x^x5<hFzhTneqO&AP$D!Qx-xO^SfnWKF
z8J3aofHtUI>!$LBoUZXaH_Q+XusFS1rb_10v+LB>{Go-Ognrx*FbkF!&upp9cFbjL
zhI&?lOD(mfllrGd)r$I{z;F|88>+pvYE(Ad!1q^cGYRR~mEFEg3tOCw9Q%&VVeAC&
z)uXFb3)h=!RV!$-$6%fQusPvp>d$jKw=@1pB>Io~F}I<qgU7=-;6GT5m?H*B7^^O2
z%AMlnXs%h9w`<i{d`|V#90f2(wS`Zse)x(aTr#IH7a_R8quaD>EK}(u@vGUUc(_L=
zkASz@wQH)JtrCdF8ojpHd`z7>>$D3N6`0*0e{Qgj8avzk`bwX9M0gx+JLy}>HG^Hz
zZFEE)Cg{}?uAv|52rY2{`iL=;)gKF_nY%o6>!S7vm|t<BV<E-SGiXT>q764{<9r?c
z#D*p|fg$LztDQ|pX{8nTV@xv6Fr~Xvg#39oaLC)D$t|IyWC~4<wpj^WS1F$yYc*u}
zI0?|}!#BVBl|+Lt#lh+|Yeh@V&8>qrK=W_uJj6K?%-JBx=_B+#$LI{zDIk+HR#qtw
zcG08pq`%G+uRsZgaLS))d{x(y0I^ZjpzJzh^3-`p8cVprpTq&bIy!#G?t|ga!&im9
zQoI~Ea5#MHnnp4|mk&=4TM?FRJ)}W=BwT-P4GD!c!-#3?!^9=K!pBN`d7CQX>K@4s
zDxZjP;C}Sa{lnksoGFNn6*3IO0lyeJ3tKu&@z2k^rrodg1FGp~wX>^kof^g%=okc-
zJ9P{WlPpL;3k87!2wP7p{`a&~%YC^JOj)VmAdX~?wvK$L8^Aq4hnJFY03$?b;dmVg
zp8B#{VAXK0gh0$Q00Rjr-dDT7ee8MdYV9c#lO_QHt3gaUKmW0Ia;alIFTxxz+@~Q9
zW3V9<0P*{DnxdZLG;v-Co6l)QS6-WeFn?nnW%uTlsy_l25T{L^jfYqmt6F?7nRpx?
z`Qr;V&~V&G``~@T3L1Y6G{68jV>d8@kufH{OP6I4qaP2a%ka(O3@!%`;~5-dV)4n0
zRlBcnJswy781%VdtxUj}KQK?62(W^sp3s?tm(4T%fZIZb>}(MGDnE{oNx|PUIbqUr
zZF-y^%(y&b#}ntTryT?9)^E|6PBzoQMPl639|#%_^rLH5;xR}c0?vQnCkS&+uRO=&
zEADgB#m|g4*VOrY+!J`mA{Kb%^|#DF@Roj8+cQ6C2;reVp4hn$f9-L8XM11N7|CXk
z;|75eUJh6rMd*$n!r%+ef4%KKZlQ1L&H1Sa3rui-`_I1(U%UHy@zs`v>J;Ohau_3M
z$Glw6n|S+Ded0K>$b<`j^dje8E|PHZQ=K-!r0+@-k5|+c9_p=(`-1p!S@bE3>TKOq
zZ@*_AWAW;|i@6FMxG6i%C!Md&UBX?=b9e{sQ6BxssS2|tY<%b8yR97Z11KMX@OOWD
zNgLws6z{7Zo_ubAlqL1e1tv|0@csRo3z=WxVar#nHlg-@9ihfzmc!U<iGR{}XvXSF
zn7`}R>$Che9s|&x(^$HkxV=UnYJ;~g@$*g&UQgp9{Y-hx(YEl<;F~^zCVg(@M3HgY
zY0ilR!0$Ad^*q0m=BIPaRf4v#0XMFbMa=ON$BEk%zxQO&tdBi^=hrws?T0V8CC=k;
zjmH~u%S;Ky_!2YD$OF1cKH=x1Fiu_cJ+V3NZnb2mf|)FekB~?KRV$SZ-?~AoQkkH+
zuU08xIQL)GIINTJVmV3VwW}o)cAxHNhtAS0LYQoN0TMDyGA6&x5)PQ;5g5vxksK6C
zD1<Uq2bSXF!A?<jzG242KabtB|M)lG$r4kNTS1<rb%byL_mB}2L$CACF(NkK7cpKs
zdAl@M)B&c+HD&<ZL-6kS4e_!)p2Kr<fszZ3WSKao37m0R(Qq6~0UWU-Tp&~gMK7Cy
z>CB-ZZowU4)RC(bvOgEZD&8G=(4IIip3%1cOxyO41*D0AN9w^J1j`@&trylm3|`+Q
z=6ynXb|3y#W&p<d#rNs5;xO*L9rQN?E5-+5Rxiavs0X~wKIu|TkH?k2(*cz0j6J3?
z%5ysNJ|!;gK^TnN<M*X9?V_H}OuSu5eo1;4N<6>Q(XM=+IWUkRA*UqAf4V;q61`99
zd+q_J!E9J&(dFSTBznFc-)q9N$7Q?$P9NMO^i6zcwvOMrz)W`wbh^X0b&L$a0t(vm
z#k%JcpTkLbNx<tF3yEImbeKPrKV|#4<sK~y3sFvUU|wj_ppLXC&8#YHN^nTy9U+nQ
zpcervxledg+$Sg_()IE&dB<0-HNnS)HKDjzfRO08PxnRKPr3Tks6mxRpaZPly1Ibx
zxbiw%B>lws#&Z|%`9m4-g8cO_>DASgELiKldiM<`B$7v*9~+ad>V1Je4>>M;RhnRU
z*j5Q00Ck3U0pOJb!~ghnfBCC6*XGP>rjhN@t%GeIM2mUd)t42@+Y;)>+u^uQ_+!HR
zh?5I9yayjKeeli~@t$Yg7Q%TZ9pL3TJrIWC3XLsC5~1N6HhPLQ;QcH<rr=t_2WNT$
zcKU|h6~<ZS)lrv1WoO2;*V7|=-3s_RbXu6$;(WaQ<imUZJWn5QJfp$yqcfEO${^mU
zfSejd&lo(%<rv;oZo24nJkrxeaXjqnbLGU$ZaW5qH_{u!^Se6E1YZ+YavXz#km%uF
zr}WjsVSI1N?1&KB`_f*9bW9Vh&=5Q^abnT|JWZ~=cvl?ck_Ue<Q;uQb3^KN;V-ENH
zS<y|C&kX8r9L&AV>2i<t?0FF<zE7t~_dy!}o}O!Q+IQUiDbRpkP6!f{TMexwG1JCE
zQYK=Nm$<G+wL^i0X)r0bs5XEjz{7LlEZ4iZa%qj?@#4p6xsU4*x6R|l;U3@X8^?*?
zrPIXm{63EF@AB8vg8|bh%1r2!yO-kq#B;hoj50-^{+_sgPyAfZo=+SW-xCh-4v6#P
znKN54^&-5m;f~`*;`F)F#o^@PKoRj+^!M@A^Ha>6aXoEacT|(hwzro<2N9LtQJPAT
zl7b*$XaSKX9YjQ$p|{Wxqyz;K5J*6p^j-s@69pj@rG+AdUIHQX`f|>_*K^)|Z>{{1
zl`nf{&+NKpzWv((Q|Ki5GFX{P!XWBI@BaSJBHclZe(NKMmt0z+=~GOo?~UEM0biM6
zLz(&HJq|6O^Nmpp(gAA*u>pnUfGHWRzp6~JG3&7g0xxtc{e(1S<_nXLkU=tZP2si#
zrHE`=gNp+e?7VCnn{}$LVd(4n71EnVZl2t@D49Ag12YbBTJ;5{a0ak{j*nL2lG{?P
z*>wZS4A+H#^ajO69#=5-Nyd-q8*B(tn+Va>qu7toFw<wRYjNfb&vnS7hfn3M`I`r#
zO}yLJHr(nqyO?A5PLRIqoB<2C=-l|9LL9o<S+6557cqo=w!84<%DmlV*|VJZmu#@J
zeAbh)^i#rX>ofK`(=fpfQv6}7O;#Ha+LY54Mb;QIp|9ajYXZmLR}7jK?1U8ifqOiM
z%B?C(YTY+In7|k)axD>+$<;Zh6NH+Hs%;twp2;<g@zX(BQnyPorXay>dZ7GQSmWjn
zN5CCY?gmefe8X45Pdp)QHDMDzxnH=E!(^wc<24I>=Y%ht$t7IZ<HX4uc)`eD6Lu(_
z<+gY0<$9RIQlJH9{G#Dv2%8vPZlUY<fr5Nb4Vxb>#(&0Wn?8JgpbLLm_;i^JM@H;%
z;TeeR4B>;fzj>>+Yby3#I=8e3S?q7RQt1GCd_iw69<pMCE$GP9<vh-jne)MGB<Wu_
zyL5x>@>Vys0a4tt<ZBI7%T41+hu<ABany{Ib+<|Te1}s$g__|O4ZHjc(3W~=kO=V6
zY%1I{lJvTKzcs*5Ltr*_wG^l?mHC2Qc+8H<6*S`-W}a4ptPYmAsf$4uq!P>3;sPLc
zK^|VGyi$E7fDqNzfnOvbE%{!*O9#K`bwKmr{^U8|ec3(OxYuFB#3V<+j<i4Rrw>J+
zJxj8<w-5W_X)%VuDFgKBZF%1YT!sCz&o}7)5zYsF3pc|LLeG7-1TgA10<pq}e36w|
zv$0^KTUwrVOPePHIMj6sF#DRuF0zLI_{8l)8jeg33X&AvD`Q&P&CQn*OerDp%Qgp0
zHe)9jiY9X_FoKFy{A;IP7`1uAXX7oSYdKNHYyI5VR?X<}OkIEf$>(A1Y~>J$vCbIz
z*W-7<1D8i)=U|ri1%_q{U#rCx%j_pq!j|>~pQxmEt{;EuMcK9nT2J3WFfGjO`fIwV
zZAOy`a5h2AE~S!Oa;em0$t9aREhLvz&;*`L*gLcDJGPg05gE*h!&j(*$tQ;ESK8il
zxF7GZqnT==2wB|FX7aZEX7yeZvbTiNFMV>sXJHA!JP(_(XG8gN5ld!!NC5=Dh&7x)
z(4V%>x_v3ubA8%BX5~F5R-G3_UxO!a2v6@hlP)Ht$!*9LRCQ<Z0uU)H$)4B{Hx5eK
z`1)JdhI^~~dkIHpC?$$ois~n<!x9+i!Utgyf0ilVu^9}ne{n4mdT@(k@j#CCz$8%I
z1MF!GIck0IHsP*#tjr{s18e{&F(}?s&Q@PoA<YyF^HOU5Ik7;!-KC>JoSBx+I&i#%
zBUYGVUf%JC!-EXBD7C@xh7A+DBU3rYgHb}lY~+i|!Xw`aIperW*m(O^;r9^_Gsxu+
z*IB$_0{e%6OPDJ+EG#}J?C`4HdHPOTpllS*@F~%`?RInE;FTlBA~mFn*4ZayquG1!
zu+4UDfpxQK&xzTN96x4XqIds5<j8+>Ab%s@*gLWc96a9VYT$&D_8lRZ`CO{=ejL$h
z?cY3KKn-s1`;l*awdRTqif?NM{fVgHp7aBH?GM^)xqi0IB}$cYu;rOSiBFk;*?Zd8
zE=8+sj?I7Wiw{6y6*$hLn5k3GffBZLvNT63$P_LTZ=Nr#{|<d1aedQzrdxxi4v*}6
z+;U4E%3DYJ5RmdGO@I+~bAeXaQ(I7^jJ35>_kp#I)Q9meH`KZ?-I9P|w4~O|EuRBI
zw!E2Fee{+qWH6V&xt_c^0GpAczvSgx2gSysqUr@F%DA)=5vn)dEnyVhA&PNR)^iNl
zsC8hBxog-y+AY-t*B%3#vx}<t;V=nudqxLUj6LZ|5Zf*e{@#1J(r7vzq?ZsTgGih<
zh@Hj3Oz4Dre-3(&&s6qwZ%LB24J~1SCh<F%VPOL}peQ_>(CN*wg7gE>;RZ`6I@z%6
zTTGi3JB8i%1_UgSC<qdST}uDxxA72jOskO!XZTLm%Xaea(SQL?;utjSssoGifpTE~
zP*0qO9WPG<&MQ}S5Dul@rX9_zr3jm)3Sf3?{rN?P8=J`Xa%QOuBq9MY<2SGlj25o_
z#;j#1#wDhGO)I`{_CcDnjvc{kNd{(^`d}Ak=!ZhEfU*0&x0*Uh2+sf>I{;3`5k?$b
zddw8EtDI`UMqEEuGt}9I)w?xN5-O}Wvl`_(h5<^9>?J(^-unRwRP8tD_-L17mTI4L
z@m9hcll1}Ekt~9B%Gb*eXy(QCU>N?V1Z+_f>@RS6z1^MP^v*V_hjXsT(sobgc6IA%
zNIMlbf1y?Fh}smpcD)hj(#q!jCp$U=>n<SdoEK1ceFm@w`UA{3#mP*1Ild6#^7NEm
zP}hL-X)3?RwY>txVV-3I4AGU9B<_+ePLvntG4P{w@&@W3#f5gjqFm`3*}Fead+#OG
zV|Pgv6tJ7|-aS)4^KqGE$?7M=jpQDOO$Q`{=JWFs4@PA;eo^*!-95$*=wn*DmglBA
z$0?{W;cL>=*-|&@T^qjtbLvp)7<8DLUx3A#F%#Y1X=W;*aar5DOTylJXa|3P*Ho9m
zrK8ajWQ_T7BjsZntE1n$7se<^S2x4FU`lanP!>ze+kQEOS)U!i;IIirv<r3>)7WMM
zX{~tyE#p*QC?~dOTg*U)bkt~0@LcjmS_{2ey&g%Ry9kFd7Kb87Z#TWTsJxzE8>h_P
z>)mDl9(Ol32ykihUuO8{m%aPe3Q>F>w*!W_goSbnIwO;v`6+k*eHf28y=10)!g|Oz
z^Ij){pWKVLPI^oDzoE12Tsm-+IoTsw#kEp|H7VFSx0=MY8fGZD6v9(;p+n*fFzref
zSy+oh@YxGU*B!|C=Vg;|0D?L8Zh9?Y+t8a|mi_oILe*T6lN6KvIUiNT$z%!aHVM54
zqB!>V{_8m9Y|-V$Ty^tUmZmQopC{u_%UTEK4qfGFaLsQK-F)uTQ*JlIl&FvZq&bzM
z)@tz=KQFp#o(_CvRD_x@4L~PIF}AxPYdeOJy8>${A0T<}NWw5DVg^T_C(|B(k||+=
ztlJ$e?`NZq;ePzIuM5kxQ~lyh5GUJ}$--Et1X11jm+Bq;x4}Oj7(MJ)@A&XU4Yfa7
zBKni{fisow*8A1W@4}CEF8Q>IFIQ!)eP;#_qbVk=Hc$*OQwuH{hcy+-0L;*_EJ)TA
z!QGv~JLEy3g+U?0Y-t+wII*)iF-!#%<B?BYSZBk>H<Yg<^|a{8?V9mzmSu8bdPH+{
z7n3WQ8;*sw<rD>#RB=r|qdHM!{?783Q~MLKfP!Gbah`&n(0}jsMqfs$Q`<-FXW{$g
zv)2mii4v!Y4!%3lmqT9!s;y0+!K(=ZWe%eQsJChYQr)NX|DpZ&Am$p>TwEOeO>6R=
z0XeslehPI~DMm`Q=zyQf(fwnlfB!p|?tJY&>E>u#`LfHYQJ=uTSfR>2Cm+iDg@wTp
z5vYX7&h750h5w#{kDALFCc-KfV4Dh?x9x=96BatiLGsG^r8p<)7aMZ34P>+d7P$XQ
zF~3^>+Oquh4z#IV@0O=c>FJD%e)rhEBFA=^<KWH5diPgJN^`vvz93y@5Zv?wPWHdZ
z_qr|8pM-5@==Z$J@T)6FCC7+Z@CXaZJ=2C;v10QWEz4ABAk}^ut$GNKdjUOvMy3B{
z7czF#TviEj;~k{XB-H7EQviwhp)mb1Kj92mzD#4u;X}O2BT&fyBKa${ncUc0^-ETk
zQ#vn}tr_x#HS`e+t*9h9e#Mjx*@XK))9mqBHuHB#Fb+z@W~-I8%}4$C>Sz29^ZaW}
zz$LZFv%^Ah#gey_9A=oS24(*r*?3bsfL#sBZ7&XzE!l%Ad?{GXlU0GXMiaYW?hB6}
z2aiX8Rc2sd))!hXjMO)%@qS1(GavRDKL#u!-^V|Ts=sG!%HC1$vo>__{h6|-Ys&UO
z1~a^&N4<qL{c-K>E1`jm@n^1<lI5NKzkTaIgzsbg%oQK|=gu9Y$W3Xk{^owjDc4@#
zUgIX*kn3P;=F~?Opk2#*5aite3Iti}>jVkCmvDkE3;xKU>(p)S^%2UT!?qhP>dZ(l
z&XAUlER-N!Q2-$l=u2#&DDJ7OBGC0-q_whqVfb3sNt{dP@rc0}Izr!N{8r4aI$WmO
z3)HFb`L5uK*%C*zdbtGH#`qq|giVmZl^liXD|0>=Q~~<6#?7*f-GrJxL26@t;+`X3
zk8g$0xL@B<m*-#m5S<b5h0Z-XH<Z)*rqa#MF#kR*A&<(stpO%~l!Wr%g5>5p8<V!8
z79O!VWPrB9fO(<!N+pmOHVJ(4Y?ipqjrbp&$8mheN|YuXSdtFbV=>kzAF!1R{N5%v
zGoAP&2lQb>H6vjB63|VkQ1{8@Z?&Zyu^}{J@C=TFP{$uSi`_>b-dAN$X>*oH&~1s3
zWc#iU4}!l#*q@u=09(_0ORUQ`Sz|Nkp8EkZoL@#^(|e98!`4c*d;xFZ9fw!(U&6z@
z31wSU+Y#2R+jpHuUWmAD<%;t=h-`&B8|J1_aOOirS3@vnQ|&Y@3={H^L{=OzR1<!z
zHGEaKS=4Md!%H%uPmA4V{Cahp+%b1vF12F@usF8nCTAk7DNEW)`wIK=cc!7d%+Q$Z
zBDM|n$Zma<*ku<OEyVwaPAhmYPE%ts%E$07X!-t4Ve4dxILnV;Lp%-yziIeAn;8e5
z>EVreZ3Ezk_p40%eb%3c&Z{Sc@7%SPGmR6Cju|GLSjrb-2{UW8;`k3+&IOv_u0F6?
zI5a|j?L#Scg>>UU8yfI<`BT1GsK*Ka8|%jltYc4pCWD=zx#7-!)JsQgut7RTex%?)
zPJlp%z*4Ko>VqF)?qjztsaCdno+kF9s-H5#(?e^OKUJe3gecXpeY;HBHLs@c5YCeq
zKO|Iz?7F4j980i}vtH@aLCm}QKH34<oRb9g(!A~H_#I(@JUV_tx@+$HiPLnu<alRE
zpyHG^>M0#OGy2F`?3Uh3Xe3S_>-Ql7YKjG94h}o5j82^+ig~fgJ-4WC>@vS{<t#VX
zh0s8H`g4lutURUmN(q8d#BP!2ScI{h%T@opfnbGdujeaM1G>0^s|Cp2lm+`v$K$n1
z8{Dvr+<n|hYTL;wn)e=1+tssUDpMGd$Ll|ZybrYs-`})wmGpD~4leUmXXriSeJ9E{
zdQd|wvaJf$!yPn|W%1P~9%JPTt|IIS_5r<?0Xq{qUL0S&(KGA)%-A0cO)zM(U>TWA
zBM|e7T!UQVyZvuA75>F@pu)qwPZ%zSbBh1|;jcv~oMF4SE*yDi4K_EA?dPogb6tNu
zr&kSJ$9HT4t0p)wv*77Oy5>GvBEH36nrJg#;Y$bgS>T0R(QfH2Vw7Y2_5QUXe-WO!
zpg{kSX2Us_z=xI(ig&Y_ZR!1Eg66?5^>%@H(t+<a37A87I3EL8W$qJ=exoD$6vjv>
zolQav_iH65Whontp!+&G{J$h5Ce(gYeO}d(|LHeVeev{MEP*DCL?(R0+~82^g`;y9
zP526ZZB`jv-amDJ)29UiK93Wt#I8V2^4uckOrDU0S@5}ZdjnU5g++TK#hE*?A01P`
zS7tu?mv(xB>{<<lmj|)KgK@16@|ob~S9kP&;#bpb5_ZC@V_(O!81ae4{b##;Zk^*6
z+_#vME0`+lCWl~@mD#b7`ukt`61AN2$Hu-Vs$G7rb=_4UvfY-D^U8j_5ibChiMu1H
ztAlUm$G++)Z6RVG7}xnU!b!WGb4i-h{~0*6ISA4Gu?S`4I6<2NfTc2Dvq1l3?-KfY
zSQdT$kDO^{C5PCyi~&+Mgh{FRqyH^$1yP<5_ig#r^vx$ztp4=xY7k<Jmu<eLyV$=R
zUz<|uJB(zHso$hJ`!7XZ%)jy|HER;axOzXBFPLq6OA#aKwxNLk*|+%CHOKF^vvA~z
z>dS+B_tyZ!oW<_o1EsIb(2oC5%cL{Bta^Ww6nu`|YdhTVXnl-!V71nxnE!xV@zW3j
zw)azk?TyYqlu7|jf92a_-E+k`Rl?>EsMP|6=0sW;$fci?SbvVMP1?72aZRx+ux5L%
zPns=r|E;1y(ey7r^A&y5b^`Ec`lqBSsFf`;Z{AA!BED$)OUv19(rf3YZ*@UIFJ~e>
zF+R8A+L`#!(z3Gtc;#wKUhmaH(ihIZ4Re8~Ij!eiz`NP^s4T_HRHhpl=1ElT?|o+N
zkC#pIqfM1i;mjR7nimwN!@uO`mn%mhYozRl54tO`2w-ck%&{BmT?++$apP*|Ymtn9
z8;pY6y$4r$SPFz5ZW=;c|Bz;ES;N;DPhsH4-~*?L`X12HhEj^8UEH9m!8V)Fb669-
za&RLtGuDAPp0XAcP=_+~@t)H&z)wy2L?wLu7%5V%s6z9bYp$s)uSxmU#l3&{FdLqp
z98=4u?Hw3rqV=+?cU*<V#XVEoO^;ac5&XGE(-FVK{b5aw+dF7P6Ll#WCqFEf>YahB
za+-K1Pl~py-X`n<bsjk}s_$sdL`b`Qj*;WL>OhHEgw2?%<hf}dwwx{v;wZj6`)I`+
z+^@mt+_2=lwrpQq)rLjXpx5gMk>2x0DEjm-|8#e}^jx<Kii@jdU7bo-7QUA`;z8Sd
zWf>VQL=5Hi!hJ!OI_8!HBws7)BEE;q-hQaCEVDDF0;3FHBg(Iru3*THXonq#!v)mo
zIJ(ugz2$rgg#9s(+g`XFg!?V`+J`>D(HmIOtZ^_C+8MYY?|9&6v7EZf&tm@k=TGCc
z2;R<->_iiXl_B`^)5BF)P)l6RWcf{r9AEk+6sV%`w>bsUe`Pyce2HhK#T@wDb7EhY
za~#i5yAEHM^Ia`FEw?{CxK)Cl?o3&IugX!asJhy$uB|YueI2m*rRNj8?s%fdm8MKc
zym6~M&86#`^r3x4VOCcAg!zq$U21%>DSCB#c&fB!${X9s>HZ<jZ6L9M&f&(OeMzGe
z1#+QGiH_YV7wMBvBe%$vWYRQ0V^(qMx|50JoZCcMb#x>L*mMYfo1d2XoT4cxq5MEW
zES_Ulz@I=fwadq#!SUVqSTN=Int)c)B7d^KG&!#1x9j7&Fs8_5@;+txvB6Wd)f02j
zD?#L@4SKVrxU`IbAT39U9}K>Ti;yW685$ZIV}c%c<^*gXMes?#|9V?DXM~j^VVsFY
zfj2qF5n-s}d~{5Ju2&9f$^UfL!KIusp^tD)PN)F0l|%2vjBp@K#0ABEL^_gp*n|n<
zb2L*L99x1fdd$2Pd}d^nHzB?5k>c8>`9=@-nuBu2v+b6Plt&3vQzH*gSwZ{lFU-8k
z8V@$9CS}&KWXG{eSHHBZa(*?b->R-~Wfr0ExD-LD+7~rz7%6TzcxJ3qH+E3J%M=UR
zp{n*<LhpcM!A=XBDMR^6#doA-7!3)JC*QS%@c0g*!;TNOrDh+E*16`=a6EH5jylBS
zotvy(F#(Nw`ubx@_pBY}FG{dmiqw?!)VJrP$@hq%SB*Ump~O;WzhiNSq3pzwhW#3}
zv;KN14XgA>p;6-4=G;2otLBqeOZ3f?#&2M>Up1I7#PM~5ZZa;|)YcQI1=4+yNQD}D
z=uPgKl8SE+X8~A^#HsXutO$Qd_j_IGA@paAW`9aE32M1LC`o-$(y$e*dE=DXxavh(
z+D3N#nq<v!6r+<K+6GXf<OlZb^7b4=NBt6m9NBzrzTf28@JcTmP7rTeg77d>n$}wF
zPI|^RZnQ=rqe1&Wn((r=C`Wgq1&zLJ)8U%^arG7x6tL9bJK7pX<=9WgJs7OnMkvfk
zx?@EO>p~<Ctye~QS2!8IW~#=NuN0#QiP|{ef`fDaM^`Gf{Hy;C5A^5QL(c47nv`ny
z4cR?jMXi41JZTny%1$E9w+f}|_3DSs;r&jvOU|nmIFLQ)LD2ixX+;4|C(<tMuZ>Sh
zK41lUX|^XVQnFs2490^L$y8La7JL#2lxH?Z@pt;hpz4o=Y*FqXi`)ugcvYfbANN){
zo5E~9w57GH+yp$2pa|gmB|45(x)TmpjY=s5h-`WnD@MB7-lLZ?QBKsY-bkJryS`h@
zqlUd}je7R?UMpPLO8_$#s-A97tu7Z7S6T~dl=C<Fw$1mXIA^k*t!#Bc?-J3g^PJ-|
z4Clcuk=!#1_oE^YMyPlFXJTBPt3-`?XwPE>Q9fg+mOxG`4~L0g*0kWGyN9Fj-7!_p
z0O|+$>FR_4FZ|k$s;z&Av(A*yO6<|ugl_Q^$Jo=|fRPdozvho(rpr)0G(V)N%PUBJ
z)pt5fVr|hHQLS|6jvtcNTP7!Is%O;$;nMw4wAyMP530u$W73SS3H&4O?Qq}q(%wQ$
z5A05spZcxdOSuQHPxC)WT%!PXk*})8a*W=&_mwk(r)z%!Wh>sanV;r+;)Y(1bRJXj
z+?z!cBU7h9yQyf^vL<uWP|oW3GR^3fGvXMxYWTvK{pwO~fOS*AIG_AVA$TXz&3UA@
z{|%>01O*H4oN=R1m8R@8UsJG*%k1OBe#cXbOx4)(%l`Z6MdnSDl=my_?T7teW{&qd
z40t>^_@4dCHKcKp(i7XcqeaP~eIsM7E36GjD_mewF^Srdb@;*URQkTSC^Yp41%J(9
zwA==?_#qxz9d!Qk3#sWhZ&Zwrh=0iY4|w5*@XH1sf7{F<cc8j`scF5_u|SPnO*eu~
zqFht!Tsc;+Ba8|~x_YwlT_UB$sKM)PkzrYD4)io%&}CN4&B9MpGp2EGM*W0JWUqew
zsvw)Q*8;=E+>eR1D^59Dz@LrIhO2K0-QrDF-5<q0`CfnFeQR6Sb~mI^T<adV=H+|%
z#>r*<S<KAlW!qFsRSxg08p~}4*m~nG68!bP`|{I(4huhxN!jT#SA&qo?MXFx%gsG$
zPbcuCwhiU92=)l}mN&9(hfb%RElwaYOFhZCLhVu6%|Cvp!dr$H#+0s|)n{D)WivKi
z@EYPDA!zgnXf{*rm2%RTSyBof<I?R213CVz;EzmU({URn1p2Nwol`giILXL5Z+9B=
z1o)pUjQ-pN^V!$2Kty<G^p(pd&6+&HZye_r8{7G)_b@yTUuxQw&CR)SL89MSJQj8O
zI3sa{NyvDG{4<h9B(JxIvKaic2?uSW*6Drq0k5{JZ?^f&m;RBmzjMCux}GJJCd}jl
z<EbJ~V!k;eaQ>Hp@h5T}Km=x9ZD|X<4V7bcUC^~^CvtRr3|f%zuCCk5e9kHu@LP@w
zSF%(BSqJifFCiVuPnK@7bUnpD9E20ZH>-xPBls8U2@#qGW(#q5tfuOoYZv|_u(_xx
zeBiUCbl~Kwshi5YQT$kXSbjfI?eo&Kh91lB?5iGpu4qr8KxG%@dr889j;AglnSTVg
zK$T=DHaF>WiQrU2b=XXmLxkfhyDQg-kAi+D1kFJ~XJp^Xe;gQ1%@RKU2-A+E&cP4S
zE}R9|d>-NOznSxP`F!^!!|m#|>b42v(72KYot;_1!)7?-yxPGb=&FiKXyxz06g*Ya
z8w%S&1$k9t_3Zxnvs4rC$-H^&eu#JijnIx$@&<o<U7JYWz>EA?Mrye)-$4^6b&VB;
z1GKD0)1Y^zl{g);hQy2Ia2lef9)5h6!QNprbn$+dhV`7_Z?E7ce&KOMmzsK^)d-ib
z=l&geho@o8yDRu<$^v+=Vk%)|eLV52tFfQmaBtcWx^$_qBGXHDDl_6Dr1Z&=jI|0~
zjn!`dG7W1%Cck-{cJy6T$DGZw)vjHtxE7l&{NS2&EHBFRcH(a#y#B?dpml$_FQll6
zH-Z&3YBl1r?RRnT>jS~1uD(E#x_v7me+Ps49g%2aIA7k*J4sS)8iG%s5^cGOOu-i~
zHnI<Q4FV$<sY@<ea9M2Z4UdKe+(?@!Ibix*ezfP1@fMW(5^8op-|326CjOKcGNaBH
zvv*5VN9R3rJ+rcF31jf^zUQ@vGOnVJ-vo#7-*{xpJf4M=T<TpmKmI!vHKjVM&A1WQ
zJI`lI6*iO!!6q&*FBf7klaWzTMV~*n1`Lh`<aGum9p)_z5nih&<TdHuaP3iN+C6-C
zb%8%4?(dN%&IOssLKZ}QtKP^@9a|lX^(NMS86FvV`DgZ;pMR%qh)jVPDav_)-rhl7
z+sZ}y4tc;=P>Q1eP<uY!cd_ilv)`Ah_KAsTjAh9*4?g{2NMS?6xOf8%yWEe1U2z2M
zX>CyDn2!LOnki50x11@A^fl6dDJrU3UVe27vVuU~o_0!3LfdyLPID@a-&{x*xzIiS
zv(JKtCPq$nyz%6cB<nwBUJW@T#yeFD%ba>8CMsH`SD<fXWRxrzLxJ+C;%=j@p75Q>
zv&Ay_Ha1yR;p>Pt*~DJ%RN7W4i95g5`Okxl38u5FT-M4AjKUF8Qc{T1ZBn>levMN_
zy-!Wx;-u;L$`u<+@!fKsB%2s?C~Tqk5<>@Z|3QY)-zkJ*GjE_LSIa3^O#o)lS!#G~
z#L~BB7*Cw=JrW}$8+{ul&1+-g@5)><T~A$J&Rlun7473Z=>EVWjd+TLAJn7MUviqp
z(;={u_;D_6PdXF3Yme8%E;m?`E*6`;wXL|d-{6f3$HgQIjAR7gPGO9_iZ9fC<DHkO
zQLe*s5b8cA@!ry;0pZolDt)awQ-6z^pa`$`xzXk$#E|lXWot``{i5Tw1MJ#+sci`k
zI-G_}U-*4@y7ytn>0xE}5%)J=^;e{6by`oSWKp^DjmEo0Lu@mlLWC0s-8Yz}<-DW#
zElB;-I;E+n?wtc#SK;|`)-#|CP+qSeEO}O)9o|p7QW<{#8!h`Erzvlr^-H9QZbc1`
zLWQQ|f2abaCto0HL3j^iZ<neXDUMmyx7PH_x-r}dpstaFo4YjRw)h=wl-lJ0L?WoK
zL;WSyO7dO{=fz__%JJ7Plp39J4*#lr^xFlkpDzGbvi|ejP7dMszhmY2k7pd0m2Psd
zWq^KIMkO{`Jau;3Uo!{DXmxszW~pjqVKwjSu&*te>*8%*_FweZtoa!zy|d}gW^wy9
gUw_ra=?NzlSA+)?+(PLVapnv}S?f`;qDAok0Qr+A9{>OV

literal 0
HcmV?d00001

diff --git a/docs/en_US/images/toolbar.png b/docs/en_US/images/toolbar.png
index 19c4c574a905fb30ea1828b4825e85af7cdb0c0e..aac16b967b93b44576bf2a042b989aa296251648 100644
GIT binary patch
literal 42931
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%0D-NlnK%<oL#WUV3Obj&<*1=JUG#xkE)
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
K<4QTJ@c#j4GvEOL

literal 38057
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

diff --git a/docs/en_US/search_objects.rst b/docs/en_US/search_objects.rst
new file mode 100644
index 000000000..7cf08c84f
--- /dev/null
+++ b/docs/en_US/search_objects.rst
@@ -0,0 +1,32 @@
+.. _search_objects:
+
+***********************
+`Search objects`:index:
+***********************
+
+.. image:: images/search_objects.png
+    :alt: Search objects dialog
+    :align: center
+
+With this dialog, you can search for almost any kind of objects in a
+database.
+
+You can access it by right clicking a database or any of its child nodes
+and select "Search objects". You can also access it by hitting the
+shortcut (default ALT+SHIFT+S).
+
+The minimum pattern length are 3 characters. The search performed is
+non-casesensitive and will find all objets whose name contains the pattern.
+You can only search for object names.
+
+The result is presented in the grid with object name, object type and
+the object tree path in the :ref:`browser <tree_control>`. You can double
+click on a result row to select the object in the
+:ref:`browser <tree_control>`. If the object is grey, this means that you
+have not enabled those object types in the :ref:`preferences <preferences>`,
+so you can't click on it.
+
+You can filter based on a particular object type by selecting one from the
+object type dropdown. An object type will not be visible in the dropdown
+if the database server does not support it or if it is not enabled from the
+:ref:`preferences <preferences>`.
\ No newline at end of file
diff --git a/docs/en_US/toolbar.rst b/docs/en_US/toolbar.rst
index 12dc8621a..f4c685f24 100644
--- a/docs/en_US/toolbar.rst
+++ b/docs/en_US/toolbar.rst
@@ -18,4 +18,6 @@ the selected browser node.
 * Use the :ref:`View Data <editgrid>` button to view/edit the data stored in a
   selected table.
 * Use the :ref:`Filtered Rows <viewdata_filter>` button to access the Data Filter popup
-  to apply a filter to a set of data for viewing/editing.
\ No newline at end of file
+  to apply a filter to a set of data for viewing/editing.
+* Use the :ref:`Search objects <search_objects>` button to access the search objects
+  dialog. It helps you search any database object.
\ No newline at end of file
diff --git a/web/pgadmin/browser/register_browser_preferences.py b/web/pgadmin/browser/register_browser_preferences.py
index 09f472795..5f57f9fa1 100644
--- a/web/pgadmin/browser/register_browser_preferences.py
+++ b/web/pgadmin/browser/register_browser_preferences.py
@@ -249,6 +249,21 @@ def register_browser_preferences(self):
         fields=fields
     )
 
+    self.preference.register(
+        'keyboard_shortcuts',
+        'sub_menu_search_objects',
+        gettext('Search objects'),
+        'keyboardshortcut',
+        {
+            'alt': True,
+            'shift': True,
+            'control': False,
+            'key': {'key_code': 83, 'char': 's'}
+        },
+        category_label=gettext('Keyboard shortcuts'),
+        fields=fields
+    )
+
     self.preference.register(
         'keyboard_shortcuts',
         'sub_menu_create',
diff --git a/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.js b/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.js
index 7724ef4c4..b2127c4b0 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.js
@@ -24,7 +24,7 @@ define('pgadmin.node.extension', [
     pgAdmin.Browser.Nodes['coll-extension'] =
       pgAdmin.Browser.Collection.extend({
         node: 'extension',
-        label: gettext('Extension'),
+        label: gettext('Extensions'),
         type: 'coll-extension',
         columns: ['name', 'owner', 'comment'],
       });
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/packages/ppas/12_plus/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/packages/ppas/12_plus/nodes.sql
new file mode 100644
index 000000000..8b11b594a
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/packages/ppas/12_plus/nodes.sql
@@ -0,0 +1,11 @@
+SELECT
+    nsp.oid, nspname AS name
+FROM
+    pg_namespace nsp
+WHERE nspparent = {{scid}}::oid
+{% if pkgid %}
+AND nsp.oid = {{pkgid}}::oid
+{% endif %}
+AND nspobjecttype = 0
+AND nspcompoundtrigger = false
+ORDER BY nspname;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py
index 2984a58e4..4b0a0918c 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py
@@ -54,8 +54,8 @@ class IndexConstraintModule(ConstraintTypeModule):
         initialized.
     """
 
-    NODE_TYPE = 'Index constraint'
-    COLLECTION_LABEL = _('index_constraint')
+    NODE_TYPE = 'index_constraint'
+    COLLECTION_LABEL = _('Index constraint')
 
     def __init__(self, *args, **kwargs):
         """
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py
index e455b8adf..9ffbe742c 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py
@@ -29,8 +29,11 @@ from pgadmin.tools.schema_diff.compare import SchemaDiffObjectCompare
 
 
 def backend_supported(module, manager, **kwargs):
-    if 'tid' in kwargs and CollectionNodeModule.BackendSupported(
-            module, manager, **kwargs):
+
+    if CollectionNodeModule.BackendSupported(module, manager, **kwargs):
+        if 'tid' not in kwargs:
+            return True
+
         conn = manager.connection(did=kwargs['did'])
 
         template_path = 'partitions/sql/{0}/#{0}#{1}#'.format(
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/tests/test_backend_supported.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/tests/test_backend_supported.py
index bf92e5f01..1de4de825 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/tests/test_backend_supported.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/tests/test_backend_supported.py
@@ -21,19 +21,19 @@ else:
 
 class TestBackendSupport(BaseTestGenerator):
     scenarios = [
-        ('when tid is not present in arguments, should return None and no '
-         'query should be done',
+        ('when tid is not present in arguments, but server version'
+         'is supported then return True',
          dict(
              manager=dict(
-                 server_type="",
-                 version=""
+                 server_type="pg",
+                 version="100000"
              ),
              input_arguments=dict(did=432),
 
              collection_node_active=True,
              connection_execution_return_value=[],
 
-             expected_return_value=None,
+             expected_return_value=True,
              expect_error_response=False,
              expected_number_calls_on_render_template=0
          )),
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/pg/macros/catalogs.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/pg/macros/catalogs.sql
index 5f9bf9532..f1645d070 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/pg/macros/catalogs.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/pg/macros/catalogs.sql
@@ -9,6 +9,9 @@
         (SELECT 1 FROM pg_class WHERE relname = 'tables' AND
             relnamespace = {{ tbl }}.oid LIMIT 1))
 {%- endmacro %}
+{% macro IS_CATALOG_SCHEMA(schema_col_name) -%}
+    {{ schema_col_name }} IN ('pg_catalog', 'pgagent', 'information_schema')
+{%- endmacro %}
 {% macro LABELS(tbl, _) -%}
     CASE {{ tbl }}.nspname
     WHEN 'pg_catalog' THEN '{{ _( 'PostgreSQL Catalog' ) }} (pg_catalog)'
@@ -17,9 +20,24 @@
     ELSE {{ tbl }}.nspname
     END AS name
 {%- endmacro %}
+{% macro LABELS_SCHEMACOL(schema_col_name, _) -%}
+    CASE {{ schema_col_name }}
+    WHEN 'pg_catalog' THEN '{{ _( 'PostgreSQL Catalog' ) }} (pg_catalog)'
+    WHEN 'pgagent' THEN '{{ _( 'pgAgent Job Scheduler' ) }} (pgagent)'
+    WHEN 'information_schema' THEN '{{ _( 'ANSI' ) }} (information_schema)'
+    ELSE {{ schema_col_name }}
+    END
+{%- endmacro %}
 {% macro DB_SUPPORT(tbl) -%}
     CASE
     WHEN {{ tbl }}.nspname = ANY('{information_schema}')
         THEN false
     ELSE true END
 {%- endmacro %}
+{% macro DB_SUPPORT_SCHEMACOL(schema_col_name) -%}
+    CASE
+    WHEN {{ schema_col_name }} = ANY('{information_schema}')
+        THEN false
+    ELSE true END
+{%- endmacro %}
+
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/ppas/macros/catalogs.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/ppas/macros/catalogs.sql
index 37fb594ed..b9fc276ef 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/ppas/macros/catalogs.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/ppas/macros/catalogs.sql
@@ -13,6 +13,9 @@
        (SELECT 1 FROM pg_proc
         WHERE pronamespace = {{ tbl }}.oid and proname = 'run_job' LIMIT 1))
 {%- endmacro %}
+{% macro IS_CATALOG_SCHEMA(schema_col_name) -%}
+    {{ schema_col_name }} IN ('pg_catalog', 'pgagent', 'information_schema', 'dbo', 'sys', 'dbms_job_procedure')
+{%- endmacro %}
 {% macro LABELS(tbl, _) -%}
     CASE {{ tbl }}.nspname
     WHEN 'pg_catalog' THEN '{{ _( 'PostgreSQL Catalog' ) }} (pg_catalog)'
@@ -23,9 +26,25 @@
     ELSE {{ tbl }}.nspname
     END AS name
 {%- endmacro %}
-{% macro DB_SUPPORT(tbl) -%}
+{% macro LABELS_SCHEMACOL(schema_col_name, _) -%}
+    CASE {{ schema_col_name }}
+    WHEN 'pg_catalog' THEN '{{ _( 'PostgreSQL Catalog' ) }} (pg_catalog)'
+    WHEN 'pgagent' THEN '{{ _( 'pgAgent Job Scheduler' ) }} (pgagent)'
+    WHEN 'information_schema' THEN '{{ _( 'ANSI' ) }} (information_schema)'
+    WHEN 'dbo' THEN 'Redmond (dbo)'
+    WHEN 'sys' THEN 'Redwood (sys)'
+    ELSE {{ schema_col_name }}
+    END
+{%- endmacro %}
+{% macro DB_SUPPORT(tbl, schema_col_name) -%}
     CASE
     WHEN {{ tbl }}.nspname = ANY('{information_schema,sys,dbo}')
         THEN false
     ELSE true END
 {%- endmacro %}
+{% macro DB_SUPPORT_SCHEMACOL(schema_col_name) -%}
+    CASE
+    WHEN {{ schema_col_name }} = ANY('{information_schema,sys,dbo}')
+        THEN false
+    ELSE true END
+{%- endmacro %}
diff --git a/web/pgadmin/browser/server_groups/servers/roles/static/js/role.js b/web/pgadmin/browser/server_groups/servers/roles/static/js/role.js
index 47500caf7..c7bb247ec 100644
--- a/web/pgadmin/browser/server_groups/servers/roles/static/js/role.js
+++ b/web/pgadmin/browser/server_groups/servers/roles/static/js/role.js
@@ -18,6 +18,7 @@ define('pgadmin.node.role', [
     pgAdmin.Browser.Nodes['coll-role'] =
       pgAdmin.Browser.Collection.extend({
         node: 'role',
+        label: gettext('Login/Group Roles'),
         type: 'coll-role',
         columns: [
           'rolname', 'rolvaliduntil', 'rolconnlimit', 'rolcanlogin',
diff --git a/web/pgadmin/browser/static/js/collection.js b/web/pgadmin/browser/static/js/collection.js
index 2ec4fe1b5..a3c9ad96e 100644
--- a/web/pgadmin/browser/static/js/collection.js
+++ b/web/pgadmin/browser/static/js/collection.js
@@ -51,14 +51,23 @@ define([
         }]);
 
         // show query tool only in context menu of supported nodes.
-        if (pgAdmin.DataGrid && pgAdmin.unsupported_nodes) {
-          if (_.indexOf(pgAdmin.unsupported_nodes, this.type) == -1) {
+
+        if (pgAdmin.unsupported_nodes && _.indexOf(pgAdmin.unsupported_nodes, this.type) == -1) {
+          if ((this.type == 'database' && this.allowConn) || this.type != 'database') {
             pgAdmin.Browser.add_menus([{
-              name: 'show_query_tool', node: this.type, module: this,
+              name: 'show_query_tool', node: this.type, module: pgAdmin.DataGrid,
               applies: ['context'], callback: 'show_query_tool',
               priority: 998, label: gettext('Query Tool...'),
               icon: 'pg-font-icon icon-query-tool',
             }]);
+
+            // show search objects same as query tool
+            pgAdmin.Browser.add_menus([{
+              name: 'search_objects', node: this.type, module: pgAdmin.SearchObjects,
+              applies: ['context'], callback: 'show_search_objects',
+              priority: 997, label: gettext('Search Objects...'),
+              icon: 'fa fa-search',
+            }]);
           }
         }
       },
diff --git a/web/pgadmin/browser/static/js/keyboard.js b/web/pgadmin/browser/static/js/keyboard.js
index 5cd00e6a3..8705e14be 100644
--- a/web/pgadmin/browser/static/js/keyboard.js
+++ b/web/pgadmin/browser/static/js/keyboard.js
@@ -34,6 +34,7 @@ _.extend(pgBrowser.keyboardNavigation, {
         'tabbed_panel_forward': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'tabbed_panel_forward').value),
         'sub_menu_query_tool': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_query_tool').value),
         'sub_menu_view_data': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_view_data').value),
+        'sub_menu_search_objects': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_search_objects').value),
         'sub_menu_properties': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_properties').value),
         'sub_menu_create': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_create').value),
         'sub_menu_delete': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_delete').value),
@@ -55,6 +56,7 @@ _.extend(pgBrowser.keyboardNavigation, {
         'bindLeftTree': {'shortcuts': this.keyboardShortcut.left_tree_shortcut}, // Main menu,
         'bindSubMenuQueryTool': {'shortcuts': this.keyboardShortcut.sub_menu_query_tool}, // Sub menu - Open Query Tool,
         'bindSubMenuViewData': {'shortcuts': this.keyboardShortcut.sub_menu_view_data}, // Sub menu - Open View Data,
+        'bindSubMenuSearchObjects': {'shortcuts': this.keyboardShortcut.sub_menu_search_objects}, // Sub menu - Open search objects,
         'bindSubMenuProperties': {'shortcuts': this.keyboardShortcut.sub_menu_properties}, // Sub menu - Edit Properties,
         'bindSubMenuCreate': {'shortcuts': this.keyboardShortcut.sub_menu_create}, // Sub menu - Create Object,
         'bindSubMenuDelete': {'shortcuts': this.keyboardShortcut.sub_menu_delete}, // Sub menu - Delete object,
@@ -261,6 +263,15 @@ _.extend(pgBrowser.keyboardNavigation, {
     // Call data grid method to render view data
     pgAdmin.DataGrid.show_data_grid({'mnuid': 1}, tree.i);
   },
+  bindSubMenuSearchObjects: function() {
+    const tree = this.getTreeDetails();
+
+    if (!tree.d)
+      return;
+
+    // Call data grid method to render view data
+    pgAdmin.SearchObjects.show_search_objects('', tree.i);
+  },
   bindSubMenuProperties: function() {
     const tree = this.getTreeDetails();
 
diff --git a/web/pgadmin/browser/static/js/node.js b/web/pgadmin/browser/static/js/node.js
index 029a29817..9ee0b4bf5 100644
--- a/web/pgadmin/browser/static/js/node.js
+++ b/web/pgadmin/browser/static/js/node.js
@@ -177,6 +177,14 @@ define('pgadmin.browser.node', [
 
       // Show query tool only in context menu of supported nodes.
       if (_.indexOf(pgAdmin.unsupported_nodes, self.type) == -1) {
+        let enable = function(itemData) {
+          if (itemData._type == 'database' && itemData.allowConn)
+            return true;
+          else if (itemData._type != 'database')
+            return true;
+          else
+            return false;
+        };
         pgAdmin.Browser.add_menus([{
           name: 'show_query_tool',
           node: self.type,
@@ -186,14 +194,15 @@ define('pgadmin.browser.node', [
           priority: 998,
           label: gettext('Query Tool...'),
           icon: 'pg-font-icon icon-query-tool',
-          enable: function(itemData) {
-            if (itemData._type == 'database' && itemData.allowConn)
-              return true;
-            else if (itemData._type != 'database')
-              return true;
-            else
-              return false;
-          },
+          enable: enable,
+        }]);
+
+        // show search objects same as query tool
+        pgAdmin.Browser.add_menus([{
+          name: 'search_objects', node: self.type, module: pgAdmin.SearchObjects,
+          applies: ['context'], callback: 'show_search_objects',
+          priority: 997, label: gettext('Search Objects...'),
+          icon: 'fa fa-search', enable: enable,
         }]);
       }
 
diff --git a/web/pgadmin/browser/static/js/toolbar.js b/web/pgadmin/browser/static/js/toolbar.js
index 955fe6f32..6eb1f39f4 100644
--- a/web/pgadmin/browser/static/js/toolbar.js
+++ b/web/pgadmin/browser/static/js/toolbar.js
@@ -46,6 +46,16 @@ let _defaultToolBarButtons = [
     parentClass: 'pg-toolbar-btn btn-secondary',
     enabled: false,
   },
+  {
+    label: gettext('Search objects'),
+    ariaLabel: gettext('Search objects'),
+    btnClass: 'fa fa-search',
+    text: '',
+    toggled: false,
+    toggleClass: '',
+    parentClass: 'pg-toolbar-btn btn-secondary',
+    enabled: false,
+  },
 ];
 
 // Place holder for non default tool bar buttons.
@@ -92,6 +102,8 @@ export function initializeToolbar(panel, wcDocker) {
       pgAdmin.DataGrid.show_data_grid({mnuid: 3}, pgAdmin.Browser.tree.selected());
     else if ('name' in data && data.name === gettext('Filtered Rows'))
       pgAdmin.DataGrid.show_filtered_row({mnuid: 4}, pgAdmin.Browser.tree.selected());
+    else if ('name' in data && data.name === gettext('Search objects'))
+      pgAdmin.SearchObjects.show_search_objects('', pgAdmin.Browser.tree.selected());
   });
 }
 
diff --git a/web/pgadmin/browser/templates/browser/index.html b/web/pgadmin/browser/templates/browser/index.html
index 682c23d65..67a10ba89 100644
--- a/web/pgadmin/browser/templates/browser/index.html
+++ b/web/pgadmin/browser/templates/browser/index.html
@@ -11,7 +11,7 @@
 {% block init_script %}
 try {
 require(
-['sources/generated/app.bundle', 'sources/generated/codemirror', 'sources/generated/browser_nodes'],
+['sources/generated/app.bundle', 'sources/generated/codemirror', 'sources/generated/browser_nodes', 'sources/generated/slickgrid'],
 function() {
 },
 function() {
diff --git a/web/pgadmin/static/bundle/slickgrid.js b/web/pgadmin/static/bundle/slickgrid.js
index 4b0ab410b..96ad3c330 100644
--- a/web/pgadmin/static/bundle/slickgrid.js
+++ b/web/pgadmin/static/bundle/slickgrid.js
@@ -8,7 +8,6 @@
 //////////////////////////////////////////////////////////////
 
 import 'slickgrid/lib/jquery.event.drag-2.3.0';
-import 'slickgrid/lib/jquery-ui-1.11.3';
 import 'slickgrid/slick.core';
 import 'slickgrid/slick.grid';
 import 'slickgrid/slick.dataview';
@@ -21,5 +20,6 @@ import 'slickgrid/plugins/slick.cellrangeselector';
 import 'slickgrid/plugins/slick.checkboxselectcolumn';
 import 'slickgrid/plugins/slick.rowselectionmodel';
 import 'sources/slickgrid/custom_header_buttons';
+import 'sources/slickgrid/plugins/slick.autocolumnsize';
 
 export default window.Slick;
diff --git a/web/pgadmin/static/css/style.css b/web/pgadmin/static/css/style.css
index 6c0f84460..55e477ee1 100644
--- a/web/pgadmin/static/css/style.css
+++ b/web/pgadmin/static/css/style.css
@@ -5,19 +5,18 @@
 @import '~tempusdominus-bootstrap-4/build/css/tempusdominus-bootstrap-4.css';
 @import '~bootstrap4-toggle/css/bootstrap4-toggle.css';
 @import '~backgrid-filter/backgrid-filter.css';
-@import '~slickgrid/css/select2.css';
 @import '~jquery-contextmenu/dist/jquery.contextMenu.css';
 @import '~webcabin-docker/Build/wcDocker.css';
 @import '~acitree/css/aciTree.css';
 @import '~spectrum-colorpicker/spectrum.css';
 @import '~leaflet/dist/leaflet.css';
+@import '../../../node_modules/select2/dist/css/select2.css';
 
 @import '~codemirror/lib/codemirror.css';
 @import '~codemirror/addon/dialog/dialog.css';
 @import '~codemirror/addon/scroll/simplescrollbars.css';
 
 @import '~slickgrid/slick.grid.css';
-@import '~slickgrid/slick-default-theme.css';
 @import '~slickgrid/css/smoothness/jquery-ui-1.11.3.custom.css';
 
 @import '../vendor/backgrid/backgrid.css';
diff --git a/web/pgadmin/static/js/alertify.pgadmin.defaults.js b/web/pgadmin/static/js/alertify.pgadmin.defaults.js
index 84dfc12fe..daa60f696 100644
--- a/web/pgadmin/static/js/alertify.pgadmin.defaults.js
+++ b/web/pgadmin/static/js/alertify.pgadmin.defaults.js
@@ -271,7 +271,8 @@ define([
           let container = $(self.elements.footer);
           commonUtils.findAndSetFocus(container.find('button:not([disabled]):last'));
         }
-      });    });
+      });
+    });
     this.set('onresize', alertifyDialogStartResizing.bind(this, true));
     this.set('onresized', alertifyDialogResized.bind(this, true));
     this.set('onmaximized', alertifyDialogResized);
diff --git a/web/pgadmin/static/js/alertify/dialog.js b/web/pgadmin/static/js/alertify/dialog.js
index 6f4933720..8e5bdb738 100644
--- a/web/pgadmin/static/js/alertify/dialog.js
+++ b/web/pgadmin/static/js/alertify/dialog.js
@@ -80,6 +80,39 @@ export class Dialog {
     return serverInformation;
   }
 
+  retrieveAncestorOfTypeDatabase(item) {
+    let databaseInfo = null;
+    let aciTreeItem = item || this.pgBrowser.treeMenu.selected();
+    let treeNode = this.pgBrowser.treeMenu.findNodeByDomElement(aciTreeItem);
+
+    if (treeNode) {
+      if(treeNode.getData()._type === 'database') {
+        databaseInfo = treeNode.getData();
+      } else {
+        let nodeData = null;
+        treeNode.ancestorNode(
+          (node) => {
+            nodeData = node.getData();
+            if(nodeData._type === 'database') {
+              databaseInfo = nodeData;
+              return true;
+            }
+            return false;
+          }
+        );
+      }
+    }
+
+    if (databaseInfo === null) {
+      this.alertify.alert(
+        gettext(this.errorAlertTitle),
+        gettext('Please select a database or its child node from the browser.')
+      );
+    }
+
+    return databaseInfo;
+  }
+
   hasBinariesConfiguration(serverInformation) {
     const module = 'paths';
     let preference_name = 'pg_bin_dir';
diff --git a/web/pgadmin/static/js/alertify/dialog_factory.js b/web/pgadmin/static/js/alertify/dialog_factory.js
index cb0ae1552..760fde679 100644
--- a/web/pgadmin/static/js/alertify/dialog_factory.js
+++ b/web/pgadmin/static/js/alertify/dialog_factory.js
@@ -9,6 +9,7 @@
 
 import * as BackupDialog from '../../../tools/backup/static/js/backup_dialog_wrapper';
 import {RestoreDialogWrapper} from '../../../tools/restore/static/js/restore_dialog_wrapper';
+import SearchObjectsDialogWrapper from '../../../tools/search_objects/static/js/search_objects_dialog_wrapper';
 
 export class DialogFactory {
   constructor(pgBrowser, $,
@@ -25,6 +26,8 @@ export class DialogFactory {
   create(dialogTitle, typeOfDialog) {
     if (typeOfDialog === 'restore') {
       return this.createRestoreDialog(dialogTitle, typeOfDialog);
+    } else if (typeOfDialog === 'search_objects') {
+      return this.createSearchObjectsDialog(dialogTitle, typeOfDialog);
     } else {
       return this.createBackupDialog(dialogTitle, typeOfDialog);
     }
@@ -49,4 +52,14 @@ export class DialogFactory {
       this.dialogModel,
       this.backform);
   }
+
+  createSearchObjectsDialog(dialogTitle, typeOfDialog) {
+    return new SearchObjectsDialogWrapper(
+      this.dialogContainerSelector, dialogTitle, typeOfDialog,
+      this.jquery,
+      this.pgBrowser,
+      this.alertify,
+      this.dialogModel,
+      this.backform);
+  }
 }
diff --git a/web/pgadmin/static/js/alertify/dialog_wrapper.js b/web/pgadmin/static/js/alertify/dialog_wrapper.js
index e4c275f3a..32d9a7a0b 100644
--- a/web/pgadmin/static/js/alertify/dialog_wrapper.js
+++ b/web/pgadmin/static/js/alertify/dialog_wrapper.js
@@ -58,7 +58,11 @@ export class DialogWrapper {
     let backform_tab = $(alertifyDialog.elements.body).find('.backform-tab');
     backform_tab.attr('tabindex', -1);
     this.pgBrowser.keyboardNavigation.getDialogTabNavigator($(alertifyDialog.elements.dialog));
-    const container = backform_tab.find('.tab-content:first > .tab-pane.active:first');
+    let container = backform_tab.find('.tab-content:first > .tab-pane.active:first');
+
+    if(container.length === 0 && alertifyDialog.elements.content.innerHTML) {
+      container = $(alertifyDialog.elements.content);
+    }
     commonUtils.findAndSetFocus(container);
   }
 
diff --git a/web/pgadmin/static/js/backform.pgadmin.js b/web/pgadmin/static/js/backform.pgadmin.js
index a57f70ebc..3cdc13d4d 100644
--- a/web/pgadmin/static/js/backform.pgadmin.js
+++ b/web/pgadmin/static/js/backform.pgadmin.js
@@ -2132,6 +2132,7 @@ define([
     defaults: _.extend({}, Backform.SelectControl.prototype.defaults, {
       select2: {
         first_empty: true,
+
         multiple: false,
         emptyOptions: false,
         preserveSelectionOrder: false,
diff --git a/web/pgadmin/static/js/slickgrid/plugins/slick.autocolumnsize.js b/web/pgadmin/static/js/slickgrid/plugins/slick.autocolumnsize.js
index 40e537e1b..85b339139 100644
--- a/web/pgadmin/static/js/slickgrid/plugins/slick.autocolumnsize.js
+++ b/web/pgadmin/static/js/slickgrid/plugins/slick.autocolumnsize.js
@@ -98,7 +98,7 @@
     function getTemplateWidth(rowEl, template) {
       var cell = $(rowEl.find('.slick-cell'));
       cell.append(template);
-      $(cell).find('*').css('position', 'relative');
+      cell.find('*').css('position', 'relative');
       return cell.outerWidth() + 1;
     }
 
@@ -128,7 +128,7 @@
         'text-overflow': 'initial',
         'white-space': 'nowrap',
       });
-      var gridCanvas = $container.find('.grid-canvas');
+      var gridCanvas = $container.find('.grid-canvas').first();
       $(gridCanvas).append(rowEl);
       return rowEl;
     }
diff --git a/web/pgadmin/static/js/tree/tree.js b/web/pgadmin/static/js/tree/tree.js
index 57b6207c8..984d247d3 100644
--- a/web/pgadmin/static/js/tree/tree.js
+++ b/web/pgadmin/static/js/tree/tree.js
@@ -50,17 +50,50 @@ export class TreeNode {
   }
 
   reload(tree) {
-    this.unload(tree);
-    tree.aciTreeApi.setInode(this.domNode);
-    tree.aciTreeApi.deselect(this.domNode);
-    setTimeout(() => {
-      tree.selectNode(this.domNode);
-    }, 0);
+    return new Promise((resolve)=>{
+      this.unload(tree)
+        .then(()=>{
+          tree.aciTreeApi.setInode(this.domNode);
+          tree.aciTreeApi.deselect(this.domNode);
+          setTimeout(() => {
+            tree.selectNode(this.domNode);
+          }, 0);
+          resolve();
+        });
+    });
   }
 
   unload(tree) {
-    this.children = [];
-    tree.aciTreeApi.unload(this.domNode);
+    return new Promise((resolve, reject)=>{
+      this.children = [];
+      tree.aciTreeApi.unload(this.domNode, {
+        success: ()=>{
+          resolve(true);
+        },
+        fail: ()=>{
+          reject();
+        },
+      });
+    });
+  }
+
+  open(tree, suppressNoDom) {
+    return new Promise((resolve, reject)=>{
+      if(suppressNoDom && (this.domNode == null || typeof(this.domNode) === 'undefined')) {
+        resolve(true);
+      } else if(tree.aciTreeApi.isOpen(this.domNode)) {
+        resolve(true);
+      } else {
+        tree.aciTreeApi.open(this.domNode, {
+          success: ()=>{
+            resolve(true);
+          },
+          fail: ()=>{
+            reject(true);
+          },
+        });
+      }
+    });
   }
 
   /*
@@ -202,6 +235,47 @@ export class Tree {
     return findInTree(this.rootNode, path.join('.'));
   }
 
+  findNodeWithToggle(path) {
+    let tree = this;
+    path = path.join('.');
+
+    let onCorrectPath = function(matchPath) {
+      return (matchPath !== undefined && path !== undefined
+        && (path.startsWith(matchPath + '.') || path === matchPath));
+    };
+
+    return (function findInNode(currentNode) {
+      return new Promise((resolve, reject)=>{
+        if (path === null || path === undefined || path.length === 0) {
+          resolve(null);
+        }
+        /* No point in checking the children if
+         * the path for currentNode itself is not matching
+         */
+        if (currentNode.path !== undefined && !onCorrectPath(currentNode.path)) {
+          reject(null);
+        } else if (currentNode.path === path) {
+          resolve(currentNode);
+        } else {
+          currentNode.open(tree, true)
+            .then(()=>{
+              for (let i = 0, length = currentNode.children.length; i < length; i++) {
+                let childNode = currentNode.children[i];
+                if(onCorrectPath(childNode.path)) {
+                  resolve(findInNode(childNode));
+                  return;
+                }
+              }
+              reject(null);
+            })
+            .catch(()=>{
+              reject(null);
+            });
+        }
+      });
+    })(this.rootNode);
+  }
+
   findNodeByDomElement(domElement) {
     const path = this.translateTreeNodeIdFromACITree(domElement);
     if(!path || !path[0]) {
@@ -215,8 +289,19 @@ export class Tree {
     return this.aciTreeApi.selected();
   }
 
-  selectNode(aciTreeIdentifier) {
+  /* scrollIntoView will scroll only to top and bottom
+   * Logic can be added for scroll to middle
+   */
+  scrollTo(domElement) {
+    domElement.scrollIntoView();
+  }
+
+  selectNode(aciTreeIdentifier, scrollOnSelect) {
     this.aciTreeApi.select(aciTreeIdentifier);
+
+    if(scrollOnSelect) {
+      this.scrollTo(aciTreeIdentifier[0]);
+    }
   }
 
   createOrUpdateNode(id, data, parent, domNode) {
@@ -227,6 +312,7 @@ export class Tree {
     const oldNode = this.findNode(oldNodePath);
     if (oldNode !== null) {
       oldNode.data = data;
+      oldNode.domNode = domNode;
       return oldNode;
     }
 
@@ -238,6 +324,18 @@ export class Tree {
     return node;
   }
 
+  unloadNode(id, data, domNode, parentPath) {
+    let oldNodePath = [id];
+    const parent = this.findNode(parentPath);
+    if(parent !== null && parent !== undefined) {
+      oldNodePath = [parent.path, id];
+    }
+    const oldNode = this.findNode(oldNodePath);
+    if(oldNode) {
+      oldNode.children = [];
+    }
+  }
+
   /**
    * Given the JQuery object that contains the ACI Tree
    * this method is responsible for registering this tree class
@@ -252,16 +350,20 @@ export class Tree {
     $treeJQuery.on('acitree', function (event, api, item, eventName) {
       if (api.isItem(item)) {
         /* If the id of node is changed, the path should also be changed */
-        if (eventName === 'added' || eventName === 'idset') {
+        if (['added', 'idset', 'beforeunload'].indexOf(eventName) != -1) {
           const id = api.getId(item);
           const data = api.itemData(item);
+          const parentId = this.translateTreeNodeIdFromACITree(api.parent(item));
 
-          if(eventName === 'added') {
-            this.prepareDraggable(data, item);
-          }
+          if(eventName === 'beforeunload') {
+            this.unloadNode(id, data, item, parentId);
+          } else {
+            if(eventName === 'added') {
+              this.prepareDraggable(data, item);
+            }
 
-          const parentId = this.translateTreeNodeIdFromACITree(api.parent(item));
-          this.addNewNode(id, data, item, parentId);
+            this.addNewNode(id, data, item, parentId);
+          }
           if(data.errmsg) {
             Alertify.error(data.errmsg);
           }
diff --git a/web/pgadmin/static/js/utils.js b/web/pgadmin/static/js/utils.js
index 86dae698e..7bdddba85 100644
--- a/web/pgadmin/static/js/utils.js
+++ b/web/pgadmin/static/js/utils.js
@@ -32,11 +32,12 @@ export function findAndSetFocus(container) {
      * browser. For eg, in safari focus() works only when element has
      * tabindex="0", whereas in Chrome it works in any case
      */
+
     if (first_el.length == 0) {
       first_el = container
         .find(`
-          .pgadmin-controls:first input:enabled,
           .pgadmin-controls:first .btn:not(.toggle),
+          .pgadmin-controls:first,
           .ajs-commands:first,
           .CodeMirror-scroll`)
         .find('*[tabindex]:not([tabindex="-1"])');
diff --git a/web/pgadmin/static/scss/_alert.scss b/web/pgadmin/static/scss/_alert.scss
index 3f2e561e3..0e7e234d1 100644
--- a/web/pgadmin/static/scss/_alert.scss
+++ b/web/pgadmin/static/scss/_alert.scss
@@ -119,21 +119,18 @@
   }
 
   .success-in-footer {
-    border-radius: 5px;
-    border: 1px solid transparent;
-
-    .alert-text {
-      border-color: $color-success-light;
-    }
+    border-radius: $border-radius;
+    border: 1px solid $color-success-light;
+    background: $color-success-light;
   }
 
   .info-in-footer {
+    border-radius: $border-radius;
     border: 1px solid $color-primary;
-    border-radius: 4px;
-    height: 35px;
+    background: $color-primary-light;
 
-    .alert-text {
-      border: none;
+    .fa {
+        font-size: 1rem;
     }
   }
 }
diff --git a/web/pgadmin/static/scss/_webcabin.pgadmin.scss b/web/pgadmin/static/scss/_webcabin.pgadmin.scss
index 4846a8031..ca806785a 100644
--- a/web/pgadmin/static/scss/_webcabin.pgadmin.scss
+++ b/web/pgadmin/static/scss/_webcabin.pgadmin.scss
@@ -166,7 +166,7 @@
 
 .wcTabIcon {
   background-position: center;
-  padding: 0px 10px;
+  padding: 0rem 0.75rem;
 
   &.fa, &.pg-font-icon{
     padding: 0rem 0.25rem 0rem 0rem
diff --git a/web/pgadmin/tools/search_objects/__init__.py b/web/pgadmin/tools/search_objects/__init__.py
new file mode 100644
index 000000000..e8bd59141
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/__init__.py
@@ -0,0 +1,87 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2020, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
+"""Implements Search Object feature"""
+
+from flask import request
+from flask_babelex import gettext
+from flask_security import login_required
+
+from pgadmin.utils import PgAdminModule
+from pgadmin.utils.ajax import make_json_response, bad_request,\
+    internal_server_error
+from pgadmin.utils.preferences import Preferences
+from pgadmin.tools.search_objects.utils import SearchObjectsHelper
+
+MODULE_NAME = 'search_objects'
+
+
+class SearchObjectsModule(PgAdminModule):
+    LABEL = gettext('Search objects')
+
+    def get_exposed_url_endpoints(self):
+        """
+        Returns:
+            list: URL endpoints for search_object module
+        """
+        return ['search_objects.search', 'search_objects.types']
+
+    def show_system_objects(self):
+        """
+        return system preference objects
+        """
+        return self.pref_show_system_objects.get()
+
+    def register_preferences(self):
+        """
+        Get show_system_objects preference
+        """
+        browser_preference = Preferences.module('browser')
+        self.pref_show_system_objects =\
+            browser_preference.preference('show_system_objects')
+
+
+# Create blueprint for BackupModule class
+blueprint = SearchObjectsModule(
+    MODULE_NAME, __name__, static_url_path=''
+)
+
+
[email protected]("/", endpoint='index')
+@login_required
+def index():
+    return bad_request(errormsg=_("This URL cannot be called directly."))
+
+
[email protected]("types/<int:sid>/<int:did>", endpoint='types')
+@login_required
+def types(sid, did):
+    so_obj = SearchObjectsHelper(sid, did, blueprint.show_system_objects())
+    return make_json_response(data=so_obj.get_supported_types())
+
+
[email protected]("search/<int:sid>/<int:did>", endpoint='search')
+@login_required
+def search(sid, did):
+    """
+    URL args:
+        text <required>: search text
+        type <optional>: type of object to be searched.
+    """
+    text = request.args.get('text', None)
+    obj_type = request.args.get('type', None)
+
+    so_obj = SearchObjectsHelper(sid, did, blueprint.show_system_objects())
+
+    status, res = so_obj.search(text, obj_type)
+
+    if not status:
+        return internal_server_error(errormsg=res)
+
+    return make_json_response(data=res)
diff --git a/web/pgadmin/tools/search_objects/static/js/search_objects.js b/web/pgadmin/tools/search_objects/static/js/search_objects.js
new file mode 100644
index 000000000..84e40afd1
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/static/js/search_objects.js
@@ -0,0 +1,90 @@
+/////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2020, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////
+
+define([
+  'sources/gettext', 'sources/url_for', 'jquery', 'underscore', 'pgadmin.alertifyjs',
+  'sources/pgadmin', 'sources/csrf', 'pgadmin.browser.toolbar',
+  'pgadmin.search_objects/search_objects_dialog',
+], function(
+  gettext, url_for, $, _, alertify, pgAdmin, csrfToken, toolBar, SearchObjectsDialog
+) {
+
+  var pgBrowser = pgAdmin.Browser;
+  if (pgAdmin.SearchObjects)
+    return pgAdmin.SearchObjects;
+
+  pgAdmin.SearchObjects = {
+    init: function() {
+      if (this.initialized)
+        return;
+
+      this.initialized = true;
+      csrfToken.setPGCSRFToken(pgAdmin.csrf_token_header, pgAdmin.csrf_token);
+
+      // Define the nodes on which the menus to be appear
+      var menus = [{
+        name: 'search_objects',
+        module: this,
+        applies: ['tools'],
+        callback: 'show_search_objects',
+        enable: this.search_objects_enabled,
+        priority: 1,
+        label: gettext('Search objects'),
+      }, {
+        name: 'search_objects',
+        module: this,
+        applies: ['context'],
+        callback: 'show_search_objects',
+        enable: this.search_objects_enabled,
+        priority: 1,
+        label: gettext('Search objects'),
+      }];
+
+      pgBrowser.add_menus(menus);
+      return this;
+    },
+
+    search_objects_enabled: function(obj) {
+      /* Same as query tool */
+      var isEnabled = (() => {
+        if (!_.isUndefined(obj) && !_.isNull(obj)) {
+          if (_.indexOf(pgAdmin.unsupported_nodes, obj._type) == -1) {
+            if (obj._type == 'database' && obj.allowConn) {
+              return true;
+            } else if (obj._type != 'database') {
+              return true;
+            } else {
+              return false;
+            }
+          } else {
+            return false;
+          }
+        } else {
+          return false;
+        }
+      })();
+
+      toolBar.enable(gettext('Search objects'), isEnabled);
+      return isEnabled;
+    },
+
+    // Callback to show the dialog
+    show_search_objects: function(action, item) {
+      let dialog = new SearchObjectsDialog.default(
+        pgBrowser,
+        $,
+        alertify,
+        {},
+      );
+      dialog.draw(action, item, {}, pgBrowser.stdW.md, pgBrowser.stdH.md);
+    },
+  };
+
+  return pgAdmin.SearchObjects;
+});
diff --git a/web/pgadmin/tools/search_objects/static/js/search_objects_dialog.js b/web/pgadmin/tools/search_objects/static/js/search_objects_dialog.js
new file mode 100644
index 000000000..c2e24940d
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/static/js/search_objects_dialog.js
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2020, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////
+
+import gettext from 'sources/gettext';
+import {Dialog} from 'sources/alertify/dialog';
+import {getPanelTitle} from 'tools/datagrid/static/js/datagrid_panel_title';
+
+export default class SearchObjectsDialog extends Dialog {
+  constructor(pgBrowser, $, alertify, BackupModel, backform = null) {
+    super('Search Objects Error',
+      '<div class=\'search_objects_dialog\'></div>',
+      pgBrowser, $, alertify, BackupModel, backform
+    );
+  }
+
+  dialogName() {
+    return 'search_objects';
+  }
+
+  draw(action, aciTreeItem, params, width=0, height=0) {
+    let dbInfo = this.retrieveAncestorOfTypeDatabase(aciTreeItem);
+    if (!dbInfo) {
+      return;
+    }
+
+    let dialogTitle = getPanelTitle(this.pgBrowser, aciTreeItem);
+    dialogTitle = gettext('Search Objects - ')  + dialogTitle;
+    const dialog = this.createOrGetDialog(
+      gettext('Search Objects...'),
+      'search_objects'
+    );
+    dialog(dialogTitle).resizeTo(width, height);
+  }
+}
diff --git a/web/pgadmin/tools/search_objects/static/js/search_objects_dialog_wrapper.js b/web/pgadmin/tools/search_objects/static/js/search_objects_dialog_wrapper.js
new file mode 100644
index 000000000..926c5cf43
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/static/js/search_objects_dialog_wrapper.js
@@ -0,0 +1,614 @@
+import {getTreeNodeHierarchyFromElement} from 'sources/tree/pgadmin_tree_node';
+import axios from 'axios/index';
+import gettext from 'sources/gettext';
+import url_for from 'sources/url_for';
+import 'select2';
+import {DialogWrapper} from 'sources/alertify/dialog_wrapper';
+import Slick from 'sources/../bundle/slickgrid';
+import pgAdmin from 'sources/pgadmin';
+
+
+export default class SearchObjectsDialogWrapper extends DialogWrapper {
+  constructor(dialogContainerSelector, dialogTitle, typeOfDialog,
+    jquery, pgBrowser, alertify, dialogModel, backform) {
+    super(dialogContainerSelector, dialogTitle, jquery,
+      pgBrowser, alertify, dialogModel, backform);
+
+    this.grid = null;
+    this.gridContainer = null;
+  }
+
+  showMessage(text, is_error, call_after_show=()=>{}) {
+    if(text == '' || text == null) {
+      this.statusBar.classList.add('d-none');
+    } else {
+      if(is_error) {
+        this.statusBar.innerHTML = `
+          <div class="error-in-footer">
+            <div class="d-flex px-2 py-1">
+              <div class="pr-2">
+                <i class="fa fa-exclamation-triangle text-danger" aria-hidden="true" role="img"></i>
+              </div>
+              <div role="alert" class="alert-text">${text}</div>
+              <div class="ml-auto close-error-bar">
+                <a class="close-error fa fa-times text-danger"></a>
+              </div>
+            </div>
+          </div>
+        `;
+
+        this.statusBar.querySelector('.close-error').addEventListener('click', ()=>{
+          this.showMessage(null);
+        });
+      } else {
+        this.statusBar.innerHTML = `
+          <div class="info-in-footer">
+            <div class="d-flex px-2 py-1">
+              <div class="pr-2">
+                <i class="fa fa-info-circle text-primary" aria-hidden="true"></i>
+              </div>
+              <div class="alert-text" role="alert">${text}</div>
+            </div>
+          </div>
+        `;
+      }
+      this.statusBar.classList.remove('d-none');
+      call_after_show(this.statusBar);
+    }
+  }
+
+  createDialogDOM(dialogContainer) {
+    dialogContainer.innerHTML = `
+      <div class="d-flex flex-column w-100 h-100">
+        <div class="p-2">
+          <div class="row">
+            <div class="col-8 d-flex">
+              <div class="input-group pgadmin-controls">
+                  <div class="input-group-prepend">
+                      <span class="input-group-text fa fa-search" id="labelSearch" aria-label="` + gettext('Search') + `"></span>
+                  </div>
+                  <input type="search" class="form-control" id="txtGridSearch" placeholder="` + gettext('Type at least 3 characters') + `"
+                    tabindex="0" aria-describedby="labelSearch" aria-labelledby="labelSearch" autocomplete="off">
+              </div>
+              <div class="ml-2">
+                <button class="btn btn-primary btn-search" disabled>${ gettext('Search') }</button>
+              </div>
+            </div>
+            <div class="col-4">
+              <select class="node-types"></select>
+            </div>
+          </div>
+        </div>
+        <div class="search-result-container flex-grow-1">
+          <div class="pg-sp-container d-none">
+            <div class="pg-sp-content">
+              <div class="row"><div class="col-12 pg-sp-icon"></div></div>
+              <div class="row"><div class="col-12 pg-sp-text"></div></div>
+            </div>
+          </div>
+          <div class="search-result"></div>
+        </div>
+        <div class=\'pg-prop-status-bar pg-el-xs-12\'>
+        </div>
+      </div>
+    `;
+
+    return dialogContainer;
+  }
+
+  updateDimOfSearchResult() {
+    let dim = this.searchResultContainer.getBoundingClientRect();
+    this.searchResult.style.height = dim.height + 'px';
+    this.searchResult.style.width = dim.width + 'px';
+  }
+
+  setLoading(text) {
+    if(text != null) {
+      this.loader.classList.remove('d-none');
+      this.loader.querySelector('.pg-sp-text').innerHTML = text;
+    } else {
+      this.loader.classList.add('d-none');
+    }
+  }
+
+  searchBtnEnabled(enabled) {
+    if(typeof(enabled) != 'undefined') {
+      this.searchBtn.disabled = !enabled;
+    } else {
+      return !this.searchBtn.disabled;
+    }
+  }
+
+  searchBoxVal(val) {
+    if(typeof(val) != 'undefined') {
+      this.searchBox.value = val;
+    } else {
+      return this.searchBox.value.trim();
+    }
+  }
+
+  typesVal(val) {
+    if(typeof(val) != 'undefined') {
+      this.typesSelect.value = val;
+    } else {
+      return this.typesSelect.value;
+    }
+  }
+
+  setTypes(data, enabled=true) {
+    this.jquery(this.typesSelect).empty().select2({
+      data: data,
+    });
+
+    this.typesSelect.disabled = !enabled;
+  }
+
+  showOtherInfo(rowno) {
+    let data = this.grid.getData();
+    let rowData = data[rowno];
+    rowData.name += ` (${rowData.other_info})`;
+    rowData.other_info = null;
+    data[rowno] = rowData;
+    this.setGridData(data);
+  }
+
+  setGridData(data) {
+    data.getItemMetadata = (row)=>{
+      if(data[row] && !data[row].show_node){
+        return {
+          cssClasses: 'object-muted',
+        };
+      }
+      return null;
+    };
+    this.grid.setData(data);
+    this.grid.resizeCanvas();
+  }
+
+  prepareGrid() {
+    this.grid = new Slick.Grid(
+      this.searchResult,
+      [],
+      [
+        { id: 'name', name: 'Object name', field: 'name', sortable: true,
+          formatter: (row, cell, value, columnDef, dataContext) => {
+            let ret_el = `<i class='wcTabIcon ${dataContext.icon}'></i>${value}`;
+
+            if(dataContext.other_info != null && dataContext.other_info != '') {
+              ret_el += '&nbsp;<span class="object-other-info">(...)</span>';
+            }
+
+            return ret_el;
+          },
+          width: 50,
+        },
+        { id: 'type', name: 'Type', field: 'type_label', sortable: true, width: 35 },
+        { id: 'path', name: 'Path', field: 'path', sortable: false },
+      ],
+      {
+        enableCellNavigation: true,
+        enableColumnReorder: false,
+        multiColumnSort: true,
+        explicitInitialization: true,
+      }
+    );
+
+    this.grid.registerPlugin(new Slick.AutoColumnSize());
+
+    this.grid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow: true}));
+
+    this.grid.onKeyDown.subscribe((event) => {
+      let activeRow = this.grid.getActiveCell();
+      if(activeRow && !event.ctrlKey && !event.altKey && !event.metaKey && event.keyCode == 9) {
+        event.preventDefault();
+        event.stopImmediatePropagation();
+
+        if(event.shiftKey) {
+          this.prevToGrid.focus();
+        } else {
+          this.nextToGrid.focus();
+        }
+      }
+    });
+
+    this.grid.onClick.subscribe((event, args) => {
+      if(event.target.classList.contains('object-other-info')) {
+        this.showOtherInfo(args.row);
+      }
+    });
+
+    this.grid.onDblClick.subscribe((event, args) => {
+      let rowData = this.grid.getDataItem(args.row);
+      let treeMenu = this.pgBrowser.treeMenu;
+
+      if(!rowData.show_node) {
+        this.showMessage(
+          gettext('%s objects are disabled in the browser.', rowData.type) + ' ' +
+          gettext('You can enable them in the') + ' <a class="pref-dialog-link">' + gettext('preferences dialog') + '</a>',
+          true,
+          (statusBar)=>{
+            statusBar.querySelector('.pref-dialog-link').addEventListener('click', ()=>{
+              if(pgAdmin.Preferences) {
+                pgAdmin.Preferences.show();
+              }
+            });
+          }
+        );
+        return false;
+      }
+      this.showMessage(gettext('Locating...'));
+      treeMenu.findNodeWithToggle(rowData.id_path)
+        .then((treeItem)=>{
+          treeMenu.selectNode(treeItem.domNode, true);
+          this.showMessage(null);
+        })
+        .catch((args)=>{
+          this.showMessage(gettext('Unable to locate this object in the browser.'), true);
+          console.warn(args);
+        });
+    });
+
+    this.grid.onSort.subscribe((event, args) => {
+      let cols = args.sortCols;
+      let data = this.grid.getData();
+
+      data.sort(function (dataRow1, dataRow2) {
+        for (var i = 0, l = cols.length; i < l; i++) {
+          var field = cols[i].sortCol.field;
+          var sign = cols[i].sortAsc ? 1 : -1;
+          var value1 = dataRow1[field], value2 = dataRow2[field];
+          var result = (value1 == value2 ? 0 : (value1 > value2 ? 1 : -1)) * sign;
+          if (result != 0) {
+            return result;
+          }
+        }
+        return false;
+      });
+      this.setGridData(data);
+    });
+  }
+
+  onDialogResize() {
+    this.updateDimOfSearchResult();
+
+    if(this.grid) {
+      this.grid.resizeCanvas();
+      this.grid.autosizeColumns();
+    }
+  }
+
+  onDialogShow() {
+    this.focusOnDialog(this);
+
+    setTimeout(()=>{
+      if(!this.grid) {
+        this.prepareGrid();
+      }
+      this.updateDimOfSearchResult();
+      this.grid.init();
+      this.setGridData([]);
+      this.onDialogResize();
+    }, 500);
+  }
+
+  getBaseUrl(endpoint) {
+    return url_for('search_objects.'+endpoint, {
+      sid: this.treeInfo.server._id,
+      did: this.treeInfo.database._id,
+    });
+  }
+
+  getCollNode(node_type) {
+    if('coll-'+node_type in this.pgBrowser.Nodes) {
+      return this.pgBrowser.Nodes['coll-'+node_type];
+    } else if(node_type in this.pgBrowser.Nodes &&
+              typeof(this.pgBrowser.Nodes[node_type].collection_type) === 'string') {
+      return this.pgBrowser.Nodes[this.pgBrowser.Nodes[node_type].collection_type];
+    }
+
+    return null;
+  }
+
+  getSelectedNode() {
+    const tree = this.pgBrowser.treeMenu;
+    const selectedNode = tree.selected();
+    if (selectedNode) {
+      return tree.findNodeByDomElement(selectedNode);
+    } else {
+      return undefined;
+    }
+  }
+
+  finaliseData(datum) {
+    datum.icon = 'icon-' + datum.type;
+    /* finalise path */
+    [datum.path, datum.id_path] = this.translateSearchObjectsPath(datum.path, datum.catalog_level);
+    return datum;
+  }
+
+  /* This function will translate the path given by search objects API into two parts
+   * 1. The display path on the UI
+   * 2. The tree search path to locate the object on the tree.
+   *
+   * Sample path returned by search objects API
+   * :schema.11:/pg_catalog/:table.2604:/pg_attrdef
+   *
+   * Sample path required by tree locator
+   * Normal object  - server_group/1.server/3.coll-database/3.database/13258.coll-schema/13258.schema/2200.coll-table/2200.table/41773
+   * pg_catalog schema - server_group/1.server/3.coll-database/3.database/13258.coll-catalog/13258.catalog/11.coll-table/11.table/2600
+   * Information Schema, dbo, sys    - server_group/1.server/3.coll-database/3.database/13258.coll-catalog/13258.catalog/12967.coll-catalog_object/12967.catalog_object/13204
+   *
+   * Column catalog_level has values as
+   * N - Not a catalog schema
+   * D - Catalog schema with DB support - pg_catalog
+   * O - Catalog schema with object support only - info schema, dbo, sys
+   */
+  translateSearchObjectsPath(path, catalog_level) {
+    if (path === null) {
+      return path;
+    }
+
+    catalog_level = catalog_level || 'N';
+
+    /* path required by tree locator */
+    /* the path received from the backend is after the DB node, initial path setup */
+    let id_path = [
+      this.treeInfo.server_group.id,
+      this.treeInfo.server.id,
+      this.getCollNode('database').type + '/' + this.treeInfo.server._id,
+      this.treeInfo.database.id,
+    ];
+
+    let prev_node_id = this.treeInfo.database._id;
+
+    /* add the slash to match regex, remove it from display path later */
+    path = '/' + path;
+    /* the below regex will match all /:server_group.1:/ */
+    let new_path = path.replace(/\/:[a-zA-Z_]+\.[0-9]+:\//g, (token)=>{
+      let orig_token = token;
+      /* remove the slash and colon */
+      token = token.slice(2, -2);
+      let [node_type, node_oid, others] = token.split('.');
+      if(typeof(others) !== 'undefined') {
+        return token;
+      }
+
+      /* schema type is "catalog" for catalog schemas */
+      node_type = (['D', 'O'].indexOf(catalog_level) != -1 && node_type == 'schema') ? 'catalog' : node_type;
+
+      /* catalog like info schema will only have views and tables AKA catalog_object except for pg_catalog */
+      node_type = (catalog_level === 'O' && ['view', 'table'].indexOf(node_type) != -1) ? 'catalog_object' : node_type;
+
+      /* If collection node present then add it */
+      let coll_node = this.getCollNode(node_type);
+      if(coll_node) {
+        /* Add coll node to the path */
+        if(prev_node_id != null) id_path.push(`${coll_node.type}/${prev_node_id}`);
+
+        /* Add the node to the path */
+        id_path.push(`${node_type}/${node_oid}`);
+
+        /* This will be needed for coll node */
+        prev_node_id = node_oid;
+
+        /* This will be displayed in the grid */
+        return  `/${coll_node.label}/`;
+      } else if(node_type in this.pgBrowser.Nodes) {
+        /* Add the node to the path */
+        id_path.push(`${node_type}/${node_oid}`);
+
+        /* This will be need for coll node id path */
+        prev_node_id = node_oid;
+
+        /* Remove the token and replace with slash. This will be displayed in the grid */
+        return '/';
+      }
+      prev_node_id = null;
+      return orig_token;
+    });
+
+    /* Remove the slash we had added */
+    new_path = new_path.substring(1);
+    return [new_path, id_path];
+  }
+
+  prepareDialog() {
+    this.showMessage(null);
+    if(this.grid) {
+      this.grid.destroy();
+      this.grid = null;
+    }
+
+    /* Load types */
+    this.setTypes([{
+      id: -1,
+      text: gettext('Loading...'),
+      value: null,
+    }], false);
+
+    axios.get(
+      this.getBaseUrl('types')
+    ).then((res)=>{
+      let types = [{
+        id: 'all',
+        text: 'All types',
+      }];
+
+      for (const key of Object.keys(res.data.data).sort()) {
+        types.push({
+          id: key,
+          text: res.data.data[key],
+        });
+      }
+      this.setTypes(types);
+    }).catch(()=>{
+      this.setTypes([{
+        id: -1,
+        text: gettext('Failed'),
+        value: null,
+      }], false);
+    });
+  }
+
+  main(title) {
+    this.set('title', title);
+  }
+
+  setup() {
+    return {
+      buttons: [{
+        text: '',
+        key: 112,
+        className: 'btn btn-secondary pull-left fa fa-question pg-alertify-icon-button',
+        attrs: {
+          name: 'dialog_help',
+          type: 'button',
+          label: gettext('Help'),
+          'aria-label': gettext('Help'),
+          url: url_for('help.static', {
+            'filename': 'search_objects.html',
+          }),
+        },
+      }, {
+        text: gettext('Close'),
+        key: 27,
+        className: 'btn btn-secondary fa fa-lg fa-times pg-alertify-button',
+        'data-btn-name': 'cancel',
+      }],
+      // Set options for dialog
+      options: {
+        title: this.dialogTitle,
+        //disable both padding and overflow control.
+        padding: !1,
+        overflow: !1,
+        model: 0,
+        resizable: true,
+        maximizable: true,
+        pinnable: false,
+        closableByDimmer: false,
+        modal: false,
+      },
+    };
+  }
+
+  build() {
+    let tmpEle = document.createElement('div');
+    tmpEle.innerHTML = this.dialogContainerSelector;
+    let dialogContainer = tmpEle.firstChild;
+
+    // Append the container
+    this.elements.content.innerHTML = '';
+    this.elements.content.appendChild(dialogContainer);
+
+    this.createDialogDOM(dialogContainer);
+    this.alertify.pgDialogBuild.apply(this);
+
+    this.loader = dialogContainer.getElementsByClassName('pg-sp-container')[0];
+
+    this.searchBox = dialogContainer.querySelector('#txtGridSearch');
+    this.searchBtn = dialogContainer.querySelector('.btn-search');
+    this.typesSelect = dialogContainer.querySelector('.node-types');
+    this.searchResultContainer = dialogContainer.querySelector('.search-result-container');
+    this.searchResult = dialogContainer.querySelector('.search-result');
+    this.statusBar = dialogContainer.querySelector('.pg-prop-status-bar');
+
+    /* These two values are required to come out of grid when tab is
+     * pressed in the grid. Slickgrid does not allow any way to come out
+     */
+    this.nextToGrid = this.elements.footer.querySelector('.ajs-button');
+    this.prevToGrid = this.typesSelect;
+
+    /* init select2 */
+    this.setTypes([{
+      id: -1,
+      text: gettext('Loading...'),
+      value: null,
+    }], false);
+
+    /* on search box change */
+    this.searchBox.addEventListener('input', ()=>{
+      if(this.searchBoxVal().length >= 3) {
+        this.searchBtnEnabled(true);
+      } else {
+        this.searchBtnEnabled(false);
+      }
+    });
+
+    /* on enter key press */
+    this.searchBox.addEventListener('keypress', (e)=>{
+      if(e.keyCode == 13) {
+        e.stopPropagation();
+        if(this.searchBtnEnabled()) {
+          this.searchBtn.dispatchEvent(new Event('click'));
+        }
+      }
+    });
+
+    /* on search button click */
+    this.searchBtn.addEventListener('click', ()=>{
+      this.searchBtnEnabled(false);
+      this.setGridData([]);
+      this.showMessage(null);
+
+      this.setLoading(gettext('Searching....'));
+      axios.get(this.getBaseUrl('search'), {
+        params: {
+          text: this.searchBoxVal(),
+          type: this.typesVal(),
+        },
+      }).then((res)=>{
+        let grid_data = res.data.data.map((row)=>{
+          return this.finaliseData(row);
+        });
+
+        this.setGridData(grid_data);
+      }).catch((error)=>{
+        let errmsg = '';
+
+        if (error.response) {
+          errmsg = error.response.statusText;
+        } else if (error.request) {
+          errmsg = gettext('No response received');
+        } else {
+          errmsg = error.message;
+        }
+        this.showMessage(gettext('An unexpected occurred: %s', errmsg), true);
+        console.warn(error);
+      }).finally(()=>{
+        this.setLoading(null);
+        this.searchBtnEnabled(true);
+      });
+    });
+
+    this.set({
+      'onresized': this.onDialogResize.bind(this),
+      'onmaximized': this.onDialogResize.bind(this),
+      'onrestored': this.onDialogResize.bind(this),
+      'onshow': this.onDialogShow.bind(this),
+    });
+  }
+
+  prepare() {
+    let selectedTreeNode = this.getSelectedNode();
+    if (!this.getSelectedNodeData(selectedTreeNode)) {
+      return;
+    }
+
+    this.treeInfo = getTreeNodeHierarchyFromElement(this.pgBrowser, selectedTreeNode);
+    this.prepareDialog();
+    this.focusOnDialog(this);
+  }
+
+  callback(event) {
+    if (this.wasHelpButtonPressed(event)) {
+      event.cancel = true;
+      this.pgBrowser.showHelp(
+        event.button.element.name,
+        event.button.element.getAttribute('url'),
+        null,
+        null,
+      );
+      return;
+    }
+  }
+}
diff --git a/web/pgadmin/tools/search_objects/static/scss/_search_objects.scss b/web/pgadmin/tools/search_objects/static/scss/_search_objects.scss
new file mode 100644
index 000000000..920c53832
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/static/scss/_search_objects.scss
@@ -0,0 +1,118 @@
+.search_objects_dialog {
+    height: 100%;
+
+    .object-other-info {
+        &:hover {
+            font-weight: bold;
+        }
+    }
+
+    .pref-dialog-link {
+        color: $color-fg !important;
+        text-decoration: underline !important;
+        cursor: pointer;
+    }
+
+    .search-result-container {
+        width: 100%;
+        height: 100%;
+        min-height: 0;
+    }
+
+    .node-types ~ .select2-container {
+        min-width: 100%;
+    }
+
+    .ui-widget {
+        font-family: $font-family-primary;
+        font-size: $font-size-base;
+
+        .slick-header.ui-state-default {
+            border: $table-border-width solid $table-border-color;
+            .slick-header-columns {
+                background: $table-bg;
+                color: $color-fg;
+                border-bottom: $panel-border;
+
+                .slick-header-column-sorted {
+                    font-style: unset;
+                }
+
+                .ui-state-default {
+                    background: $table-bg !important;
+                    color: $color-fg !important;
+                    padding: $table-header-cell-padding $table-cell-padding;
+                    border-right: $table-border-width solid $table-border-color;
+
+                    .slick-column-name {
+                        font-weight: bold;
+                    }
+
+                    .slick-sort-indicator {
+                        float: unset;
+                    }
+                }
+
+                .slick-header-sortable {
+                    cursor: pointer !important;
+
+                    .slick-sort-indicator-asc {
+                        background: none;
+                        border-top: none;
+                        border-right: 0.25rem solid transparent;
+                        border-bottom: 0.25rem solid $color-fg;
+                        border-left: 0.25rem solid transparent;
+                    }
+
+                    .slick-sort-indicator-desc {
+                        background: none;
+                        border-top: 0.25rem solid $color-fg;
+                        border-right: 0.25rem solid transparent;
+                        border-bottom: none;
+                        border-left: 0.25rem solid transparent;
+                    }
+                }
+            }
+        }
+        .ui-widget-content {
+            color: $color-fg;
+            &.slick-row {
+                &.object-muted {
+                    &.active, &.active:hover, &:hover, & {
+                        .slick-cell {
+                            color: $text-muted !important;
+                            cursor: default !important;
+                        }
+                    }
+                }
+
+                &.active, &.active:hover {
+                    .slick-cell {
+                        border-top: $table-border-width solid transparent !important;
+                        background-color: $tree-bg-selected !important;
+                        color: $tree-fg-selected !important;
+                    }
+                }
+
+                &:hover {
+                    cursor: pointer;
+                    .slick-cell {
+                        border-top: $table-border-width solid transparent !important;
+                        border-bottom: $table-border-width solid transparent !important;
+                        background-color: $tree-bg-hover !important;
+                        color: $tree-fg-hover !important;
+                        cursor: pointer !important;
+                    }
+                }
+            }
+        }
+    }
+
+
+    .pg-prop-status-bar {
+        position: absolute;
+        bottom: 0;
+        right: 0;
+        left: 0;
+    }
+}
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/10_plus/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/10_plus/search.sql
new file mode 100644
index 000000000..d00ca0d11
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/10_plus/search.sql
@@ -0,0 +1,434 @@
+{% import 'catalog/pg/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('S','v','m')
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['table', 'partition'] %}
+    SELECT CASE WHEN c.relispartition THEN 'partition' ELSE 'table' END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || (
+		WITH RECURSIVE table_path_data as (
+			select c.oid as oid, 0 as height,
+				CASE c.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || c.oid || ':/' || c.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) obj_path, n.nspname AS schema_name,
+	CASE WHEN c.relispartition THEN {{ show_node_prefs['partition'] }}
+	    ELSE {{ show_node_prefs['table'] }} END AS show_node,
+    NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    WHERE c.relkind in ('p','r')
+    {% if obj_type == 'table' %}
+    AND NOT c.relispartition
+    {% elif obj_type == 'partition' %}
+    AND c.relispartition
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function'] %}
+    SELECT
+        CASE
+        WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+        ELSE 'function' END::text AS obj_type, p.proname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || case when t.typname = 'trigger' then ':trigger_function.' else ':function.' end || p.oid ||':/' || p.proname AS obj_path, n.nspname AS schema_name,
+    CASE WHEN t.typname IN ('trigger', 'event_trigger') THEN {{ show_node_prefs['trigger_function'] }} ELSE {{ show_node_prefs['function'] }} END AS show_node,
+    pg_catalog.pg_get_function_identity_arguments(p.oid) AS other_info
+    from pg_proc p
+    left join pg_namespace n on p.pronamespace = n.oid
+    left join pg_type t on p.prorettype = t.oid
+    WHERE ({{ CATALOGS.DB_SUPPORT('n') }})
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/'||
+    (
+		WITH RECURSIVE table_path_data as (
+			select t.oid as oid, 0 as height,
+				CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) ||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+            case
+                when t.relkind = 'v' then ':view.'
+                when t.relkind = 'm' then ':mview.'
+                WHEN t.relkind in ('r', 'p') THEN
+                    (
+                        WITH RECURSIVE table_path_data as (
+                            select t.oid as oid, 0 as height,
+                                CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                            union
+                            select rel.oid, pt.height+1 as height,
+                                CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                                || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                            from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                            join pg_inherits inh ON inh.inhparent = rel.oid
+                            join table_path_data pt ON inh.inhrelid = pt.oid
+                        )
+                        select path from table_path_data order by height desc limit 1
+                    )
+            end
+            ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger'] %}
+    select 'trigger'::text AS obj_type, tr.tgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+        case
+            when t.relkind = 'v' then ':view.'
+            when t.relkind = 'm' then ':mview.'
+            WHEN t.relkind in ('r', 'p') THEN
+            (
+                WITH RECURSIVE table_path_data as (
+                    select t.oid as oid, 0 as height,
+                        CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                    union
+                    select rel.oid, pt.height+1 as height,
+                        CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                        || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                    from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                    join pg_inherits inh ON inh.inhparent = rel.oid
+                    join table_path_data pt ON inh.inhrelid = pt.oid
+                )
+                select path from table_path_data order by height desc limit 1
+            )
+        end || '/:trigger.'|| tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['trigger'] }} AS show_node, NULL AS other_info
+        from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary' AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser' AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template' AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain' AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints' AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper' AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server' AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping' AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table' AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension' AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation' AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/11_plus/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/11_plus/search.sql
new file mode 100644
index 000000000..bd2f94d9c
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/11_plus/search.sql
@@ -0,0 +1,451 @@
+{% import 'catalog/pg/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('S','v','m')
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['table', 'partition'] %}
+    SELECT CASE WHEN c.relispartition THEN 'partition' ELSE 'table' END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || (
+		WITH RECURSIVE table_path_data as (
+			select c.oid as oid, 0 as height,
+				CASE c.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || c.oid || ':/' || c.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) obj_path, n.nspname AS schema_name,
+	CASE WHEN c.relispartition THEN {{ show_node_prefs['partition'] }}
+	    ELSE {{ show_node_prefs['table'] }} END AS show_node,
+    NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    WHERE c.relkind in ('p','r')
+    {% if obj_type == 'table' %}
+    AND NOT c.relispartition
+    {% elif obj_type == 'partition' %}
+    AND c.relispartition
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function', 'procedure'] %}
+    SELECT
+        CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+            WHEN p.prokind = 'p' THEN 'procedure'
+            ELSE 'function'
+        END::text AS obj_type, p.proname AS obj_name,
+        ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+        CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN ':trigger_function.'
+            WHEN p.prokind = 'p' THEN ':procedure.'
+            ELSE ':function.'
+        END || p.oid ||':/' || p.proname AS obj_path, n.nspname AS schema_name,
+        CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN {{ show_node_prefs['trigger_function'] }}
+            WHEN p.prokind = 'p' THEN {{ show_node_prefs['procedure'] }}
+            ELSE {{ show_node_prefs['function'] }}
+        END AS show_node,
+        pg_catalog.pg_get_function_identity_arguments(p.oid) AS other_info
+    from pg_proc p join pg_namespace n
+    on p.pronamespace = n.oid join pg_type t
+    on p.prorettype = t.oid join pg_language lng
+    ON lng.oid=p.prolang
+    WHERE p.prokind IN ('f', 'w', 'p')
+    AND CASE
+        WHEN t.typname IN ('trigger', 'event_trigger') THEN lng.lanname NOT IN ('edbspl', 'sql', 'internal')
+        ELSE true
+        END
+    AND ({{ CATALOGS.DB_SUPPORT('n') }})
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/'||
+    (
+		WITH RECURSIVE table_path_data as (
+			select t.oid as oid, 0 as height,
+				CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) ||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+            case
+                when t.relkind = 'v' then ':view.'
+                when t.relkind = 'm' then ':mview.'
+                WHEN t.relkind in ('r', 'p') THEN
+                    (
+                        WITH RECURSIVE table_path_data as (
+                            select t.oid as oid, 0 as height,
+                                CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                            union
+                            select rel.oid, pt.height+1 as height,
+                                CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                                || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                            from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                            join pg_inherits inh ON inh.inhparent = rel.oid
+                            join table_path_data pt ON inh.inhrelid = pt.oid
+                        )
+                        select path from table_path_data order by height desc limit 1
+                    )
+            end
+            ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger'] %}
+    select 'trigger'::text AS obj_type, tr.tgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+        case
+            when t.relkind = 'v' then ':view.'
+            when t.relkind = 'm' then ':mview.'
+            WHEN t.relkind in ('r', 'p') THEN
+            (
+                WITH RECURSIVE table_path_data as (
+                    select t.oid as oid, 0 as height,
+                        CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                    union
+                    select rel.oid, pt.height+1 as height,
+                        CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                        || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                    from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                    join pg_inherits inh ON inh.inhparent = rel.oid
+                    join table_path_data pt ON inh.inhrelid = pt.oid
+                )
+                select path from table_path_data order by height desc limit 1
+            )
+        end || '/:trigger.'|| tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['trigger'] }} AS show_node, NULL AS other_info
+        from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary' AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser' AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template' AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain' AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints' AS obj_type,
+    	c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper' AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server' AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping' AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table' AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension' AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation' AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/default/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/default/search.sql
new file mode 100644
index 000000000..b384b316d
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/default/search.sql
@@ -0,0 +1,367 @@
+{% import 'catalog/pg/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['table', 'sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'r' THEN 'table'
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'r' THEN ':table.'
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'r' THEN {{ show_node_prefs['table'] }}
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('r','S','v','m')
+    {% elif obj_type == 'table' %}
+    WHERE c.relkind  = 'r'
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function'] %}
+    SELECT
+        CASE
+        WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+        ELSE 'function' END::text AS obj_type, p.proname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || case when t.typname = 'trigger' then ':trigger_function.' else ':function.' end || p.oid ||':/' || p.proname AS obj_path, n.nspname AS schema_name,
+    CASE WHEN t.typname IN ('trigger', 'event_trigger') THEN {{ show_node_prefs['trigger_function'] }} ELSE {{ show_node_prefs['function'] }} END AS show_node,
+    pg_catalog.pg_get_function_identity_arguments(p.oid) AS other_info
+    from pg_proc p
+    left join pg_namespace n on p.pronamespace = n.oid
+    left join pg_type t on p.prorettype = t.oid
+    WHERE ({{ CATALOGS.DB_SUPPORT('n') }})
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/:table.'|| t.oid || ':/'||t.relname||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname||
+            case
+                WHEN t.relkind = 'r' THEN '/:table.'
+                when t.relkind = 'v' then '/:view.'
+                when t.relkind = 'm' then '/:mview.'
+                else 'should not happen'
+            end || t.oid || ':/' || t.relname ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger'] %}
+    select 'trigger'::text AS obj_type, tr.tgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname||
+            case
+                WHEN t.relkind = 'r' THEN '/:table.'
+                when t.relkind = 'v' then '/:view.'
+                when t.relkind = 'm' then '/:mview.'
+                else 'should not happen'
+            end || t.oid || ':/' || t.relname || '/:trigger.'|| tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+            {{ show_node_prefs['trigger'] }} AS show_node, NULL AS other_info
+            from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary'::text AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser'::text AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template'::text AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints'::text AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper'::text AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server'::text AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping'::text AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table'::text AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension'::text AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation'::text AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/10_plus/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/10_plus/search.sql
new file mode 100644
index 000000000..76d3f01ba
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/10_plus/search.sql
@@ -0,0 +1,494 @@
+{% import 'catalog/ppas/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('S','v','m')
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['table', 'partition'] %}
+    SELECT CASE WHEN c.relispartition THEN 'partition' ELSE 'table' END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || (
+		WITH RECURSIVE table_path_data as (
+			select c.oid as oid, 0 as height,
+				CASE c.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || c.oid || ':/' || c.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) obj_path, n.nspname AS schema_name,
+	CASE WHEN c.relispartition THEN {{ show_node_prefs['partition'] }}
+	    ELSE {{ show_node_prefs['table'] }} END AS show_node,
+    NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    WHERE c.relkind in ('p','r')
+    {% if obj_type == 'table' %}
+    AND NOT c.relispartition
+    {% elif obj_type == 'partition' %}
+    AND c.relispartition
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function', 'procedure', 'edbfunc', 'edbproc'] %}
+    SELECT fd.obj_type, fd.obj_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'procedure' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:procedure.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'trigger_function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:trigger_function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbfunc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbfunc.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbproc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbproc.' || fd.obj_oid ||':/' || fd.obj_name
+            ELSE NULL
+        END AS obj_path,
+        CASE
+            WHEN fd.obj_type IN ('function', 'procedure', 'trigger_function') THEN fd.schema_name
+            WHEN fd.obj_type IN ('edbfunc', 'edbproc') THEN fd.next_schema_name
+            ELSE NULL
+        END AS schema_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN {{ show_node_prefs['function'] }}
+            WHEN fd.obj_type = 'procedure' THEN {{ show_node_prefs['procedure'] }}
+            WHEN fd.obj_type = 'trigger_function' THEN {{ show_node_prefs['trigger_function'] }}
+            WHEN fd.obj_type = 'edbfunc' THEN {{ show_node_prefs['edbfunc'] }}
+            WHEN fd.obj_type = 'edbproc' THEN {{ show_node_prefs['edbproc'] }}
+            ELSE NULL
+        END AS show_node, other_info
+    FROM (
+        SELECT
+            CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+            WHEN pr.protype = '0'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbfunc' ELSE 'function' END
+            WHEN pr.protype = '1'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbproc' ELSE 'procedure' END
+            ELSE null
+            END::text AS obj_type, pr.proname AS obj_name, pr.oid AS obj_oid, n.oid AS schema_oid, n.nspname AS schema_name, np.oid next_schema_oid, np.nspname next_schema_name,
+            pg_catalog.pg_get_function_identity_arguments(pr.oid) AS other_info
+        FROM pg_proc pr left join pg_namespace n
+        ON pr.pronamespace = n.oid left JOIN pg_namespace np
+        ON np.oid=n.nspparent left JOIN pg_type t
+        ON t.oid = pr.prorettype left JOIN pg_language l
+        ON l.oid = pr.prolang
+        WHERE NOT (t.typname = 'trigger' AND l.lanname = 'edbspl')
+        AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }})
+    ) fd
+    {% if not all_obj %}
+    WHERE fd.obj_type = '{{ obj_type }}'
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where n.nspparent = 0
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/'||
+    (
+		WITH RECURSIVE table_path_data as (
+			select t.oid as oid, 0 as height,
+				CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) ||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+            case
+                when t.relkind = 'v' then ':view.'
+                when t.relkind = 'm' then ':mview.'
+                WHEN t.relkind in ('r', 'p') THEN
+                    (
+                        WITH RECURSIVE table_path_data as (
+                            select t.oid as oid, 0 as height,
+                                CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                            union
+                            select rel.oid, pt.height+1 as height,
+                                CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                                || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                            from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                            join pg_inherits inh ON inh.inhparent = rel.oid
+                            join table_path_data pt ON inh.inhrelid = pt.oid
+                        )
+                        select path from table_path_data order by height desc limit 1
+                    )
+            end
+            ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger'] %}
+    select 'trigger'::text AS obj_type, tr.tgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname||
+            case
+                WHEN t.relkind = 'r' THEN '/:table.'
+                when t.relkind = 'v' then '/:view.'
+                when t.relkind = 'm' then '/:mview.'
+                else 'should not happen'
+            end || t.oid || ':/' || t.relname || '/:trigger.'|| tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+            {{ show_node_prefs['trigger'] }} AS show_node, NULL AS other_info
+            from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary' AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser' AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template' AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain' AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints' AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper' AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server' AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping' AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table' AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension' AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation' AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['synonym'] %}
+    SELECT 'synonym' AS obj_type, s.synname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:synonym.'||s.oid||':/' || s.synname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['synonym'] }} AS show_node, NULL AS other_info
+    FROM pg_synonym s
+    JOIN pg_namespace n ON n.oid=s.synnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['package'] %}
+    SELECT 'package' AS obj_type, p.nspname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['package'] }} AS show_node, NULL AS other_info
+    FROM pg_namespace p
+    JOIN pg_namespace n ON n.oid=p.nspparent
+    WHERE p.nspcompoundtrigger = false
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['edbvar'] %}
+    SELECT 'edbvar' AS obj_type, v.varname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname || '/:edbvar.'||v.oid||':/' || v.varname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['edbvar'] }} AS show_node, NULL AS other_info
+    FROM edb_variable v JOIN pg_namespace p
+    ON v.varpackage = p.oid JOIN pg_namespace n
+    ON p.nspparent = n.oid
+    WHERE p.nspcompoundtrigger = false
+    AND {{ CATALOGS.DB_SUPPORT('p') }}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/12_plus/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/12_plus/search.sql
new file mode 100644
index 000000000..82eb9cf6f
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/12_plus/search.sql
@@ -0,0 +1,515 @@
+{% import 'catalog/ppas/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('S','v','m')
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['table', 'partition'] %}
+    SELECT CASE WHEN c.relispartition THEN 'partition' ELSE 'table' END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || (
+		WITH RECURSIVE table_path_data as (
+			select c.oid as oid, 0 as height,
+				CASE c.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || c.oid || ':/' || c.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) obj_path, n.nspname AS schema_name,
+	CASE WHEN c.relispartition THEN {{ show_node_prefs['partition'] }}
+	    ELSE {{ show_node_prefs['table'] }} END AS show_node,
+    NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    WHERE c.relkind in ('p','r')
+    {% if obj_type == 'table' %}
+    AND NOT c.relispartition
+    {% elif obj_type == 'partition' %}
+    AND c.relispartition
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function', 'procedure', 'edbfunc', 'edbproc'] %}
+    SELECT fd.obj_type, fd.obj_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'procedure' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:procedure.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'trigger_function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:trigger_function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbfunc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbfunc.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbproc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbproc.' || fd.obj_oid ||':/' || fd.obj_name
+            ELSE NULL
+        END AS obj_path,
+        CASE
+            WHEN fd.obj_type IN ('function', 'procedure', 'trigger_function') THEN fd.schema_name
+            WHEN fd.obj_type IN ('edbfunc', 'edbproc') THEN fd.next_schema_name
+            ELSE NULL
+        END AS schema_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN {{ show_node_prefs['function'] }}
+            WHEN fd.obj_type = 'procedure' THEN {{ show_node_prefs['procedure'] }}
+            WHEN fd.obj_type = 'trigger_function' THEN {{ show_node_prefs['trigger_function'] }}
+            WHEN fd.obj_type = 'edbfunc' THEN {{ show_node_prefs['edbfunc'] }}
+            WHEN fd.obj_type = 'edbproc' THEN {{ show_node_prefs['edbproc'] }}
+            ELSE NULL
+        END AS show_node, other_info
+    FROM (
+        SELECT
+            CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+            WHEN pr.protype = '0'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbfunc' ELSE 'function' END
+            WHEN pr.protype = '1'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbproc' ELSE 'procedure' END
+            ELSE null
+            END::text AS obj_type, pr.proname AS obj_name, pr.oid AS obj_oid, n.oid AS schema_oid, n.nspname AS schema_name, np.oid next_schema_oid, np.nspname next_schema_name,
+            pg_catalog.pg_get_function_identity_arguments(pr.oid) AS other_info
+        FROM pg_proc pr left join pg_namespace n
+        ON pr.pronamespace = n.oid left JOIN pg_namespace np
+        ON np.oid=n.nspparent left JOIN pg_type t
+        ON t.oid = pr.prorettype left JOIN pg_language l
+        ON l.oid = pr.prolang
+        WHERE NOT (t.typname = 'trigger' AND l.lanname = 'edbspl')
+        AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }})
+    ) fd
+    {% if not all_obj %}
+    WHERE fd.obj_type = '{{ obj_type }}'
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where n.nspparent = 0
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/'||
+    (
+		WITH RECURSIVE table_path_data as (
+			select t.oid as oid, 0 as height,
+				CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) ||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+            case
+                when t.relkind = 'v' then ':view.'
+                when t.relkind = 'm' then ':mview.'
+                WHEN t.relkind in ('r', 'p') THEN
+                    (
+                        WITH RECURSIVE table_path_data as (
+                            select t.oid as oid, 0 as height,
+                                CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                            union
+                            select rel.oid, pt.height+1 as height,
+                                CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                                || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                            from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                            join pg_inherits inh ON inh.inhparent = rel.oid
+                            join table_path_data pt ON inh.inhrelid = pt.oid
+                        )
+                        select path from table_path_data order by height desc limit 1
+                    )
+            end
+            ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger', 'compound_trigger'] %}
+    select
+        CASE WHEN tr.tgpackageoid != 0 THEN 'compound_trigger' ELSE 'trigger' END::text AS obj_type, tr.tgname AS obj_name,
+        ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+        case
+            when t.relkind = 'v' then ':view.'
+            when t.relkind = 'm' then ':mview.'
+            WHEN t.relkind in ('r', 'p') THEN
+            (
+                WITH RECURSIVE table_path_data as (
+                    select t.oid as oid, 0 as height,
+                        CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                    union
+                    select rel.oid, pt.height+1 as height,
+                        CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                        || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                    from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                    join pg_inherits inh ON inh.inhparent = rel.oid
+                    join table_path_data pt ON inh.inhrelid = pt.oid
+                )
+                select path from table_path_data order by height desc limit 1
+            )
+        end || CASE WHEN tr.tgpackageoid != 0 THEN '/:compound_trigger.' ELSE '/:trigger.' END || tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+        CASE WHEN tr.tgpackageoid != 0 THEN {{ show_node_prefs['compound_trigger'] }} ELSE {{ show_node_prefs['trigger'] }} END AS show_node,
+        NULL AS other_info
+        from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+    {% if obj_type == 'compound_trigger' %}
+    AND tr.tgpackageoid != 0
+    {% elif obj_type == 'trigger' %}
+    AND tr.tgpackageoid = 0
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary'::text AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser'::text AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template'::text AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints'::text AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper'::text AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server' AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping' AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table' AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension' AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation' AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['synonym'] %}
+    SELECT 'synonym' AS obj_type, s.synname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:synonym.'||s.oid||':/' || s.synname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['synonym'] }} AS show_node, NULL AS other_info
+    FROM pg_synonym s
+    JOIN pg_namespace n ON n.oid=s.synnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['package'] %}
+    SELECT 'package' AS obj_type, p.nspname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['package'] }} AS show_node, NULL AS other_info
+    FROM pg_namespace p
+    JOIN pg_namespace n ON n.oid=p.nspparent
+    WHERE p.nspcompoundtrigger = false
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['edbvar'] %}
+    SELECT 'edbvar' AS obj_type, v.varname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname || '/:edbvar.'||v.oid||':/' || v.varname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['edbvar'] }} AS show_node, NULL AS other_info
+    FROM edb_variable v JOIN pg_namespace p
+    ON v.varpackage = p.oid JOIN pg_namespace n
+    ON p.nspparent = n.oid
+    WHERE p.nspcompoundtrigger = false
+    AND {{ CATALOGS.DB_SUPPORT('p') }}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/default/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/default/search.sql
new file mode 100644
index 000000000..7bb126e32
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/default/search.sql
@@ -0,0 +1,437 @@
+{% import 'catalog/ppas/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['table', 'sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'r' THEN 'table'
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'r' THEN ':table.'
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'r' THEN {{ show_node_prefs['table'] }}
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('r','S','v','m')
+    {% elif obj_type == 'table' %}
+    WHERE c.relkind  = 'r'
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function', 'procedure', 'edbfunc', 'edbproc'] %}
+    SELECT fd.obj_type, fd.obj_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'procedure' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:procedure.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'trigger_function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:trigger_function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbfunc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbfunc.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbproc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbproc.' || fd.obj_oid ||':/' || fd.obj_name
+            ELSE NULL
+        END AS obj_path,
+        CASE
+            WHEN fd.obj_type IN ('function', 'procedure', 'trigger_function') THEN fd.schema_name
+            WHEN fd.obj_type IN ('edbfunc', 'edbproc') THEN fd.next_schema_name
+            ELSE NULL
+        END AS schema_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN {{ show_node_prefs['function'] }}
+            WHEN fd.obj_type = 'procedure' THEN {{ show_node_prefs['procedure'] }}
+            WHEN fd.obj_type = 'trigger_function' THEN {{ show_node_prefs['trigger_function'] }}
+            WHEN fd.obj_type = 'edbfunc' THEN {{ show_node_prefs['edbfunc'] }}
+            WHEN fd.obj_type = 'edbproc' THEN {{ show_node_prefs['edbproc'] }}
+            ELSE NULL
+        END AS show_node, other_info
+    FROM (
+        SELECT
+            CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+            WHEN pr.protype = '0'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbfunc' ELSE 'function' END
+            WHEN pr.protype = '1'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbproc' ELSE 'procedure' END
+            ELSE null
+            END::text::text AS obj_type, pr.proname AS obj_name, pr.oid AS obj_oid, n.oid AS schema_oid, n.nspname AS schema_name, np.oid next_schema_oid, np.nspname next_schema_name,
+            pg_catalog.pg_get_function_identity_arguments(pr.oid) AS other_info
+        FROM pg_proc pr left join pg_namespace n
+        ON pr.pronamespace = n.oid left JOIN pg_namespace np
+        ON np.oid=n.nspparent left JOIN pg_type t
+        ON t.oid = pr.prorettype left JOIN pg_language l
+        ON l.oid = pr.prolang
+        WHERE NOT (t.typname = 'trigger' AND l.lanname = 'edbspl')
+        AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }})
+    ) fd
+    {% if not all_obj %}
+    WHERE fd.obj_type = '{{ obj_type }}'
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where n.nspparent = 0
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/:table.'|| t.oid || ':/'||t.relname||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname||
+            case
+                WHEN t.relkind = 'r' THEN '/:table.'
+                when t.relkind = 'v' then '/:view.'
+                when t.relkind = 'm' then '/:mview.'
+                else 'should not happen'
+            end || t.oid || ':/' || t.relname ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger'] %}
+    select 'trigger'::text::text AS obj_type, tr.tgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname||
+            case
+                WHEN t.relkind = 'r' THEN '/:table.'
+                when t.relkind = 'v' then '/:view.'
+                when t.relkind = 'm' then '/:mview.'
+                else 'should not happen'
+            end || t.oid || ':/' || t.relname || '/:trigger.'|| tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+            {{ show_node_prefs['trigger'] }} AS show_node, NULL AS other_info
+            from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary'::text::text AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser'::text::text AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template'::text::text AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain'::text::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints'::text::text AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper'::text AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server'::text AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping'::text AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table'::text AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension'::text AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation'::text AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['synonym'] %}
+    SELECT 'synonym'::text AS obj_type, s.synname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:synonym.'||s.oid||':/' || s.synname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['synonym'] }} AS show_node, NULL AS other_info
+    FROM pg_synonym s
+    JOIN pg_namespace n ON n.oid=s.synnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['package'] %}
+    SELECT 'package'::text AS obj_type, p.nspname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['package'] }} AS show_node, NULL AS other_info
+    FROM pg_namespace p
+    JOIN pg_namespace n ON n.oid=p.nspparent
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['edbvar'] %}
+    SELECT 'edbvar'::text AS obj_type, v.varname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname || '/:edbvar.'||v.oid||':/' || v.varname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['edbvar'] }} AS show_node, NULL AS other_info
+    FROM edb_variable v JOIN pg_namespace p
+    ON v.varpackage = p.oid JOIN pg_namespace n
+    ON p.nspparent = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('p') }}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/tests/__init__.py b/web/pgadmin/tools/search_objects/tests/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/web/pgadmin/tools/search_objects/tests/test_api_search.py b/web/pgadmin/tools/search_objects/tests/test_api_search.py
new file mode 100644
index 000000000..3952006d2
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/tests/test_api_search.py
@@ -0,0 +1,75 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2020, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
+from __future__ import print_function
+import sys
+import json
+
+from pgadmin.utils.route import BaseTestGenerator
+from regression import parent_node_dict
+from pgadmin.browser.server_groups.servers.databases.tests import utils as \
+    database_utils
+from regression.python_test_utils import test_utils as utils
+
+try:
+    from urllib import urlencode
+except Exception as e:
+    from urllib.parse import urlencode
+
+
+class SearchObjectsApiSearch(BaseTestGenerator):
+    """ This class will test search API of search objects. """
+    scenarios = [
+        ('Search with all types', dict(text='emp', type='all', singles=False)),
+        ('Search with None types', dict(text='emp', type=None, singles=False)),
+        ('Search for all single types',
+         dict(text='emp', type=None, singles=True)),
+    ]
+
+    def runFor(self, text=None, type=None):
+        url_params = dict(
+            text=text
+        )
+        if type is not None:
+            url_params['type'] = type
+
+        url_params = urlencode(url_params)
+        response = self.tester.get(self.base_url + '?' + url_params)
+
+        self.assertEquals(response.status_code, 200)
+
+    def runTest(self):
+        database_info = parent_node_dict["database"][-1]
+        server_id = database_info["server_id"]
+        db_id = database_info["db_id"]
+
+        db_con = database_utils.connect_database(self,
+                                                 utils.SERVER_GROUP,
+                                                 server_id,
+                                                 db_id)
+        if not db_con["info"] == "Database connected.":
+            raise Exception("Could not connect to database to add the schema.")
+
+        self.base_url = '/search_objects/search/' \
+                        + str(server_id) + '/' + str(db_id)
+
+        if not self.singles:
+            self.runFor(text=self.text, type=self.type)
+        else:
+            # test for all the node types individually
+            types_url = '/search_objects/types/' +\
+                        str(server_id) + '/' + str(db_id)
+            response = self.tester.get(types_url)
+            self.assertEquals(response.status_code, 200)
+            types_data = json.loads(response.data.decode('utf-8'))['data']
+
+            for a_type in types_data:
+                print('Running search for type {0}'.format(a_type),
+                      file=sys.stderr)
+                self.runFor(text=self.text, type=a_type)
diff --git a/web/pgadmin/tools/search_objects/tests/test_api_types.py b/web/pgadmin/tools/search_objects/tests/test_api_types.py
new file mode 100644
index 000000000..aed5571ad
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/tests/test_api_types.py
@@ -0,0 +1,47 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2020, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
+import json
+from pgadmin.utils.route import BaseTestGenerator
+from regression import parent_node_dict
+from pgadmin.browser.server_groups.servers.databases.tests import utils as \
+    database_utils
+from regression.python_test_utils import test_utils as utils
+
+
+class SearchObjectsApiTypes(BaseTestGenerator):
+    """ This class will test types API of search objects. """
+    scenarios = [
+        # Fetching default URL for schema node.
+        ('Types API URL', dict(url='/search_objects/types'))
+    ]
+
+    def runTest(self):
+        database_info = parent_node_dict["database"][-1]
+        server_id = database_info["server_id"]
+
+        db_id = database_info["db_id"]
+        db_con = database_utils.connect_database(self,
+                                                 utils.SERVER_GROUP,
+                                                 server_id,
+                                                 db_id)
+        if not db_con["info"] == "Database connected.":
+            raise Exception("Could not connect to database to add the schema.")
+
+        url = self.url + '/' + str(server_id) + '/' + str(db_id)
+        response = self.tester.get(url)
+        self.assertEquals(response.status_code, 200)
+
+        # repsonse data should be dict
+        response_data = json.loads(response.data.decode('utf-8'))['data']
+        self.assertEquals(type(response_data), dict)
+
+        # response data key values should not be None
+        for key, value in response_data.items():
+            self.assertIsNotNone(value, 'Key {0} has value None'.format(key))
diff --git a/web/pgadmin/tools/search_objects/tests/test_search_objects_helper.py b/web/pgadmin/tools/search_objects/tests/test_search_objects_helper.py
new file mode 100644
index 000000000..ec9c369b9
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/tests/test_search_objects_helper.py
@@ -0,0 +1,117 @@
+import sys
+
+from pgadmin.tools.search_objects.utils import SearchObjectsHelper, current_app
+from pgadmin.utils.route import BaseTestGenerator
+
+if sys.version_info < (3, 3):
+    from mock import patch, MagicMock
+else:
+    from unittest.mock import patch, MagicMock
+
+
+class SearchObjectsHelperTest(BaseTestGenerator):
+    scenarios = [
+        ('scenario', dict(
+            node_blueprints=[
+                dict(node_type='table', coll_label='Tables',
+                     backend_supported=True),
+                dict(node_type='view', coll_label='Views',
+                     backend_supported=False),
+                dict(node_type='index', coll_label='Indexes',
+                     backend_supported=True),
+                dict(node_type='role', coll_label='Roles',
+                     backend_supported=True)
+            ],
+            all_node_types=['table', 'view', 'index'],
+            expected_show_node_prefs=dict(table=True, view=False, index=True),
+            expected_supported_types=dict(table='Tables', index='Indexes'),
+            expected_supported_types_skip=dict(table='Tables', view='Views',
+                                               index='Indexes'),
+            execute_dict_return_value=(
+                True, dict(rows=[
+                    dict(obj_name='name1', obj_type='table',
+                         obj_path='some/path', show_node=True,
+                         other_info=None, catalog_level='N'),
+                    dict(obj_name='name2', obj_type='view',
+                         obj_path='some1/path', show_node=True,
+                         other_info=None, catalog_level='D'),
+                    dict(obj_name='name3', obj_type='index',
+                         obj_path='some2/path1', show_node=True,
+                         other_info='oid', catalog_level='O'),
+                ])),
+            expected_search_op=(
+                True, [
+                    dict(name='name1', type='table', type_label='Tables',
+                         path='some/path',
+                         show_node=True, other_info=None, catalog_level='N'),
+                    dict(name='name2', type='view', type_label='Views',
+                         path='some1/path',
+                         show_node=True, other_info=None, catalog_level='D'),
+                    dict(name='name3', type='index', type_label='Indexes',
+                         path='some2/path1',
+                         show_node=True, other_info='oid', catalog_level='O'),
+                ]
+            )
+        ))
+    ]
+
+    def __create_manager(self):
+        connection = MagicMock(
+            execute_dict=MagicMock(),
+            db='somedb'
+        )
+        connection.execute_dict.return_value = self.execute_dict_return_value
+
+        def connection_function(did):
+            return connection
+
+        return MagicMock(
+            connection=connection_function
+        )
+
+    @patch('pgadmin.tools.search_objects.utils.get_node_blueprint')
+    @patch('pgadmin.tools.search_objects.utils.get_driver')
+    def runTest(self, get_driver_mock, get_node_blueprint_mock):
+        manager = self.__create_manager()
+
+        get_driver_mock.return_value = MagicMock(
+            connection_manager=lambda session_id: manager)
+
+        def __get_node_blueprint_mock(node_type):
+            blueprints = self.node_blueprints
+            blueprint = None
+            for data in blueprints:
+                if node_type == data['node_type']:
+                    blueprint = MagicMock(
+                        BackendSupported=MagicMock(
+                            return_value=data['backend_supported']),
+                        collection_label=data['coll_label'],
+                        show_node=data['backend_supported'],
+                    )
+            return blueprint
+
+        get_node_blueprint_mock.side_effect = __get_node_blueprint_mock
+
+        with self.app.app_context():
+
+            so_obj = SearchObjectsHelper(2, 18456,
+                                         node_types=self.all_node_types)
+            so_obj.get_sql = MagicMock(return_value='dummy query')
+
+            # test template path
+            manager.server_type = 'pg'
+            manager.version = 906000
+            self.assertEquals(so_obj.get_template_path(),
+                              'search_objects/sql/pg/#906000#')
+
+            self.assertEquals(so_obj.get_show_node_prefs(),
+                              self.expected_show_node_prefs)
+
+            self.assertEquals(so_obj.get_supported_types(),
+                              self.expected_supported_types)
+
+            self.assertEquals(so_obj.get_supported_types(skip_check=True),
+                              self.expected_supported_types_skip)
+
+            self.assertEquals(so_obj.search('searchtext', 'all'),
+                              self.expected_search_op)
diff --git a/web/pgadmin/tools/search_objects/utils.py b/web/pgadmin/tools/search_objects/utils.py
new file mode 100644
index 000000000..cf858d6e2
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/utils.py
@@ -0,0 +1,131 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2020, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
+from flask import current_app, render_template
+from flask_babelex import gettext
+
+from pgadmin.utils.driver import get_driver
+from config import PG_DEFAULT_DRIVER
+
+
+def get_node_blueprint(node_type):
+    blueprint = None
+    node_type = 'NODE-' + node_type
+    if node_type in current_app.blueprints:
+        blueprint = current_app.blueprints[node_type]
+
+    return blueprint
+
+
+class SearchObjectsHelper:
+    def __init__(self, sid, did, show_system_objects=False, node_types=None):
+        self.sid = sid
+        self.did = did
+        self.show_system_objects = show_system_objects
+        self.manager = get_driver(
+            PG_DEFAULT_DRIVER
+        ).connection_manager(sid)
+
+        self._all_node_types = [
+            'cast', 'fts_dictionary', 'check_constraint',
+            'exclusion_constraint', 'foreign_key',
+            'primary_key', 'unique_constraint', 'constraints', 'trigger',
+            'table', 'compound_trigger', 'rule', 'column', 'partition',
+            'index', 'type', 'domain', 'domain_constraints', 'schema',
+            'synonym', 'sequence', 'edbvar', 'edbfunc', 'edbproc', 'package',
+            'foreign_table', 'fts_parser', 'function', 'procedure',
+            'trigger_function', 'fts_template', 'collation', 'view', 'mview',
+            'fts_configuration', 'extension', 'language',
+            'event_trigger', 'foreign_server', 'user_mapping',
+            'foreign_data_wrapper'
+        ] if node_types is None else node_types
+
+    @property
+    def all_node_types(self):
+        return self._all_node_types
+
+    def get_template_path(self):
+        return 'search_objects/sql/{0}/#{1}#'.format(
+            self.manager.server_type, self.manager.version)
+
+    def get_show_node_prefs(self):
+        return_types = {}
+        for node_type in self.all_node_types:
+            blueprint = get_node_blueprint(node_type)
+            if blueprint is None:
+                continue
+
+            return_types[node_type] = blueprint.show_node
+        return return_types
+
+    def get_supported_types(self, skip_check=False):
+        return_types = {}
+        for node_type in self.all_node_types:
+            blueprint = get_node_blueprint(node_type)
+            if blueprint is None:
+                continue
+
+            if blueprint.BackendSupported(self.manager, is_catalog=False,
+                                          did=self.did) or skip_check:
+                if node_type in ['edbfunc', 'edbproc']:
+                    return_types[node_type] =\
+                        gettext('Package {0}').format(
+                            blueprint.collection_label)
+                else:
+                    return_types[node_type] = blueprint.collection_label
+
+        return return_types
+
+    def get_sql(self, sql_file, **kwargs):
+        return render_template(
+            "/".join([self.get_template_path(), sql_file]),
+            **kwargs
+        )
+
+    def finalize_id_path(self, path, base_path):
+        if base_path is not None:
+            path = '{0}/{1}'.format(base_path, path)
+
+        return path
+
+    def search(self, text, obj_type=None):
+        conn = self.manager.connection(did=self.did)
+        last_system_oid = (self.manager.db_info[self.did])['datlastsysoid'] \
+            if self.manager.db_info is not None and self.did in \
+            self.manager.db_info else 0
+
+        show_node_prefs = self.get_show_node_prefs()
+        node_labels = self.get_supported_types(skip_check=True)
+        # Column catalog_level has values as
+        # N - Not a catalog schema
+        # D - Catalog schema with DB support - pg_catalog
+        # O - Catalog schema with object support only - info schema, dbo, sys
+        status, res = conn.execute_dict(
+            self.get_sql('search.sql', search_text=text, obj_type=obj_type,
+                         show_system_objects=self.show_system_objects,
+                         show_node_prefs=show_node_prefs, _=gettext,
+                         last_system_oid=last_system_oid)
+        )
+
+        if not status:
+            return status, res
+
+        ret_val = [
+            {
+                'name': row['obj_name'],
+                'type': row['obj_type'],
+                'type_label': node_labels[row['obj_type']],
+                'path': row['obj_path'],
+                'show_node': row['show_node'],
+                'other_info': row['other_info'],
+                'catalog_level': row['catalog_level'],
+            }
+            for row in res['rows']
+        ]
+        return True, ret_val
diff --git a/web/pgadmin/tools/sqleditor/static/css/sqleditor.css b/web/pgadmin/tools/sqleditor/static/css/sqleditor.css
index 52b821d8b..f9d15b8da 100644
--- a/web/pgadmin/tools/sqleditor/static/css/sqleditor.css
+++ b/web/pgadmin/tools/sqleditor/static/css/sqleditor.css
@@ -112,7 +112,7 @@ li {
   font-size: 9pt;
 }
 
-.slick-header-column.ui-state-default {
+#datagrid .slick-header-column.ui-state-default {
     height: 32px !important;
 }
 
diff --git a/web/regression/javascript/fake_endpoints.js b/web/regression/javascript/fake_endpoints.js
index fa01b3f89..157a34863 100644
--- a/web/regression/javascript/fake_endpoints.js
+++ b/web/regression/javascript/fake_endpoints.js
@@ -19,5 +19,7 @@ define(function () {
     'datagrid.initialize_query_tool_with_did': '/initialize/query_tool/<int:sgid>/<int:sid>/<int:did>',
     'restore.create_job': '/restore/job/<int:sid>',
     'datagrid.panel': '/panel/<int:trans_id>',
+    'search_objects.types': '/search_objects/types/<int:sid>/<int:did>',
+    'search_objects.search': '/search_objects/search/<int:sid>/<int:did>',
   };
 });
diff --git a/web/regression/javascript/search_objects/search_objects_dialog_spec.js b/web/regression/javascript/search_objects/search_objects_dialog_spec.js
new file mode 100644
index 000000000..039db1970
--- /dev/null
+++ b/web/regression/javascript/search_objects/search_objects_dialog_spec.js
@@ -0,0 +1,155 @@
+/////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2020, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////
+import SearchObjectsDialog from 'tools/search_objects/static/js/search_objects_dialog';
+import {TreeFake} from '../tree/tree_fake';
+import MockAdapter from 'axios-mock-adapter';
+import axios from 'axios/index';
+
+const context = describe;
+
+describe('SearchObjectsDialog', () => {
+  let soDialog;
+  let pgBrowser;
+  let jquerySpy;
+  let alertifySpy;
+
+  beforeEach(() => {
+    pgBrowser = {
+      treeMenu: new TreeFake(),
+      Nodes: {
+        server: {
+          hasId: true,
+          label: 'server',
+          getTreeNodeHierarchy: jasmine.createSpy('server.getTreeNodeHierarchy'),
+        },
+        database: {
+          hasId: true,
+          label: 'database',
+          getTreeNodeHierarchy: jasmine.createSpy('db.getTreeNodeHierarchy'),
+        },
+        schema: {
+          hasId: true,
+          label: 'schema',
+          getTreeNodeHierarchy: jasmine.createSpy('db.getTreeNodeHierarchy'),
+        },
+      },
+      stdW: {
+        sm: 500,
+        md: 700,
+        lg: 900,
+        default: 500,
+      },
+      stdH: {
+        sm: 200,
+        md: 400,
+        lg: 550,
+        default: 550,
+      },
+    };
+    pgBrowser.Nodes.server.hasId = true;
+    pgBrowser.Nodes.database.hasId = true;
+    jquerySpy = jasmine.createSpy('jquerySpy');
+
+    const hierarchy = {
+      children: [
+        {
+          id: 'root',
+          children: [
+            {
+              id: 'serverTreeNode',
+              data: {
+                _id: 10,
+                _type: 'server',
+                user: {name: 'username'},
+                label: 'theserver',
+              },
+              children: [
+                {
+                  id: 'some_database',
+                  data: {
+                    _type: 'database',
+                    _id: 11,
+                    label: 'thedatabase',
+                  },
+                },
+              ],
+            },
+            {
+              id: 'ppasServer',
+              data: {
+                _type: 'server',
+                server_type: 'ppas',
+                children: [
+                  {id: 'someNodeUnderneathPPASServer'},
+                ],
+              },
+            },
+          ],
+        },
+      ],
+    };
+
+    pgBrowser.treeMenu = TreeFake.build(hierarchy);
+  });
+
+  describe('#draw', () => {
+    let networkMock;
+    beforeEach(() => {
+      networkMock = new MockAdapter(axios);
+      alertifySpy = jasmine.createSpyObj('alertify', ['alert', 'dialog']);
+      alertifySpy['search_objects'] = jasmine.createSpy('search_objects');
+      soDialog = new SearchObjectsDialog(
+        pgBrowser,
+        jquerySpy,
+        alertifySpy,
+        null
+      );
+
+      pgBrowser.get_preference = jasmine.createSpy('get_preferences');
+    });
+
+    afterEach(() => {
+      networkMock.restore();
+    });
+
+    context('there are no ancestors of the type database', () => {
+      it('does not create a dialog', () => {
+        pgBrowser.treeMenu.selectNode([{id: 'serverTreeNode'}]);
+        soDialog.draw(null, null, null);
+        expect(alertifySpy['search_objects']).not.toHaveBeenCalled();
+      });
+
+      it('display an alert with a Backup Error', () => {
+        soDialog.draw(null, [{id: 'serverTreeNode'}], null);
+        expect(alertifySpy.alert).toHaveBeenCalledWith(
+          'Search Objects Error',
+          'Please select a database or its child node from the browser.'
+        );
+      });
+    });
+
+    context('there is an ancestor of the type database', () => {
+      let soDialogResizeToSpy;
+      beforeEach(() => {
+        soDialogResizeToSpy = jasmine.createSpyObj('soDialogResizeToSpy', ['resizeTo']);
+        alertifySpy['search_objects'].and
+          .returnValue(soDialogResizeToSpy);
+      });
+
+      it('displays the dialog when database node selected', (done) => {
+        soDialog.draw(null, [{id: 'some_database'}], null, pgBrowser.stdW.md, pgBrowser.stdH.md);
+        setTimeout(() => {
+          expect(alertifySpy['search_objects']).toHaveBeenCalledWith('Search Objects - thedatabase/username@theserver');
+          expect(soDialogResizeToSpy.resizeTo).toHaveBeenCalledWith(pgBrowser.stdW.md, pgBrowser.stdH.md);
+          done();
+        }, 0);
+      });
+    });
+  });
+});
diff --git a/web/regression/javascript/search_objects/search_objects_dialog_wrapper_spec.js b/web/regression/javascript/search_objects/search_objects_dialog_wrapper_spec.js
new file mode 100644
index 000000000..4131e2d3a
--- /dev/null
+++ b/web/regression/javascript/search_objects/search_objects_dialog_wrapper_spec.js
@@ -0,0 +1,526 @@
+/////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2020, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////
+
+import {TreeFake} from '../tree/tree_fake';
+import SearchObjectsDialogWrapper from 'tools/search_objects/static/js/search_objects_dialog_wrapper';
+import axios from 'axios/index';
+import MockAdapter from 'axios-mock-adapter';
+import {TreeNode} from '../../../pgadmin/static/js/tree/tree';
+
+let context = describe;
+
+describe('SearchObjectsDialogWrapper', () => {
+  let jquerySpy;
+  let pgBrowser;
+  let alertifySpy;
+  let dialogModelKlassSpy = null;
+  let backform;
+  let soDialogWrapper;
+  let noDataNode;
+  let serverTreeNode;
+  let databaseTreeNode;
+  let viewSchema;
+  let soJQueryContainerSpy;
+  let soNodeChildNodeSpy;
+  let soNode;
+
+  beforeEach(() => {
+    pgBrowser = {
+      treeMenu: new TreeFake(),
+      Nodes: {
+        server: {
+          hasId: true,
+          getTreeNodeHierarchy: jasmine.createSpy('getTreeNodeHierarchy'),
+        },
+        database: {
+          hasId: true,
+          getTreeNodeHierarchy: jasmine.createSpy('getTreeNodeHierarchy'),
+        },
+        'coll-sometype': {
+          type: 'coll-sometype',
+          hasId: false,
+          label: 'Some types coll',
+        },
+        sometype: {
+          type: 'sometype',
+          hasId: true,
+        },
+        someothertype: {
+          type: 'someothertype',
+          hasId: true,
+          collection_type: 'coll-sometype',
+        },
+        'coll-edbfunc': {
+          type: 'coll-edbfunc',
+          hasId: true,
+          label: 'Functions',
+        },
+        'coll-edbproc': {
+          type: 'coll-edbfunc',
+          hasId: true,
+          label: 'Procedures',
+        },
+        'coll-edbvar': {
+          type: 'coll-edbfunc',
+          hasId: true,
+          label: 'Variables',
+        },
+      },
+      keyboardNavigation: jasmine.createSpyObj('keyboardNavigation', ['getDialogTabNavigator']),
+    };
+    noDataNode = pgBrowser.treeMenu.addNewNode('level1.1', undefined, [{id: 'level1'}]);
+    serverTreeNode = pgBrowser.treeMenu.addNewNode('level2.1', {
+      _type: 'server',
+      _id: 10,
+      label: 'some-tree-label',
+    }, [{id: 'level2.1'}]);
+    databaseTreeNode = new TreeNode('database-tree-node', {
+      _type: 'database',
+      _id: 123,
+      _label: 'some-database-label',
+    }, [{id: 'database-tree-node'}]);
+    pgBrowser.treeMenu.addChild(serverTreeNode, databaseTreeNode);
+
+    jquerySpy = jasmine.createSpy('jquerySpy');
+    soNode = {
+      __internal: {
+        buttons: [{}, {}, {}, {
+          element: {
+            disabled: false,
+          },
+        }],
+      },
+      elements: {
+        body: {
+          childNodes: [
+            {},
+          ],
+        },
+        content: jasmine.createSpyObj('content', ['appendChild', 'attr']),
+      },
+    };
+
+    soJQueryContainerSpy = jasmine.createSpyObj('soJQueryContainer', ['get', 'attr']);
+    soJQueryContainerSpy.get.and.returnValue(soJQueryContainerSpy);
+
+    viewSchema = {};
+    backform = jasmine.createSpyObj('backform', ['generateViewSchema', 'Dialog']);
+    backform.generateViewSchema.and.returnValue(viewSchema);
+
+    soNodeChildNodeSpy = jasmine.createSpyObj('something', ['addClass']);
+    jquerySpy.and.callFake((selector) => {
+      if (selector === '<div class=\'search_objects_dialog\'></div>') {
+        return soJQueryContainerSpy;
+      } else if (selector === soNode.elements.body.childNodes[0]) {
+        return soNodeChildNodeSpy;
+      }
+    });
+    alertifySpy = jasmine.createSpyObj('alertify', ['alert', 'dialog']);
+
+  });
+
+  describe('#prepare', () => {
+    beforeEach(() => {
+      soDialogWrapper = new SearchObjectsDialogWrapper(
+        '<div class=\'search_objects_dialog\'></div>',
+        'soDialogTitle',
+        'search_objects',
+        jquerySpy,
+        pgBrowser,
+        alertifySpy,
+        dialogModelKlassSpy,
+        backform
+      );
+      soDialogWrapper = Object.assign(soDialogWrapper, soNode);
+      spyOn(soDialogWrapper, 'prepareDialog').and.callThrough();
+      spyOn(soDialogWrapper, 'setTypes');
+    });
+
+    context('no tree element is selected', () => {
+      it('does not prepare dialog', () => {
+        spyOn(soDialogWrapper, 'prepareDialog');
+        soDialogWrapper.prepare();
+        expect(soDialogWrapper.prepareDialog).not.toHaveBeenCalled();
+      });
+    });
+
+    context('selected tree node has no data', () => {
+      beforeEach(() => {
+        pgBrowser.treeMenu.selectNode(noDataNode.domNode);
+      });
+
+      it('does not prepare the dialog', () => {
+        spyOn(soDialogWrapper, 'prepareDialog');
+        soDialogWrapper.prepare();
+        expect(soDialogWrapper.prepareDialog).not.toHaveBeenCalled();
+      });
+    });
+
+    context('tree element is selected', () => {
+      let gridDestroySpy;
+      let networkMock;
+
+      beforeEach(() => {
+        pgBrowser.treeMenu.selectNode(databaseTreeNode.domNode);
+        soDialogWrapper.grid = jasmine.createSpyObj('grid', ['destroy']);
+        spyOn(soDialogWrapper, 'showMessage');
+        gridDestroySpy = spyOn(soDialogWrapper.grid, 'destroy');
+
+        networkMock = new MockAdapter(axios);
+
+      });
+
+      afterEach(() => {
+        networkMock.restore();
+      });
+
+      it('creates dialog and displays it', () => {
+        soDialogWrapper.prepare();
+        expect(soDialogWrapper.prepareDialog).toHaveBeenCalled();
+        expect(soDialogWrapper.showMessage).toHaveBeenCalledWith(null);
+      });
+
+
+      it('if grid set then destroy it', () => {
+        soDialogWrapper.prepare();
+        expect(gridDestroySpy).toHaveBeenCalled();
+        expect(soDialogWrapper.grid).toBe(null);
+      });
+
+      it('setTypes called after the ajax success', (done) => {
+        networkMock.onGet('/search_objects/types/10/123').reply(200, {
+          'data': {
+            'type1': 'Type Label 1',
+            'type2': 'Type Label 2',
+          },
+        });
+
+        soDialogWrapper.prepare();
+
+        expect(soDialogWrapper.setTypes.calls.argsFor(0)).toEqual([
+          [{ id: -1, text: 'Loading...', value: null }], false,
+        ]);
+
+        setTimeout(()=>{
+          expect(soDialogWrapper.setTypes.calls.argsFor(1)).toEqual([
+            [{id: 'all', text: 'All types'},
+              {id: 'type1', text: 'Type Label 1'},
+              {id: 'type2', text: 'Type Label 2'}],
+          ]);
+          done();
+        }, 0);
+      });
+
+      it('setTypes called after the ajax fail', (done) => {
+        networkMock.onGet('/search_objects/types/10/123').reply(500);
+
+        soDialogWrapper.prepare();
+
+        expect(soDialogWrapper.setTypes.calls.argsFor(0)).toEqual([
+          [{ id: -1, text: 'Loading...', value: null }], false,
+        ]);
+
+        setTimeout(()=>{
+          expect(soDialogWrapper.setTypes.calls.argsFor(1)).toEqual([
+            [{id: -1, text: 'Failed', value: null }], false,
+          ]);
+          done();
+        }, 0);
+      });
+    });
+  });
+
+  describe('showMessage', () => {
+    beforeEach(() => {
+      soDialogWrapper = new SearchObjectsDialogWrapper(
+        '<div class=\'search_objects_dialog\'></div>',
+        'soDialogTitle',
+        'search_objects',
+        jquerySpy,
+        pgBrowser,
+        alertifySpy,
+        dialogModelKlassSpy,
+        backform
+      );
+      soDialogWrapper.statusBar = document.createElement('div');
+      soDialogWrapper.statusBar.classList.add('d-none');
+      document.body.appendChild(soDialogWrapper.statusBar);
+    });
+
+    afterEach(() => {
+      document.body.removeChild(soDialogWrapper.statusBar);
+    });
+    it('when info message', ()=>{
+      soDialogWrapper.showMessage('locating', false);
+      expect(soDialogWrapper.statusBar.classList.contains('d-none')).toBe(false);
+      expect(soDialogWrapper.statusBar.querySelector('.error-in-footer')).toBe(null);
+      expect(soDialogWrapper.statusBar.querySelector('.info-in-footer')).not.toBe(null);
+      expect(soDialogWrapper.statusBar.querySelector('.alert-text').innerHTML).toEqual('locating');
+    });
+
+    it('when error message', ()=>{
+      soDialogWrapper.showMessage('some error', true);
+      expect(soDialogWrapper.statusBar.classList.contains('d-none')).toBe(false);
+      expect(soDialogWrapper.statusBar.querySelector('.error-in-footer')).not.toBe(null);
+      expect(soDialogWrapper.statusBar.querySelector('.info-in-footer')).toBe(null);
+      expect(soDialogWrapper.statusBar.querySelector('.alert-text').innerHTML).toEqual('some error');
+    });
+
+    it('when no message', ()=>{
+      soDialogWrapper.showMessage(null);
+      expect(soDialogWrapper.statusBar.classList.contains('d-none')).toBe(true);
+    });
+  });
+
+  describe('function', () => {
+    beforeEach(() => {
+      soDialogWrapper = new SearchObjectsDialogWrapper(
+        '<div class=\'search_objects_dialog\'></div>',
+        'soDialogTitle',
+        'search_objects',
+        jquerySpy,
+        pgBrowser,
+        alertifySpy,
+        dialogModelKlassSpy,
+        backform
+      );
+    });
+
+    it('updateDimOfSearchResult', ()=>{
+      soDialogWrapper.searchResultContainer = document.createElement('div');
+      soDialogWrapper.searchResult = document.createElement('div');
+      spyOn(soDialogWrapper.searchResultContainer, 'getBoundingClientRect').and.returnValue({height:100, width: 50});
+
+      soDialogWrapper.updateDimOfSearchResult();
+      expect(soDialogWrapper.searchResult.style.height).toEqual('100px');
+      expect(soDialogWrapper.searchResult.style.width).toEqual('50px');
+    });
+
+    it('setLoading', ()=>{
+      soDialogWrapper.loader = document.createElement('div');
+      soDialogWrapper.loader.innerHTML = `
+        <div class="pg-sp-text"></div>
+      `;
+
+      soDialogWrapper.setLoading('loading');
+      expect(soDialogWrapper.loader.classList.contains('d-none')).toBe(false);
+      expect(soDialogWrapper.loader.querySelector('.pg-sp-text').innerHTML).toEqual('loading');
+
+      soDialogWrapper.setLoading(null);
+      expect(soDialogWrapper.loader.classList.contains('d-none')).toBe(true);
+    });
+
+    it('searchBtnEnabled', ()=>{
+      soDialogWrapper.searchBtn = document.createElement('button');
+
+      soDialogWrapper.searchBtnEnabled(true);
+      expect(soDialogWrapper.searchBtn.disabled).toEqual(false);
+      expect(soDialogWrapper.searchBtnEnabled()).toEqual(true);
+
+      soDialogWrapper.searchBtnEnabled(false);
+      expect(soDialogWrapper.searchBtn.disabled).toEqual(true);
+      expect(soDialogWrapper.searchBtnEnabled()).toEqual(false);
+    });
+
+    it('searchBoxVal', ()=>{
+      soDialogWrapper.searchBox = document.createElement('input');
+      soDialogWrapper.searchBoxVal('abc');
+      expect(soDialogWrapper.searchBox.value).toEqual('abc');
+      expect(soDialogWrapper.searchBoxVal()).toEqual('abc');
+    });
+
+    it('typesVal', ()=>{
+      soDialogWrapper.typesSelect = document.createElement('select');
+      let opt = document.createElement('option');
+      opt.appendChild( document.createTextNode('Some type') );
+      opt.value = 'sometype';
+      soDialogWrapper.typesSelect.appendChild(opt);
+
+      soDialogWrapper.typesVal('sometype');
+      expect(soDialogWrapper.typesSelect.value).toEqual('sometype');
+      expect(soDialogWrapper.typesVal()).toEqual('sometype');
+    });
+
+    it('setGridData', ()=>{
+      soDialogWrapper.grid = jasmine.createSpyObj('grid', ['setData', 'resizeCanvas']);
+      soDialogWrapper.setGridData([{id:'somedata'}]);
+      expect(soDialogWrapper.grid.setData).toHaveBeenCalled();
+      expect(soDialogWrapper.grid.resizeCanvas).toHaveBeenCalled();
+    });
+
+    it('onDialogResize', ()=>{
+      soDialogWrapper.grid = jasmine.createSpyObj('grid', ['autosizeColumns', 'resizeCanvas']);
+      spyOn(soDialogWrapper, 'updateDimOfSearchResult');
+
+      soDialogWrapper.onDialogResize();
+      expect(soDialogWrapper.updateDimOfSearchResult).toHaveBeenCalled();
+      expect(soDialogWrapper.grid.resizeCanvas).toHaveBeenCalled();
+      expect(soDialogWrapper.grid.autosizeColumns).toHaveBeenCalled();
+    });
+
+    it('onDialogShow', (done)=>{
+      spyOn(soDialogWrapper, 'prepareGrid').and.callFake(function() {
+        this.grid = jasmine.createSpyObj('grid', ['init']);
+      });
+
+      spyOn(soDialogWrapper, 'focusOnDialog');
+      spyOn(soDialogWrapper, 'updateDimOfSearchResult');
+      spyOn(soDialogWrapper, 'setGridData');
+      spyOn(soDialogWrapper, 'onDialogResize');
+
+
+      soDialogWrapper.onDialogShow();
+      setTimeout(()=>{
+        expect(soDialogWrapper.prepareGrid).toHaveBeenCalled();
+        expect(soDialogWrapper.focusOnDialog).toHaveBeenCalled();
+        expect(soDialogWrapper.setGridData).toHaveBeenCalledWith([]);
+        expect(soDialogWrapper.onDialogResize).toHaveBeenCalled();
+        done();
+      }, 750);
+    });
+
+    context('getCollNode', ()=>{
+      it('type have same coll node', ()=>{
+        let collNode = soDialogWrapper.getCollNode('sometype');
+        expect(collNode.type).toEqual('coll-sometype');
+      });
+
+      it('type does not same coll node', ()=>{
+        let collNode = soDialogWrapper.getCollNode('someothertype');
+        expect(collNode.type).toEqual('coll-sometype');
+      });
+
+      it('type does not have coll node at all', ()=>{
+        let collNode = soDialogWrapper.getCollNode('database');
+        expect(collNode).toBe(null);
+      });
+    });
+
+    it('finaliseData', ()=>{
+      spyOn(soDialogWrapper, 'translateSearchObjectsPath').and.returnValue(['disp/path', 'id/path']);
+      let data = soDialogWrapper.finaliseData({
+        name: 'objname',
+        type: 'sometype',
+        type_label: 'Some types coll',
+        path: ':some.123:/path',
+        show_node: true,
+      });
+      expect(data).toEqual({
+        icon: 'icon-sometype',
+        name: 'objname',
+        type: 'sometype',
+        type_label: 'Some types coll',
+        path: 'disp/path',
+        id_path: 'id/path',
+        show_node: true,
+      });
+    });
+
+    context('translateSearchObjectsPath', ()=>{
+      let path = null, catalog_level = null;
+      beforeEach(()=>{
+        pgBrowser.Nodes = {
+          'server_group': {
+            type:'server_group',
+            label: 'Server group',
+          },
+          'server': {
+            type:'server',
+            label: 'Server',
+          },
+          'coll-database': {
+            type:'coll-database',
+            label: 'Databases',
+          },
+          'database': {
+            type:'database',
+            label: 'Database',
+          },
+          'coll-schema': {
+            type:'coll-schema',
+            label: 'Schemas',
+          },
+          'schema': {
+            type:'schema',
+            label: 'Schema',
+          },
+          'coll-table': {
+            type:'coll-table',
+            label: 'Tables',
+          },
+          'table': {
+            type:'table',
+            label: 'Table',
+          },
+          'sometype': {
+            type:'sometype',
+            label: 'Some type',
+            collection_type: 'coll-table',
+          },
+          'coll-catalog': {
+            type:'coll-catalog',
+            label: 'Catalogs',
+          },
+          'catalog': {
+            type:'catalog',
+            label: 'Catalog',
+          },
+          'coll-catalog_object': {
+            type:'coll-catalog_object',
+            label: 'Catalog Objects',
+          },
+          'catalog_object': {
+            type:'catalog_object',
+            label: 'catalog object',
+          },
+        };
+
+        soDialogWrapper.treeInfo = {
+          'server_group': {'id': 'server_group/1', '_id': 1},
+          'server': {'id': 'server/3', '_id': 3},
+          'database': {'id': 'database/18456', '_id': 18456},
+        };
+      });
+      it('regular schema', ()=>{
+        path = ':schema.2200:/test_db/:table.2604:/sampletab';
+        catalog_level = 'N';
+
+        let retVal = soDialogWrapper.translateSearchObjectsPath(path, catalog_level);
+        expect(retVal).toEqual([
+          'Schemas/test_db/Tables/sampletab',
+          ['server_group/1','server/3','coll-database/3','database/18456','coll-schema/18456','schema/2200','coll-table/2200','table/2604'],
+        ]);
+      });
+
+      context('catalog schema', ()=>{
+        it('with db support', ()=>{
+          path = ':schema.11:/PostgreSQL Catalog (pg_catalog)/:table.2604:/pg_class';
+          catalog_level = 'D';
+
+          let retVal = soDialogWrapper.translateSearchObjectsPath(path, catalog_level);
+          expect(retVal).toEqual([
+            'Catalogs/PostgreSQL Catalog (pg_catalog)/Tables/pg_class',
+            ['server_group/1','server/3','coll-database/3','database/18456','coll-catalog/18456','catalog/11','coll-table/11','table/2604'],
+          ]);
+        });
+
+        it('with object support only', ()=>{
+          path = ':schema.11:/ANSI (information_schema)/:table.2604:/attributes';
+          catalog_level = 'O';
+
+          let retVal = soDialogWrapper.translateSearchObjectsPath(path, catalog_level);
+          expect(retVal).toEqual([
+            'Catalogs/ANSI (information_schema)/Catalog Objects/attributes',
+            ['server_group/1','server/3','coll-database/3','database/18456','coll-catalog/18456','catalog/11','coll-catalog_object/11','catalog_object/2604'],
+          ]);
+        });
+      });
+    });
+  });
+});
diff --git a/web/regression/javascript/tree/tree_fake.js b/web/regression/javascript/tree/tree_fake.js
index c0c17796a..f476bb272 100644
--- a/web/regression/javascript/tree/tree_fake.js
+++ b/web/regression/javascript/tree/tree_fake.js
@@ -41,6 +41,9 @@ export class TreeFake extends Tree {
     this.aciTreeToOurTreeTranslator = {};
     this.aciTreeApi = jasmine.createSpyObj(
       'ACITreeApi', ['setInode', 'unload', 'deselect', 'select']);
+    this.aciTreeApi.unload.and.callFake(function(domNode, config) {
+      config.success();
+    });
   }
 
   addNewNode(id, data, domNode, path) {
diff --git a/web/regression/javascript/tree/tree_spec.js b/web/regression/javascript/tree/tree_spec.js
index bb607796c..038fcc24c 100644
--- a/web/regression/javascript/tree/tree_spec.js
+++ b/web/regression/javascript/tree/tree_spec.js
@@ -246,39 +246,70 @@ describe('tree tests', () => {
 
         tree.aciTreeApi = jasmine.createSpyObj(
           'ACITreeApi', ['setInode', 'unload', 'deselect', 'select']);
+        tree.aciTreeApi.unload.and.callFake((domNode, config) => {
+          config.success();
+        });
       });
 
-      it('reloads the node and its children', () => {
-        level2.reload(tree);
-        expect(tree.findNodeByDomElement([{id: 'level2'}])).toEqual(level2);
+      it('reloads the node and its children', (done) => {
+        level2.reload(tree)
+          .then(()=>{
+            expect(tree.findNodeByDomElement([{id: 'level2'}])).toEqual(level2);
+            done();
+          })
+          .catch((error)=>{
+            fail(error);
+          });
       });
 
-      it('does not reload the children of node', () => {
-        level2.reload(tree);
-        expect(tree.findNodeByDomElement([{id: 'level3'}])).toBeNull();
+      it('does not reload the children of node', (done) => {
+        level2.reload(tree)
+          .then(()=>{
+            expect(tree.findNodeByDomElement([{id: 'level3'}])).toBeNull();
+            done();
+          })
+          .catch((error)=>{
+            fail(error);
+          });
       });
 
       it('select the node', (done) => {
-        level2.reload(tree);
-        setTimeout(() => {
-          expect(tree.selected()).toEqual([{id: 'level2'}]);
-          done();
-        }, 20);
+        level2.reload(tree)
+          .then(()=>{
+            setTimeout(() => {
+              expect(tree.selected()).toEqual([{id: 'level2'}]);
+              done();
+            }, 20);
+          })
+          .catch((error)=>{
+            fail(error);
+          });
       });
 
       describe('ACITree specific', () => {
-        it('sets the current node as a Inode, changing the Icon back to +', () => {
-          level2.reload(tree);
-          expect(tree.aciTreeApi.setInode).toHaveBeenCalledWith([{id: 'level2'}]);
+        it('sets the current node as a Inode, changing the Icon back to +', (done) => {
+          level2.reload(tree)
+            .then(()=>{
+              expect(tree.aciTreeApi.setInode).toHaveBeenCalledWith([{id: 'level2'}]);
+              done();
+            })
+            .catch((error)=>{
+              fail(error);
+            });
         });
 
         it('deselect the node and selects it again to trigger ACI tree' +
           ' events', (done) => {
-          level2.reload(tree);
-          setTimeout(() => {
-            expect(tree.aciTreeApi.deselect).toHaveBeenCalledWith([{id: 'level2'}]);
-            done();
-          }, 20);
+          level2.reload(tree)
+            .then(()=>{
+              setTimeout(() => {
+                expect(tree.aciTreeApi.deselect).toHaveBeenCalledWith([{id: 'level2'}]);
+                done();
+              }, 20);
+            })
+            .catch((error)=>{
+              fail(error);
+            });
         });
       });
     });
@@ -292,17 +323,32 @@ describe('tree tests', () => {
         level2 = tree.addNewNode('level2', {data: 'data'}, ['<li>level2</li>'], ['level1']);
         tree.addNewNode('level3', {data: 'more data'}, ['<li>level3</li>'], ['level1', 'level2']);
         tree.aciTreeApi = jasmine.createSpyObj('ACITreeApi', ['unload']);
+        tree.aciTreeApi.unload.and.callFake((domNode, config) => {
+          config.success();
+        });
       });
 
-      it('unloads the children of the current node', () => {
-        level2.unload(tree);
-        expect(tree.findNodeByDomElement([{id: 'level2'}])).toEqual(level2);
-        expect(tree.findNodeByDomElement([{id: 'level3'}])).toBeNull();
+      it('unloads the children of the current node', (done) => {
+        level2.unload(tree)
+          .then(()=>{
+            expect(tree.findNodeByDomElement([{id: 'level2'}])).toEqual(level2);
+            expect(tree.findNodeByDomElement([{id: 'level3'}])).toBeNull();
+            done();
+          })
+          .catch((error)=>{
+            fail(error);
+          });
       });
 
-      it('calls unload on the ACI Tree', () => {
-        level2.unload(tree);
-        expect(tree.aciTreeApi.unload).toHaveBeenCalledWith(['<li>level2</li>']);
+      it('calls unload on the ACI Tree', (done) => {
+        level2.unload(tree)
+          .then(()=>{
+            expect(tree.aciTreeApi.unload).toHaveBeenCalledWith(['<li>level2</li>'], jasmine.any(Object));
+            done();
+          })
+          .catch((error)=>{
+            fail(error);
+          });
       });
     });
   });
diff --git a/web/webpack.config.js b/web/webpack.config.js
index 9fd0a32e9..29811388a 100644
--- a/web/webpack.config.js
+++ b/web/webpack.config.js
@@ -494,7 +494,8 @@ module.exports = [{
         ',pgadmin.tools.debugger.controller' +
         ',pgadmin.tools.debugger.direct' +
         ',pgadmin.node.pga_job' +
-        ',pgadmin.tools.schema_diff',
+        ',pgadmin.tools.schema_diff' +
+        ',pgadmin.tools.search_objects',
       },
     }, {
       test: require.resolve('snapsvg'),
diff --git a/web/webpack.shim.js b/web/webpack.shim.js
index a5c73805a..0587d0498 100644
--- a/web/webpack.shim.js
+++ b/web/webpack.shim.js
@@ -281,6 +281,8 @@ var webpackShimConfig = {
     'pgadmin.tools.restore': path.join(__dirname, './pgadmin/tools/restore/static/js/restore'),
     'pgadmin.tools.schema_diff': path.join(__dirname, './pgadmin/tools/schema_diff/static/js/schema_diff'),
     'pgadmin.tools.schema_diff_ui': path.join(__dirname, './pgadmin/tools/schema_diff/static/js/schema_diff_ui'),
+    'pgadmin.tools.search_objects': path.join(__dirname, './pgadmin/tools/search_objects/static/js/search_objects'),
+    'pgadmin.search_objects': path.join(__dirname, './pgadmin/tools/search_objects/static/js'),
     'pgadmin.tools.user_management': path.join(__dirname, './pgadmin/tools/user_management/static/js/user_management'),
     'pgadmin.user_management.current_user': '/user_management/current_user',
     'slick.pgadmin.editors': path.join(__dirname, './pgadmin/tools/../static/js/slickgrid/editors'),
diff --git a/web/webpack.test.config.js b/web/webpack.test.config.js
index 70db29125..cfa8dda02 100644
--- a/web/webpack.test.config.js
+++ b/web/webpack.test.config.js
@@ -105,6 +105,7 @@ module.exports = {
       'pgadmin.browser.preferences': path.join(__dirname, './pgadmin/browser/static/js/preferences'),
       'pgadmin.browser.activity': path.join(__dirname, './pgadmin/browser/static/js/activity'),
       'bundled_codemirror': path.join(__dirname, './pgadmin/static/bundle/codemirror'),
+      'tools': path.join(__dirname, './pgadmin/tools/'),
     },
   },
 };


^ permalink  raw  reply  [nested|flat] 12+ messages in thread

* Re: [pgAdmin][RM2172] Search Objects Functionality
@ 2020-04-01 12:28  Akshay Joshi <[email protected]>
  parent: Aditya Toshniwal <[email protected]>
  1 sibling, 0 replies; 12+ messages in thread

From: Akshay Joshi @ 2020-04-01 12:28 UTC (permalink / raw)
  To: Aditya Toshniwal <[email protected]>; +Cc: pgadmin-hackers

Hi Khsuboo,

Can you please review it.

On Mon, Mar 30, 2020 at 2:39 PM Aditya Toshniwal <
[email protected]> wrote:

> Hi Hackers,
>
> Attached is the patch to implement search objects functionality in pgadmin.
> The feature will allow a user to search for any object in a database.
> Highlights of the feature:
> 1) Search any object with user input text with at least 3 characters.
> 2) Search can be done on a specific object type by selecting from the
> types dropdown.
> 3) The search results grid will show object name, object type and the
> object path on the browser tree. On double clicking the record, it will
> locate that object on the browser tree. The columns object name and type
> are sortable.
> 4) The object nodes which are disabled (hidden) using preferences will not
> be visible in the types dropdown. However, in the case of all types, the
> search records will be visible for those types greyed out.
> 5) You can also access search objects dialog using the button on the
> browser toolbar.
>
> Python and JS test cases added. Docs updated.
> Please review.
>
> --
> Thanks and Regards,
> Aditya Toshniwal
> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
> "Don't Complain about Heat, Plant a TREE"
>


-- 
*Thanks & Regards*
*Akshay Joshi*

*Sr. Software Architect*
*EnterpriseDB Software India Private Limited*
*Mobile: +91 976-788-8246*


^ permalink  raw  reply  [nested|flat] 12+ messages in thread

* Re: [pgAdmin][RM2172] Search Objects Functionality
@ 2020-04-01 12:30  Akshay Joshi <[email protected]>
  parent: Aditya Toshniwal <[email protected]>
  1 sibling, 1 reply; 12+ messages in thread

From: Akshay Joshi @ 2020-04-01 12:30 UTC (permalink / raw)
  To: Khushboo Vashi <[email protected]>; +Cc: pgadmin-hackers; Aditya Toshniwal <[email protected]>

Hi Khushboo,

Can you please review it.

On Mon, Mar 30, 2020 at 2:39 PM Aditya Toshniwal <
[email protected]> wrote:

> Hi Hackers,
>
> Attached is the patch to implement search objects functionality in pgadmin.
> The feature will allow a user to search for any object in a database.
> Highlights of the feature:
> 1) Search any object with user input text with at least 3 characters.
> 2) Search can be done on a specific object type by selecting from the
> types dropdown.
> 3) The search results grid will show object name, object type and the
> object path on the browser tree. On double clicking the record, it will
> locate that object on the browser tree. The columns object name and type
> are sortable.
> 4) The object nodes which are disabled (hidden) using preferences will not
> be visible in the types dropdown. However, in the case of all types, the
> search records will be visible for those types greyed out.
> 5) You can also access search objects dialog using the button on the
> browser toolbar.
>
> Python and JS test cases added. Docs updated.
> Please review.
>
> --
> Thanks and Regards,
> Aditya Toshniwal
> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
> "Don't Complain about Heat, Plant a TREE"
>


-- 
*Thanks & Regards*
*Akshay Joshi*

*Sr. Software Architect*
*EnterpriseDB Software India Private Limited*
*Mobile: +91 976-788-8246*


^ permalink  raw  reply  [nested|flat] 12+ messages in thread

* Re: [pgAdmin][RM2172] Search Objects Functionality
@ 2020-04-02 04:01  Khushboo Vashi <[email protected]>
  parent: Akshay Joshi <[email protected]>
  0 siblings, 1 reply; 12+ messages in thread

From: Khushboo Vashi @ 2020-04-02 04:01 UTC (permalink / raw)
  To: Akshay Joshi <[email protected]>; +Cc: pgadmin-hackers; Aditya Toshniwal <[email protected]>

On Wed, Apr 1, 2020 at 6:00 PM Akshay Joshi <[email protected]>
wrote:

> Hi Khushboo,
>
> Can you please review it.
>
I am on it.

>
> On Mon, Mar 30, 2020 at 2:39 PM Aditya Toshniwal <
> [email protected]> wrote:
>
>> Hi Hackers,
>>
>> Attached is the patch to implement search objects functionality in
>> pgadmin.
>> The feature will allow a user to search for any object in a database.
>> Highlights of the feature:
>> 1) Search any object with user input text with at least 3 characters.
>> 2) Search can be done on a specific object type by selecting from the
>> types dropdown.
>> 3) The search results grid will show object name, object type and the
>> object path on the browser tree. On double clicking the record, it will
>> locate that object on the browser tree. The columns object name and type
>> are sortable.
>> 4) The object nodes which are disabled (hidden) using preferences will
>> not be visible in the types dropdown. However, in the case of all types,
>> the search records will be visible for those types greyed out.
>> 5) You can also access search objects dialog using the button on the
>> browser toolbar.
>>
>> Python and JS test cases added. Docs updated.
>> Please review.
>>
>> --
>> Thanks and Regards,
>> Aditya Toshniwal
>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>> "Don't Complain about Heat, Plant a TREE"
>>
>
>
> --
> *Thanks & Regards*
> *Akshay Joshi*
>
> *Sr. Software Architect*
> *EnterpriseDB Software India Private Limited*
> *Mobile: +91 976-788-8246*
>


^ permalink  raw  reply  [nested|flat] 12+ messages in thread

* Re: [pgAdmin][RM2172] Search Objects Functionality
@ 2020-04-02 10:39  Khushboo Vashi <[email protected]>
  parent: Khushboo Vashi <[email protected]>
  0 siblings, 1 reply; 12+ messages in thread

From: Khushboo Vashi @ 2020-04-02 10:39 UTC (permalink / raw)
  To: Akshay Joshi <[email protected]>; +Cc: pgadmin-hackers; Aditya Toshniwal <[email protected]>

Hi Aditya,

Review comments:

*UI:*

1. When no object is found, the default message should be given, currently
no message displayed.
2. Can we have a tooltip on the row "Double click to locate the object in
the browser" ?
3. Full stop is missing in the message column objects are disabled in the
browser. You can enable them in the preferences dialog ( :D )
and also, we should start the statement with the capital letter.
4. If possible, use the multilevel partition table symbol same as the
browser tree.
5. gettext is missing from the search grid header.
6. Suggestion: The search button should be at the end (after type
combobox).  The current position of the controls suggest that search for
the objects and then filter it out but that's not the case.
After changing the type, we have to click on the search button.
In the current positioning, we should fetch all the records from the
backend and then filter those out depending on the type at the client side
only, so that will reduce the server requests and slickgrid is efficient it
do so.

*Backend:*

1. We do have the list of blueprint, so we can use that list instead of
taking the hard coe list in the init method of SearchObjectsHelper class.
2. While searching the object, we create an object of SearchObjectsHelper
on each request. We can create it once while initializing and utilize it on
every search.

Note: The functionality is working fine.

Thanks,
Khushboo





On Thu, Apr 2, 2020 at 9:31 AM Khushboo Vashi <
[email protected]> wrote:

>
>
> On Wed, Apr 1, 2020 at 6:00 PM Akshay Joshi <[email protected]>
> wrote:
>
>> Hi Khushboo,
>>
>> Can you please review it.
>>
> I am on it.
>
>>
>> On Mon, Mar 30, 2020 at 2:39 PM Aditya Toshniwal <
>> [email protected]> wrote:
>>
>>> Hi Hackers,
>>>
>>> Attached is the patch to implement search objects functionality in
>>> pgadmin.
>>> The feature will allow a user to search for any object in a database.
>>> Highlights of the feature:
>>> 1) Search any object with user input text with at least 3 characters.
>>> 2) Search can be done on a specific object type by selecting from the
>>> types dropdown.
>>> 3) The search results grid will show object name, object type and the
>>> object path on the browser tree. On double clicking the record, it will
>>> locate that object on the browser tree. The columns object name and type
>>> are sortable.
>>> 4) The object nodes which are disabled (hidden) using preferences will
>>> not be visible in the types dropdown. However, in the case of all types,
>>> the search records will be visible for those types greyed out.
>>> 5) You can also access search objects dialog using the button on the
>>> browser toolbar.
>>>
>>> Python and JS test cases added. Docs updated.
>>> Please review.
>>>
>>> --
>>> Thanks and Regards,
>>> Aditya Toshniwal
>>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>>> "Don't Complain about Heat, Plant a TREE"
>>>
>>
>>
>> --
>> *Thanks & Regards*
>> *Akshay Joshi*
>>
>> *Sr. Software Architect*
>> *EnterpriseDB Software India Private Limited*
>> *Mobile: +91 976-788-8246*
>>
>


^ permalink  raw  reply  [nested|flat] 12+ messages in thread

* Re: [pgAdmin][RM2172] Search Objects Functionality
@ 2020-04-02 10:59  Aditya Toshniwal <[email protected]>
  parent: Khushboo Vashi <[email protected]>
  0 siblings, 1 reply; 12+ messages in thread

From: Aditya Toshniwal @ 2020-04-02 10:59 UTC (permalink / raw)
  To: Khushboo Vashi <[email protected]>; +Cc: Akshay Joshi <[email protected]>; pgadmin-hackers

Hi Khushboo,

Thank you for reviewing.


On Thu, Apr 2, 2020 at 4:09 PM Khushboo Vashi <
[email protected]> wrote:

> Hi Aditya,
>
> Review comments:
>
> *UI:*
>
> 1. When no object is found, the default message should be given, currently
> no message displayed.
> 2. Can we have a tooltip on the row "Double click to locate the object in
> the browser" ?
> 3. Full stop is missing in the message column objects are disabled in the
> browser. You can enable them in the preferences dialog ( :D )
> and also, we should start the statement with the capital letter.
> 4. If possible, use the multilevel partition table symbol same as the
> browser tree.
> 5. gettext is missing from the search grid header.
>
I'll fix all above.

> 6. Suggestion: The search button should be at the end (after type
> combobox).  The current position of the controls suggest that search for
> the objects and then filter it out but that's not the case.
>
I've actually kept the most frequently used controls together. The
probability of using the types filter is less and a user would generally go
for full search. This is how even we generally do. We search first and then
apply filter if required

> After changing the type, we have to click on the search button.
> In the current positioning, we should fetch all the records from the
> backend and then filter those out depending on the type at the client side
> only, so that will reduce the server requests and slickgrid is efficient it
> do so.
>
I'll look into this. My only concern is the data may be outdated, but I
agree to filter in slickgrid on type change. The user can hit search again
if required.


> *Backend:*
>
> 1. We do have the list of blueprint, so we can use that list instead of
> taking the hard coe list in the init method of SearchObjectsHelper class.
>
The reason is, we do not support all objects for search objects. Only
objects under a database are supported. The probability of node type change
is very less.

> 2. While searching the object, we create an object of SearchObjectsHelper
> on each request. We can create it once while initializing and utilize it on
> every search.
>
The intention is to keep SearchObjectsHelper stateless. The object is
created based on the request data and it is easier to maintain
independently.

>
> Note: The functionality is working fine.
>
Great. Thanks.

>
> Thanks,
> Khushboo
>
>
>
>
>
> On Thu, Apr 2, 2020 at 9:31 AM Khushboo Vashi <
> [email protected]> wrote:
>
>>
>>
>> On Wed, Apr 1, 2020 at 6:00 PM Akshay Joshi <
>> [email protected]> wrote:
>>
>>> Hi Khushboo,
>>>
>>> Can you please review it.
>>>
>> I am on it.
>>
>>>
>>> On Mon, Mar 30, 2020 at 2:39 PM Aditya Toshniwal <
>>> [email protected]> wrote:
>>>
>>>> Hi Hackers,
>>>>
>>>> Attached is the patch to implement search objects functionality in
>>>> pgadmin.
>>>> The feature will allow a user to search for any object in a database.
>>>> Highlights of the feature:
>>>> 1) Search any object with user input text with at least 3 characters.
>>>> 2) Search can be done on a specific object type by selecting from the
>>>> types dropdown.
>>>> 3) The search results grid will show object name, object type and the
>>>> object path on the browser tree. On double clicking the record, it will
>>>> locate that object on the browser tree. The columns object name and type
>>>> are sortable.
>>>> 4) The object nodes which are disabled (hidden) using preferences will
>>>> not be visible in the types dropdown. However, in the case of all types,
>>>> the search records will be visible for those types greyed out.
>>>> 5) You can also access search objects dialog using the button on the
>>>> browser toolbar.
>>>>
>>>> Python and JS test cases added. Docs updated.
>>>> Please review.
>>>>
>>>> --
>>>> Thanks and Regards,
>>>> Aditya Toshniwal
>>>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>>>> "Don't Complain about Heat, Plant a TREE"
>>>>
>>>
>>>
>>> --
>>> *Thanks & Regards*
>>> *Akshay Joshi*
>>>
>>> *Sr. Software Architect*
>>> *EnterpriseDB Software India Private Limited*
>>> *Mobile: +91 976-788-8246*
>>>
>>

-- 
Thanks and Regards,
Aditya Toshniwal
pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
"Don't Complain about Heat, Plant a TREE"


^ permalink  raw  reply  [nested|flat] 12+ messages in thread

* Re: [pgAdmin][RM2172] Search Objects Functionality
@ 2020-04-02 11:19  Khushboo Vashi <[email protected]>
  parent: Aditya Toshniwal <[email protected]>
  0 siblings, 1 reply; 12+ messages in thread

From: Khushboo Vashi @ 2020-04-02 11:19 UTC (permalink / raw)
  To: Aditya Toshniwal <[email protected]>; +Cc: Akshay Joshi <[email protected]>; pgadmin-hackers

On Thu, Apr 2, 2020 at 4:30 PM Aditya Toshniwal <
[email protected]> wrote:

> Hi Khushboo,
>
> Thank you for reviewing.
>
>
> On Thu, Apr 2, 2020 at 4:09 PM Khushboo Vashi <
> [email protected]> wrote:
>
>> Hi Aditya,
>>
>> Review comments:
>>
>> *UI:*
>>
>> 1. When no object is found, the default message should be given,
>> currently no message displayed.
>> 2. Can we have a tooltip on the row "Double click to locate the object in
>> the browser" ?
>> 3. Full stop is missing in the message column objects are disabled in
>> the browser. You can enable them in the preferences dialog ( :D )
>> and also, we should start the statement with the capital letter.
>> 4. If possible, use the multilevel partition table symbol same as the
>> browser tree.
>> 5. gettext is missing from the search grid header.
>>
> I'll fix all above.
>
>> 6. Suggestion: The search button should be at the end (after type
>> combobox).  The current position of the controls suggest that search for
>> the objects and then filter it out but that's not the case.
>>
> I've actually kept the most frequently used controls together. The
> probability of using the types filter is less and a user would generally go
> for full search. This is how even we generally do. We search first and then
> apply filter if required
>
Right, so type based search on slickgrid data would be useful.

> After changing the type, we have to click on the search button.
>> In the current positioning, we should fetch all the records from the
>> backend and then filter those out depending on the type at the client side
>> only, so that will reduce the server requests and slickgrid is efficient it
>> do so.
>>
> I'll look into this. My only concern is the data may be outdated, but I
> agree to filter in slickgrid on type change. The user can hit search again
> if required.
>
>
>> *Backend:*
>>
>> 1. We do have the list of blueprint, so we can use that list instead of
>> taking the hard coe list in the init method of SearchObjectsHelper class.
>>
> The reason is, we do not support all objects for search objects. Only
> objects under a database are supported. The probability of node type change
> is very less.
>
True but we can maintain the skip list (which would be less) and we do have
bluprint start with NODE, so it will be easier to fetch.

> 2. While searching the object, we create an object of SearchObjectsHelper
>> on each request. We can create it once while initializing and utilize it on
>> every search.
>>
> The intention is to keep SearchObjectsHelper stateless. The object is
> created based on the request data and it is easier to maintain
> independently.
>
>>
>> Note: The functionality is working fine.
>>
> Great. Thanks.
>
>>
>> Thanks,
>> Khushboo
>>
>>
>>
>>
>>
>> On Thu, Apr 2, 2020 at 9:31 AM Khushboo Vashi <
>> [email protected]> wrote:
>>
>>>
>>>
>>> On Wed, Apr 1, 2020 at 6:00 PM Akshay Joshi <
>>> [email protected]> wrote:
>>>
>>>> Hi Khushboo,
>>>>
>>>> Can you please review it.
>>>>
>>> I am on it.
>>>
>>>>
>>>> On Mon, Mar 30, 2020 at 2:39 PM Aditya Toshniwal <
>>>> [email protected]> wrote:
>>>>
>>>>> Hi Hackers,
>>>>>
>>>>> Attached is the patch to implement search objects functionality in
>>>>> pgadmin.
>>>>> The feature will allow a user to search for any object in a database.
>>>>> Highlights of the feature:
>>>>> 1) Search any object with user input text with at least 3 characters.
>>>>> 2) Search can be done on a specific object type by selecting from the
>>>>> types dropdown.
>>>>> 3) The search results grid will show object name, object type and the
>>>>> object path on the browser tree. On double clicking the record, it will
>>>>> locate that object on the browser tree. The columns object name and type
>>>>> are sortable.
>>>>> 4) The object nodes which are disabled (hidden) using preferences will
>>>>> not be visible in the types dropdown. However, in the case of all types,
>>>>> the search records will be visible for those types greyed out.
>>>>> 5) You can also access search objects dialog using the button on the
>>>>> browser toolbar.
>>>>>
>>>>> Python and JS test cases added. Docs updated.
>>>>> Please review.
>>>>>
>>>>> --
>>>>> Thanks and Regards,
>>>>> Aditya Toshniwal
>>>>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>
>>>>
>>>>
>>>> --
>>>> *Thanks & Regards*
>>>> *Akshay Joshi*
>>>>
>>>> *Sr. Software Architect*
>>>> *EnterpriseDB Software India Private Limited*
>>>> *Mobile: +91 976-788-8246*
>>>>
>>>
>
> --
> Thanks and Regards,
> Aditya Toshniwal
> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
> "Don't Complain about Heat, Plant a TREE"
>


^ permalink  raw  reply  [nested|flat] 12+ messages in thread

* Re: [pgAdmin][RM2172] Search Objects Functionality
@ 2020-04-02 12:24  Aditya Toshniwal <[email protected]>
  parent: Khushboo Vashi <[email protected]>
  0 siblings, 1 reply; 12+ messages in thread

From: Aditya Toshniwal @ 2020-04-02 12:24 UTC (permalink / raw)
  To: Khushboo Vashi <[email protected]>; +Cc: Akshay Joshi <[email protected]>; pgadmin-hackers

Hi Khushboo,

On Thu, Apr 2, 2020 at 4:49 PM Khushboo Vashi <
[email protected]> wrote:

>
>
> On Thu, Apr 2, 2020 at 4:30 PM Aditya Toshniwal <
> [email protected]> wrote:
>
>> Hi Khushboo,
>>
>> Thank you for reviewing.
>>
>>
>> On Thu, Apr 2, 2020 at 4:09 PM Khushboo Vashi <
>> [email protected]> wrote:
>>
>>> Hi Aditya,
>>>
>>> Review comments:
>>>
>>> *UI:*
>>>
>>> 1. When no object is found, the default message should be given,
>>> currently no message displayed.
>>> 2. Can we have a tooltip on the row "Double click to locate the object
>>> in the browser" ?
>>> 3. Full stop is missing in the message column objects are disabled in
>>> the browser. You can enable them in the preferences dialog ( :D )
>>> and also, we should start the statement with the capital letter.
>>> 4. If possible, use the multilevel partition table symbol same as the
>>> browser tree.
>>> 5. gettext is missing from the search grid header.
>>>
>> I'll fix all above.
>>
>>> 6. Suggestion: The search button should be at the end (after type
>>> combobox).  The current position of the controls suggest that search for
>>> the objects and then filter it out but that's not the case.
>>>
>> I've actually kept the most frequently used controls together. The
>> probability of using the types filter is less and a user would generally go
>> for full search. This is how even we generally do. We search first and then
>> apply filter if required
>>
> Right, so type based search on slickgrid data would be useful.
>
👍

> After changing the type, we have to click on the search button.
>>> In the current positioning, we should fetch all the records from the
>>> backend and then filter those out depending on the type at the client side
>>> only, so that will reduce the server requests and slickgrid is efficient it
>>> do so.
>>>
>> I'll look into this. My only concern is the data may be outdated, but I
>> agree to filter in slickgrid on type change. The user can hit search again
>> if required.
>>
>
>>> *Backend:*
>>>
>>> 1. We do have the list of blueprint, so we can use that list instead of
>>> taking the hard coe list in the init method of SearchObjectsHelper
>>> class.
>>>
>> The reason is, we do not support all objects for search objects. Only
>> objects under a database are supported. The probability of node type change
>> is very less.
>>
> True but we can maintain the skip list (which would be less) and we do
> have bluprint start with NODE, so it will be easier to fetch.
>
I would prefer the "in" list rather than "skip" list. Each time a new node
is added to pgAdmin, we will have to update the skip list in search
objects. With the "in" list, search objects has better control.

> 2. While searching the object, we create an object of SearchObjectsHelper
>>> on each request. We can create it once while initializing and utilize it on
>>> every search.
>>>
>> The intention is to keep SearchObjectsHelper stateless. The object is
>> created based on the request data and it is easier to maintain
>> independently.
>>
>>>
>>> Note: The functionality is working fine.
>>>
>> Great. Thanks.
>>
>>>
>>> Thanks,
>>> Khushboo
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Apr 2, 2020 at 9:31 AM Khushboo Vashi <
>>> [email protected]> wrote:
>>>
>>>>
>>>>
>>>> On Wed, Apr 1, 2020 at 6:00 PM Akshay Joshi <
>>>> [email protected]> wrote:
>>>>
>>>>> Hi Khushboo,
>>>>>
>>>>> Can you please review it.
>>>>>
>>>> I am on it.
>>>>
>>>>>
>>>>> On Mon, Mar 30, 2020 at 2:39 PM Aditya Toshniwal <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi Hackers,
>>>>>>
>>>>>> Attached is the patch to implement search objects functionality in
>>>>>> pgadmin.
>>>>>> The feature will allow a user to search for any object in a database.
>>>>>> Highlights of the feature:
>>>>>> 1) Search any object with user input text with at least 3 characters.
>>>>>> 2) Search can be done on a specific object type by selecting from the
>>>>>> types dropdown.
>>>>>> 3) The search results grid will show object name, object type and the
>>>>>> object path on the browser tree. On double clicking the record, it will
>>>>>> locate that object on the browser tree. The columns object name and type
>>>>>> are sortable.
>>>>>> 4) The object nodes which are disabled (hidden) using preferences
>>>>>> will not be visible in the types dropdown. However, in the case of all
>>>>>> types, the search records will be visible for those types greyed out.
>>>>>> 5) You can also access search objects dialog using the button on the
>>>>>> browser toolbar.
>>>>>>
>>>>>> Python and JS test cases added. Docs updated.
>>>>>> Please review.
>>>>>>
>>>>>> --
>>>>>> Thanks and Regards,
>>>>>> Aditya Toshniwal
>>>>>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Thanks & Regards*
>>>>> *Akshay Joshi*
>>>>>
>>>>> *Sr. Software Architect*
>>>>> *EnterpriseDB Software India Private Limited*
>>>>> *Mobile: +91 976-788-8246*
>>>>>
>>>>
>>
>> --
>> Thanks and Regards,
>> Aditya Toshniwal
>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>> "Don't Complain about Heat, Plant a TREE"
>>
>

-- 
Thanks and Regards,
Aditya Toshniwal
pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
"Don't Complain about Heat, Plant a TREE"


^ permalink  raw  reply  [nested|flat] 12+ messages in thread

* Re: [pgAdmin][RM2172] Search Objects Functionality
@ 2020-04-03 09:13  Aditya Toshniwal <[email protected]>
  parent: Aditya Toshniwal <[email protected]>
  0 siblings, 1 reply; 12+ messages in thread

From: Aditya Toshniwal @ 2020-04-03 09:13 UTC (permalink / raw)
  To: pgadmin-hackers; +Cc: Akshay Joshi <[email protected]>; Khushboo Vashi <[email protected]>

Hi Hackers,

Attached is the updated patch.
With this,
1) I've displayed the rows count detail at the bottom of the dialog. This
will help in both cases, when there are rows and when there are none.
2) As discussed, a user can now apply object types dropdown filter on
already loaded data.
3) I've not made changes for the multilevel partition icon because it would
be too much to do for an icon. We're already showing the type name in the
grid. Adding extra SQL joins and making the query slower for the icon is
not desirable.
4) Fixed some gettext issues as mentioned in the review.

Please review.


On Thu, Apr 2, 2020 at 5:54 PM Aditya Toshniwal <
[email protected]> wrote:

> Hi Khushboo,
>
> On Thu, Apr 2, 2020 at 4:49 PM Khushboo Vashi <
> [email protected]> wrote:
>
>>
>>
>> On Thu, Apr 2, 2020 at 4:30 PM Aditya Toshniwal <
>> [email protected]> wrote:
>>
>>> Hi Khushboo,
>>>
>>> Thank you for reviewing.
>>>
>>>
>>> On Thu, Apr 2, 2020 at 4:09 PM Khushboo Vashi <
>>> [email protected]> wrote:
>>>
>>>> Hi Aditya,
>>>>
>>>> Review comments:
>>>>
>>>> *UI:*
>>>>
>>>> 1. When no object is found, the default message should be given,
>>>> currently no message displayed.
>>>> 2. Can we have a tooltip on the row "Double click to locate the object
>>>> in the browser" ?
>>>> 3. Full stop is missing in the message column objects are disabled in
>>>> the browser. You can enable them in the preferences dialog ( :D )
>>>> and also, we should start the statement with the capital letter.
>>>> 4. If possible, use the multilevel partition table symbol same as the
>>>> browser tree.
>>>> 5. gettext is missing from the search grid header.
>>>>
>>> I'll fix all above.
>>>
>>>> 6. Suggestion: The search button should be at the end (after type
>>>> combobox).  The current position of the controls suggest that search for
>>>> the objects and then filter it out but that's not the case.
>>>>
>>> I've actually kept the most frequently used controls together. The
>>> probability of using the types filter is less and a user would generally go
>>> for full search. This is how even we generally do. We search first and then
>>> apply filter if required
>>>
>> Right, so type based search on slickgrid data would be useful.
>>
> 👍
>
>> After changing the type, we have to click on the search button.
>>>> In the current positioning, we should fetch all the records from the
>>>> backend and then filter those out depending on the type at the client side
>>>> only, so that will reduce the server requests and slickgrid is efficient it
>>>> do so.
>>>>
>>> I'll look into this. My only concern is the data may be outdated, but I
>>> agree to filter in slickgrid on type change. The user can hit search again
>>> if required.
>>>
>>
>>>> *Backend:*
>>>>
>>>> 1. We do have the list of blueprint, so we can use that list instead of
>>>> taking the hard coe list in the init method of SearchObjectsHelper
>>>> class.
>>>>
>>> The reason is, we do not support all objects for search objects. Only
>>> objects under a database are supported. The probability of node type change
>>> is very less.
>>>
>> True but we can maintain the skip list (which would be less) and we do
>> have bluprint start with NODE, so it will be easier to fetch.
>>
> I would prefer the "in" list rather than "skip" list. Each time a new node
> is added to pgAdmin, we will have to update the skip list in search
> objects. With the "in" list, search objects has better control.
>
>> 2. While searching the object, we create an object of SearchObjectsHelper
>>>> on each request. We can create it once while initializing and utilize it on
>>>> every search.
>>>>
>>> The intention is to keep SearchObjectsHelper stateless. The object is
>>> created based on the request data and it is easier to maintain
>>> independently.
>>>
>>>>
>>>> Note: The functionality is working fine.
>>>>
>>> Great. Thanks.
>>>
>>>>
>>>> Thanks,
>>>> Khushboo
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Apr 2, 2020 at 9:31 AM Khushboo Vashi <
>>>> [email protected]> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Wed, Apr 1, 2020 at 6:00 PM Akshay Joshi <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi Khushboo,
>>>>>>
>>>>>> Can you please review it.
>>>>>>
>>>>> I am on it.
>>>>>
>>>>>>
>>>>>> On Mon, Mar 30, 2020 at 2:39 PM Aditya Toshniwal <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi Hackers,
>>>>>>>
>>>>>>> Attached is the patch to implement search objects functionality in
>>>>>>> pgadmin.
>>>>>>> The feature will allow a user to search for any object in a database.
>>>>>>> Highlights of the feature:
>>>>>>> 1) Search any object with user input text with at least 3 characters.
>>>>>>> 2) Search can be done on a specific object type by selecting from
>>>>>>> the types dropdown.
>>>>>>> 3) The search results grid will show object name, object type and
>>>>>>> the object path on the browser tree. On double clicking the record, it will
>>>>>>> locate that object on the browser tree. The columns object name and type
>>>>>>> are sortable.
>>>>>>> 4) The object nodes which are disabled (hidden) using preferences
>>>>>>> will not be visible in the types dropdown. However, in the case of all
>>>>>>> types, the search records will be visible for those types greyed out.
>>>>>>> 5) You can also access search objects dialog using the button on the
>>>>>>> browser toolbar.
>>>>>>>
>>>>>>> Python and JS test cases added. Docs updated.
>>>>>>> Please review.
>>>>>>>
>>>>>>> --
>>>>>>> Thanks and Regards,
>>>>>>> Aditya Toshniwal
>>>>>>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *Thanks & Regards*
>>>>>> *Akshay Joshi*
>>>>>>
>>>>>> *Sr. Software Architect*
>>>>>> *EnterpriseDB Software India Private Limited*
>>>>>> *Mobile: +91 976-788-8246*
>>>>>>
>>>>>
>>>
>>> --
>>> Thanks and Regards,
>>> Aditya Toshniwal
>>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>>> "Don't Complain about Heat, Plant a TREE"
>>>
>>
>
> --
> Thanks and Regards,
> Aditya Toshniwal
> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
> "Don't Complain about Heat, Plant a TREE"
>


-- 
Thanks and Regards,
Aditya Toshniwal
pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
"Don't Complain about Heat, Plant a TREE"


Attachments:

  [application/octet-stream] RM2172_v2.patch (596.6K, 3-RM2172_v2.patch)
  download | inline diff:
diff --git a/docs/en_US/getting_started.rst b/docs/en_US/getting_started.rst
index 5b09c5b4c..2595505d2 100644
--- a/docs/en_US/getting_started.rst
+++ b/docs/en_US/getting_started.rst
@@ -64,6 +64,8 @@ display.  To open the *Preferences* dialog, select *Preferences* from the *File*
 for the dialog.  You can access additional Postgres help by navigating through
 the *Help* menu, and selecting the name of the resource that you wish to open.
 
+You can search for objects in the database using the :ref:`Search objects <search_objects>`
+
 .. toctree::
    :maxdepth: 2
 
@@ -74,6 +76,7 @@ the *Help* menu, and selecting the name of the resource that you wish to open.
    tree_control
    preferences
    keyboard_shortcuts
+   search_objects
 
 Before using pgAdmin to manage objects that reside on a server, you must define a
 connection to the server; for more information please see *Connecting to a Server*
diff --git a/docs/en_US/images/search_objects.png b/docs/en_US/images/search_objects.png
new file mode 100644
index 0000000000000000000000000000000000000000..950e813168a89fbd114a1852a2fc7d180f81df82
GIT binary patch
literal 188209
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

literal 0
HcmV?d00001

diff --git a/docs/en_US/images/toolbar.png b/docs/en_US/images/toolbar.png
index 19c4c574a905fb30ea1828b4825e85af7cdb0c0e..aac16b967b93b44576bf2a042b989aa296251648 100644
GIT binary patch
literal 42931
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%0D-NlnK%<oL#WUV3Obj&<*1=JUG#xkE)
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
K<4QTJ@c#j4GvEOL

literal 38057
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

diff --git a/docs/en_US/search_objects.rst b/docs/en_US/search_objects.rst
new file mode 100644
index 000000000..885e1d756
--- /dev/null
+++ b/docs/en_US/search_objects.rst
@@ -0,0 +1,34 @@
+.. _search_objects:
+
+***********************
+`Search objects`:index:
+***********************
+
+.. image:: images/search_objects.png
+    :alt: Search objects dialog
+    :align: center
+
+With this dialog, you can search for almost any kind of objects in a
+database.
+
+You can access it by right clicking a database or any of its child nodes
+and select "Search objects". You can also access it by hitting the
+shortcut (default ALT+SHIFT+S).
+
+The minimum pattern length are 3 characters. The search performed is
+non-casesensitive and will find all objets whose name contains the pattern.
+You can only search for object names.
+
+The result is presented in the grid with object name, object type and
+the object tree path in the :ref:`browser <tree_control>`. You can double
+click on a result row to select the object in the
+:ref:`browser <tree_control>`. If the object is greyed out, this means that you
+have not enabled those object types in the :ref:`preferences <preferences>`,
+so you can't double click on it.
+
+You can filter based on a particular object type by selecting one from the
+object type dropdown. If the search button is hit when one of the object type
+is selected then only those types will be fetch from the database.
+An object type will not be visible in the dropdown if the database server
+does not support it or if it is not enabled from the 
+:ref:`preferences <preferences>`.
\ No newline at end of file
diff --git a/docs/en_US/toolbar.rst b/docs/en_US/toolbar.rst
index 12dc8621a..f4c685f24 100644
--- a/docs/en_US/toolbar.rst
+++ b/docs/en_US/toolbar.rst
@@ -18,4 +18,6 @@ the selected browser node.
 * Use the :ref:`View Data <editgrid>` button to view/edit the data stored in a
   selected table.
 * Use the :ref:`Filtered Rows <viewdata_filter>` button to access the Data Filter popup
-  to apply a filter to a set of data for viewing/editing.
\ No newline at end of file
+  to apply a filter to a set of data for viewing/editing.
+* Use the :ref:`Search objects <search_objects>` button to access the search objects
+  dialog. It helps you search any database object.
\ No newline at end of file
diff --git a/web/pgadmin/browser/register_browser_preferences.py b/web/pgadmin/browser/register_browser_preferences.py
index 09f472795..5f57f9fa1 100644
--- a/web/pgadmin/browser/register_browser_preferences.py
+++ b/web/pgadmin/browser/register_browser_preferences.py
@@ -249,6 +249,21 @@ def register_browser_preferences(self):
         fields=fields
     )
 
+    self.preference.register(
+        'keyboard_shortcuts',
+        'sub_menu_search_objects',
+        gettext('Search objects'),
+        'keyboardshortcut',
+        {
+            'alt': True,
+            'shift': True,
+            'control': False,
+            'key': {'key_code': 83, 'char': 's'}
+        },
+        category_label=gettext('Keyboard shortcuts'),
+        fields=fields
+    )
+
     self.preference.register(
         'keyboard_shortcuts',
         'sub_menu_create',
diff --git a/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.js b/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.js
index 7724ef4c4..b2127c4b0 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.js
@@ -24,7 +24,7 @@ define('pgadmin.node.extension', [
     pgAdmin.Browser.Nodes['coll-extension'] =
       pgAdmin.Browser.Collection.extend({
         node: 'extension',
-        label: gettext('Extension'),
+        label: gettext('Extensions'),
         type: 'coll-extension',
         columns: ['name', 'owner', 'comment'],
       });
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/packages/ppas/12_plus/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/packages/ppas/12_plus/nodes.sql
new file mode 100644
index 000000000..8b11b594a
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/packages/ppas/12_plus/nodes.sql
@@ -0,0 +1,11 @@
+SELECT
+    nsp.oid, nspname AS name
+FROM
+    pg_namespace nsp
+WHERE nspparent = {{scid}}::oid
+{% if pkgid %}
+AND nsp.oid = {{pkgid}}::oid
+{% endif %}
+AND nspobjecttype = 0
+AND nspcompoundtrigger = false
+ORDER BY nspname;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py
index 2984a58e4..4b0a0918c 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py
@@ -54,8 +54,8 @@ class IndexConstraintModule(ConstraintTypeModule):
         initialized.
     """
 
-    NODE_TYPE = 'Index constraint'
-    COLLECTION_LABEL = _('index_constraint')
+    NODE_TYPE = 'index_constraint'
+    COLLECTION_LABEL = _('Index constraint')
 
     def __init__(self, *args, **kwargs):
         """
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py
index e455b8adf..9ffbe742c 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py
@@ -29,8 +29,11 @@ from pgadmin.tools.schema_diff.compare import SchemaDiffObjectCompare
 
 
 def backend_supported(module, manager, **kwargs):
-    if 'tid' in kwargs and CollectionNodeModule.BackendSupported(
-            module, manager, **kwargs):
+
+    if CollectionNodeModule.BackendSupported(module, manager, **kwargs):
+        if 'tid' not in kwargs:
+            return True
+
         conn = manager.connection(did=kwargs['did'])
 
         template_path = 'partitions/sql/{0}/#{0}#{1}#'.format(
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/tests/test_backend_supported.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/tests/test_backend_supported.py
index bf92e5f01..1de4de825 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/tests/test_backend_supported.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/tests/test_backend_supported.py
@@ -21,19 +21,19 @@ else:
 
 class TestBackendSupport(BaseTestGenerator):
     scenarios = [
-        ('when tid is not present in arguments, should return None and no '
-         'query should be done',
+        ('when tid is not present in arguments, but server version'
+         'is supported then return True',
          dict(
              manager=dict(
-                 server_type="",
-                 version=""
+                 server_type="pg",
+                 version="100000"
              ),
              input_arguments=dict(did=432),
 
              collection_node_active=True,
              connection_execution_return_value=[],
 
-             expected_return_value=None,
+             expected_return_value=True,
              expect_error_response=False,
              expected_number_calls_on_render_template=0
          )),
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/pg/macros/catalogs.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/pg/macros/catalogs.sql
index 5f9bf9532..f1645d070 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/pg/macros/catalogs.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/pg/macros/catalogs.sql
@@ -9,6 +9,9 @@
         (SELECT 1 FROM pg_class WHERE relname = 'tables' AND
             relnamespace = {{ tbl }}.oid LIMIT 1))
 {%- endmacro %}
+{% macro IS_CATALOG_SCHEMA(schema_col_name) -%}
+    {{ schema_col_name }} IN ('pg_catalog', 'pgagent', 'information_schema')
+{%- endmacro %}
 {% macro LABELS(tbl, _) -%}
     CASE {{ tbl }}.nspname
     WHEN 'pg_catalog' THEN '{{ _( 'PostgreSQL Catalog' ) }} (pg_catalog)'
@@ -17,9 +20,24 @@
     ELSE {{ tbl }}.nspname
     END AS name
 {%- endmacro %}
+{% macro LABELS_SCHEMACOL(schema_col_name, _) -%}
+    CASE {{ schema_col_name }}
+    WHEN 'pg_catalog' THEN '{{ _( 'PostgreSQL Catalog' ) }} (pg_catalog)'
+    WHEN 'pgagent' THEN '{{ _( 'pgAgent Job Scheduler' ) }} (pgagent)'
+    WHEN 'information_schema' THEN '{{ _( 'ANSI' ) }} (information_schema)'
+    ELSE {{ schema_col_name }}
+    END
+{%- endmacro %}
 {% macro DB_SUPPORT(tbl) -%}
     CASE
     WHEN {{ tbl }}.nspname = ANY('{information_schema}')
         THEN false
     ELSE true END
 {%- endmacro %}
+{% macro DB_SUPPORT_SCHEMACOL(schema_col_name) -%}
+    CASE
+    WHEN {{ schema_col_name }} = ANY('{information_schema}')
+        THEN false
+    ELSE true END
+{%- endmacro %}
+
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/ppas/macros/catalogs.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/ppas/macros/catalogs.sql
index 37fb594ed..b9fc276ef 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/ppas/macros/catalogs.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/ppas/macros/catalogs.sql
@@ -13,6 +13,9 @@
        (SELECT 1 FROM pg_proc
         WHERE pronamespace = {{ tbl }}.oid and proname = 'run_job' LIMIT 1))
 {%- endmacro %}
+{% macro IS_CATALOG_SCHEMA(schema_col_name) -%}
+    {{ schema_col_name }} IN ('pg_catalog', 'pgagent', 'information_schema', 'dbo', 'sys', 'dbms_job_procedure')
+{%- endmacro %}
 {% macro LABELS(tbl, _) -%}
     CASE {{ tbl }}.nspname
     WHEN 'pg_catalog' THEN '{{ _( 'PostgreSQL Catalog' ) }} (pg_catalog)'
@@ -23,9 +26,25 @@
     ELSE {{ tbl }}.nspname
     END AS name
 {%- endmacro %}
-{% macro DB_SUPPORT(tbl) -%}
+{% macro LABELS_SCHEMACOL(schema_col_name, _) -%}
+    CASE {{ schema_col_name }}
+    WHEN 'pg_catalog' THEN '{{ _( 'PostgreSQL Catalog' ) }} (pg_catalog)'
+    WHEN 'pgagent' THEN '{{ _( 'pgAgent Job Scheduler' ) }} (pgagent)'
+    WHEN 'information_schema' THEN '{{ _( 'ANSI' ) }} (information_schema)'
+    WHEN 'dbo' THEN 'Redmond (dbo)'
+    WHEN 'sys' THEN 'Redwood (sys)'
+    ELSE {{ schema_col_name }}
+    END
+{%- endmacro %}
+{% macro DB_SUPPORT(tbl, schema_col_name) -%}
     CASE
     WHEN {{ tbl }}.nspname = ANY('{information_schema,sys,dbo}')
         THEN false
     ELSE true END
 {%- endmacro %}
+{% macro DB_SUPPORT_SCHEMACOL(schema_col_name) -%}
+    CASE
+    WHEN {{ schema_col_name }} = ANY('{information_schema,sys,dbo}')
+        THEN false
+    ELSE true END
+{%- endmacro %}
diff --git a/web/pgadmin/browser/server_groups/servers/roles/static/js/role.js b/web/pgadmin/browser/server_groups/servers/roles/static/js/role.js
index 47500caf7..c7bb247ec 100644
--- a/web/pgadmin/browser/server_groups/servers/roles/static/js/role.js
+++ b/web/pgadmin/browser/server_groups/servers/roles/static/js/role.js
@@ -18,6 +18,7 @@ define('pgadmin.node.role', [
     pgAdmin.Browser.Nodes['coll-role'] =
       pgAdmin.Browser.Collection.extend({
         node: 'role',
+        label: gettext('Login/Group Roles'),
         type: 'coll-role',
         columns: [
           'rolname', 'rolvaliduntil', 'rolconnlimit', 'rolcanlogin',
diff --git a/web/pgadmin/browser/static/js/collection.js b/web/pgadmin/browser/static/js/collection.js
index 2ec4fe1b5..a3c9ad96e 100644
--- a/web/pgadmin/browser/static/js/collection.js
+++ b/web/pgadmin/browser/static/js/collection.js
@@ -51,14 +51,23 @@ define([
         }]);
 
         // show query tool only in context menu of supported nodes.
-        if (pgAdmin.DataGrid && pgAdmin.unsupported_nodes) {
-          if (_.indexOf(pgAdmin.unsupported_nodes, this.type) == -1) {
+
+        if (pgAdmin.unsupported_nodes && _.indexOf(pgAdmin.unsupported_nodes, this.type) == -1) {
+          if ((this.type == 'database' && this.allowConn) || this.type != 'database') {
             pgAdmin.Browser.add_menus([{
-              name: 'show_query_tool', node: this.type, module: this,
+              name: 'show_query_tool', node: this.type, module: pgAdmin.DataGrid,
               applies: ['context'], callback: 'show_query_tool',
               priority: 998, label: gettext('Query Tool...'),
               icon: 'pg-font-icon icon-query-tool',
             }]);
+
+            // show search objects same as query tool
+            pgAdmin.Browser.add_menus([{
+              name: 'search_objects', node: this.type, module: pgAdmin.SearchObjects,
+              applies: ['context'], callback: 'show_search_objects',
+              priority: 997, label: gettext('Search Objects...'),
+              icon: 'fa fa-search',
+            }]);
           }
         }
       },
diff --git a/web/pgadmin/browser/static/js/keyboard.js b/web/pgadmin/browser/static/js/keyboard.js
index 5cd00e6a3..8705e14be 100644
--- a/web/pgadmin/browser/static/js/keyboard.js
+++ b/web/pgadmin/browser/static/js/keyboard.js
@@ -34,6 +34,7 @@ _.extend(pgBrowser.keyboardNavigation, {
         'tabbed_panel_forward': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'tabbed_panel_forward').value),
         'sub_menu_query_tool': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_query_tool').value),
         'sub_menu_view_data': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_view_data').value),
+        'sub_menu_search_objects': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_search_objects').value),
         'sub_menu_properties': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_properties').value),
         'sub_menu_create': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_create').value),
         'sub_menu_delete': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_delete').value),
@@ -55,6 +56,7 @@ _.extend(pgBrowser.keyboardNavigation, {
         'bindLeftTree': {'shortcuts': this.keyboardShortcut.left_tree_shortcut}, // Main menu,
         'bindSubMenuQueryTool': {'shortcuts': this.keyboardShortcut.sub_menu_query_tool}, // Sub menu - Open Query Tool,
         'bindSubMenuViewData': {'shortcuts': this.keyboardShortcut.sub_menu_view_data}, // Sub menu - Open View Data,
+        'bindSubMenuSearchObjects': {'shortcuts': this.keyboardShortcut.sub_menu_search_objects}, // Sub menu - Open search objects,
         'bindSubMenuProperties': {'shortcuts': this.keyboardShortcut.sub_menu_properties}, // Sub menu - Edit Properties,
         'bindSubMenuCreate': {'shortcuts': this.keyboardShortcut.sub_menu_create}, // Sub menu - Create Object,
         'bindSubMenuDelete': {'shortcuts': this.keyboardShortcut.sub_menu_delete}, // Sub menu - Delete object,
@@ -261,6 +263,15 @@ _.extend(pgBrowser.keyboardNavigation, {
     // Call data grid method to render view data
     pgAdmin.DataGrid.show_data_grid({'mnuid': 1}, tree.i);
   },
+  bindSubMenuSearchObjects: function() {
+    const tree = this.getTreeDetails();
+
+    if (!tree.d)
+      return;
+
+    // Call data grid method to render view data
+    pgAdmin.SearchObjects.show_search_objects('', tree.i);
+  },
   bindSubMenuProperties: function() {
     const tree = this.getTreeDetails();
 
diff --git a/web/pgadmin/browser/static/js/node.js b/web/pgadmin/browser/static/js/node.js
index 029a29817..9ee0b4bf5 100644
--- a/web/pgadmin/browser/static/js/node.js
+++ b/web/pgadmin/browser/static/js/node.js
@@ -177,6 +177,14 @@ define('pgadmin.browser.node', [
 
       // Show query tool only in context menu of supported nodes.
       if (_.indexOf(pgAdmin.unsupported_nodes, self.type) == -1) {
+        let enable = function(itemData) {
+          if (itemData._type == 'database' && itemData.allowConn)
+            return true;
+          else if (itemData._type != 'database')
+            return true;
+          else
+            return false;
+        };
         pgAdmin.Browser.add_menus([{
           name: 'show_query_tool',
           node: self.type,
@@ -186,14 +194,15 @@ define('pgadmin.browser.node', [
           priority: 998,
           label: gettext('Query Tool...'),
           icon: 'pg-font-icon icon-query-tool',
-          enable: function(itemData) {
-            if (itemData._type == 'database' && itemData.allowConn)
-              return true;
-            else if (itemData._type != 'database')
-              return true;
-            else
-              return false;
-          },
+          enable: enable,
+        }]);
+
+        // show search objects same as query tool
+        pgAdmin.Browser.add_menus([{
+          name: 'search_objects', node: self.type, module: pgAdmin.SearchObjects,
+          applies: ['context'], callback: 'show_search_objects',
+          priority: 997, label: gettext('Search Objects...'),
+          icon: 'fa fa-search', enable: enable,
         }]);
       }
 
diff --git a/web/pgadmin/browser/static/js/toolbar.js b/web/pgadmin/browser/static/js/toolbar.js
index 955fe6f32..6eb1f39f4 100644
--- a/web/pgadmin/browser/static/js/toolbar.js
+++ b/web/pgadmin/browser/static/js/toolbar.js
@@ -46,6 +46,16 @@ let _defaultToolBarButtons = [
     parentClass: 'pg-toolbar-btn btn-secondary',
     enabled: false,
   },
+  {
+    label: gettext('Search objects'),
+    ariaLabel: gettext('Search objects'),
+    btnClass: 'fa fa-search',
+    text: '',
+    toggled: false,
+    toggleClass: '',
+    parentClass: 'pg-toolbar-btn btn-secondary',
+    enabled: false,
+  },
 ];
 
 // Place holder for non default tool bar buttons.
@@ -92,6 +102,8 @@ export function initializeToolbar(panel, wcDocker) {
       pgAdmin.DataGrid.show_data_grid({mnuid: 3}, pgAdmin.Browser.tree.selected());
     else if ('name' in data && data.name === gettext('Filtered Rows'))
       pgAdmin.DataGrid.show_filtered_row({mnuid: 4}, pgAdmin.Browser.tree.selected());
+    else if ('name' in data && data.name === gettext('Search objects'))
+      pgAdmin.SearchObjects.show_search_objects('', pgAdmin.Browser.tree.selected());
   });
 }
 
diff --git a/web/pgadmin/browser/templates/browser/index.html b/web/pgadmin/browser/templates/browser/index.html
index 682c23d65..67a10ba89 100644
--- a/web/pgadmin/browser/templates/browser/index.html
+++ b/web/pgadmin/browser/templates/browser/index.html
@@ -11,7 +11,7 @@
 {% block init_script %}
 try {
 require(
-['sources/generated/app.bundle', 'sources/generated/codemirror', 'sources/generated/browser_nodes'],
+['sources/generated/app.bundle', 'sources/generated/codemirror', 'sources/generated/browser_nodes', 'sources/generated/slickgrid'],
 function() {
 },
 function() {
diff --git a/web/pgadmin/static/bundle/slickgrid.js b/web/pgadmin/static/bundle/slickgrid.js
index 4b0ab410b..96ad3c330 100644
--- a/web/pgadmin/static/bundle/slickgrid.js
+++ b/web/pgadmin/static/bundle/slickgrid.js
@@ -8,7 +8,6 @@
 //////////////////////////////////////////////////////////////
 
 import 'slickgrid/lib/jquery.event.drag-2.3.0';
-import 'slickgrid/lib/jquery-ui-1.11.3';
 import 'slickgrid/slick.core';
 import 'slickgrid/slick.grid';
 import 'slickgrid/slick.dataview';
@@ -21,5 +20,6 @@ import 'slickgrid/plugins/slick.cellrangeselector';
 import 'slickgrid/plugins/slick.checkboxselectcolumn';
 import 'slickgrid/plugins/slick.rowselectionmodel';
 import 'sources/slickgrid/custom_header_buttons';
+import 'sources/slickgrid/plugins/slick.autocolumnsize';
 
 export default window.Slick;
diff --git a/web/pgadmin/static/css/style.css b/web/pgadmin/static/css/style.css
index 6c0f84460..55e477ee1 100644
--- a/web/pgadmin/static/css/style.css
+++ b/web/pgadmin/static/css/style.css
@@ -5,19 +5,18 @@
 @import '~tempusdominus-bootstrap-4/build/css/tempusdominus-bootstrap-4.css';
 @import '~bootstrap4-toggle/css/bootstrap4-toggle.css';
 @import '~backgrid-filter/backgrid-filter.css';
-@import '~slickgrid/css/select2.css';
 @import '~jquery-contextmenu/dist/jquery.contextMenu.css';
 @import '~webcabin-docker/Build/wcDocker.css';
 @import '~acitree/css/aciTree.css';
 @import '~spectrum-colorpicker/spectrum.css';
 @import '~leaflet/dist/leaflet.css';
+@import '../../../node_modules/select2/dist/css/select2.css';
 
 @import '~codemirror/lib/codemirror.css';
 @import '~codemirror/addon/dialog/dialog.css';
 @import '~codemirror/addon/scroll/simplescrollbars.css';
 
 @import '~slickgrid/slick.grid.css';
-@import '~slickgrid/slick-default-theme.css';
 @import '~slickgrid/css/smoothness/jquery-ui-1.11.3.custom.css';
 
 @import '../vendor/backgrid/backgrid.css';
diff --git a/web/pgadmin/static/js/alertify.pgadmin.defaults.js b/web/pgadmin/static/js/alertify.pgadmin.defaults.js
index 84dfc12fe..daa60f696 100644
--- a/web/pgadmin/static/js/alertify.pgadmin.defaults.js
+++ b/web/pgadmin/static/js/alertify.pgadmin.defaults.js
@@ -271,7 +271,8 @@ define([
           let container = $(self.elements.footer);
           commonUtils.findAndSetFocus(container.find('button:not([disabled]):last'));
         }
-      });    });
+      });
+    });
     this.set('onresize', alertifyDialogStartResizing.bind(this, true));
     this.set('onresized', alertifyDialogResized.bind(this, true));
     this.set('onmaximized', alertifyDialogResized);
diff --git a/web/pgadmin/static/js/alertify/dialog.js b/web/pgadmin/static/js/alertify/dialog.js
index 6f4933720..8e5bdb738 100644
--- a/web/pgadmin/static/js/alertify/dialog.js
+++ b/web/pgadmin/static/js/alertify/dialog.js
@@ -80,6 +80,39 @@ export class Dialog {
     return serverInformation;
   }
 
+  retrieveAncestorOfTypeDatabase(item) {
+    let databaseInfo = null;
+    let aciTreeItem = item || this.pgBrowser.treeMenu.selected();
+    let treeNode = this.pgBrowser.treeMenu.findNodeByDomElement(aciTreeItem);
+
+    if (treeNode) {
+      if(treeNode.getData()._type === 'database') {
+        databaseInfo = treeNode.getData();
+      } else {
+        let nodeData = null;
+        treeNode.ancestorNode(
+          (node) => {
+            nodeData = node.getData();
+            if(nodeData._type === 'database') {
+              databaseInfo = nodeData;
+              return true;
+            }
+            return false;
+          }
+        );
+      }
+    }
+
+    if (databaseInfo === null) {
+      this.alertify.alert(
+        gettext(this.errorAlertTitle),
+        gettext('Please select a database or its child node from the browser.')
+      );
+    }
+
+    return databaseInfo;
+  }
+
   hasBinariesConfiguration(serverInformation) {
     const module = 'paths';
     let preference_name = 'pg_bin_dir';
diff --git a/web/pgadmin/static/js/alertify/dialog_factory.js b/web/pgadmin/static/js/alertify/dialog_factory.js
index cb0ae1552..760fde679 100644
--- a/web/pgadmin/static/js/alertify/dialog_factory.js
+++ b/web/pgadmin/static/js/alertify/dialog_factory.js
@@ -9,6 +9,7 @@
 
 import * as BackupDialog from '../../../tools/backup/static/js/backup_dialog_wrapper';
 import {RestoreDialogWrapper} from '../../../tools/restore/static/js/restore_dialog_wrapper';
+import SearchObjectsDialogWrapper from '../../../tools/search_objects/static/js/search_objects_dialog_wrapper';
 
 export class DialogFactory {
   constructor(pgBrowser, $,
@@ -25,6 +26,8 @@ export class DialogFactory {
   create(dialogTitle, typeOfDialog) {
     if (typeOfDialog === 'restore') {
       return this.createRestoreDialog(dialogTitle, typeOfDialog);
+    } else if (typeOfDialog === 'search_objects') {
+      return this.createSearchObjectsDialog(dialogTitle, typeOfDialog);
     } else {
       return this.createBackupDialog(dialogTitle, typeOfDialog);
     }
@@ -49,4 +52,14 @@ export class DialogFactory {
       this.dialogModel,
       this.backform);
   }
+
+  createSearchObjectsDialog(dialogTitle, typeOfDialog) {
+    return new SearchObjectsDialogWrapper(
+      this.dialogContainerSelector, dialogTitle, typeOfDialog,
+      this.jquery,
+      this.pgBrowser,
+      this.alertify,
+      this.dialogModel,
+      this.backform);
+  }
 }
diff --git a/web/pgadmin/static/js/alertify/dialog_wrapper.js b/web/pgadmin/static/js/alertify/dialog_wrapper.js
index e4c275f3a..32d9a7a0b 100644
--- a/web/pgadmin/static/js/alertify/dialog_wrapper.js
+++ b/web/pgadmin/static/js/alertify/dialog_wrapper.js
@@ -58,7 +58,11 @@ export class DialogWrapper {
     let backform_tab = $(alertifyDialog.elements.body).find('.backform-tab');
     backform_tab.attr('tabindex', -1);
     this.pgBrowser.keyboardNavigation.getDialogTabNavigator($(alertifyDialog.elements.dialog));
-    const container = backform_tab.find('.tab-content:first > .tab-pane.active:first');
+    let container = backform_tab.find('.tab-content:first > .tab-pane.active:first');
+
+    if(container.length === 0 && alertifyDialog.elements.content.innerHTML) {
+      container = $(alertifyDialog.elements.content);
+    }
     commonUtils.findAndSetFocus(container);
   }
 
diff --git a/web/pgadmin/static/js/slickgrid/plugins/slick.autocolumnsize.js b/web/pgadmin/static/js/slickgrid/plugins/slick.autocolumnsize.js
index 40e537e1b..85b339139 100644
--- a/web/pgadmin/static/js/slickgrid/plugins/slick.autocolumnsize.js
+++ b/web/pgadmin/static/js/slickgrid/plugins/slick.autocolumnsize.js
@@ -98,7 +98,7 @@
     function getTemplateWidth(rowEl, template) {
       var cell = $(rowEl.find('.slick-cell'));
       cell.append(template);
-      $(cell).find('*').css('position', 'relative');
+      cell.find('*').css('position', 'relative');
       return cell.outerWidth() + 1;
     }
 
@@ -128,7 +128,7 @@
         'text-overflow': 'initial',
         'white-space': 'nowrap',
       });
-      var gridCanvas = $container.find('.grid-canvas');
+      var gridCanvas = $container.find('.grid-canvas').first();
       $(gridCanvas).append(rowEl);
       return rowEl;
     }
diff --git a/web/pgadmin/static/js/tree/tree.js b/web/pgadmin/static/js/tree/tree.js
index 57b6207c8..984d247d3 100644
--- a/web/pgadmin/static/js/tree/tree.js
+++ b/web/pgadmin/static/js/tree/tree.js
@@ -50,17 +50,50 @@ export class TreeNode {
   }
 
   reload(tree) {
-    this.unload(tree);
-    tree.aciTreeApi.setInode(this.domNode);
-    tree.aciTreeApi.deselect(this.domNode);
-    setTimeout(() => {
-      tree.selectNode(this.domNode);
-    }, 0);
+    return new Promise((resolve)=>{
+      this.unload(tree)
+        .then(()=>{
+          tree.aciTreeApi.setInode(this.domNode);
+          tree.aciTreeApi.deselect(this.domNode);
+          setTimeout(() => {
+            tree.selectNode(this.domNode);
+          }, 0);
+          resolve();
+        });
+    });
   }
 
   unload(tree) {
-    this.children = [];
-    tree.aciTreeApi.unload(this.domNode);
+    return new Promise((resolve, reject)=>{
+      this.children = [];
+      tree.aciTreeApi.unload(this.domNode, {
+        success: ()=>{
+          resolve(true);
+        },
+        fail: ()=>{
+          reject();
+        },
+      });
+    });
+  }
+
+  open(tree, suppressNoDom) {
+    return new Promise((resolve, reject)=>{
+      if(suppressNoDom && (this.domNode == null || typeof(this.domNode) === 'undefined')) {
+        resolve(true);
+      } else if(tree.aciTreeApi.isOpen(this.domNode)) {
+        resolve(true);
+      } else {
+        tree.aciTreeApi.open(this.domNode, {
+          success: ()=>{
+            resolve(true);
+          },
+          fail: ()=>{
+            reject(true);
+          },
+        });
+      }
+    });
   }
 
   /*
@@ -202,6 +235,47 @@ export class Tree {
     return findInTree(this.rootNode, path.join('.'));
   }
 
+  findNodeWithToggle(path) {
+    let tree = this;
+    path = path.join('.');
+
+    let onCorrectPath = function(matchPath) {
+      return (matchPath !== undefined && path !== undefined
+        && (path.startsWith(matchPath + '.') || path === matchPath));
+    };
+
+    return (function findInNode(currentNode) {
+      return new Promise((resolve, reject)=>{
+        if (path === null || path === undefined || path.length === 0) {
+          resolve(null);
+        }
+        /* No point in checking the children if
+         * the path for currentNode itself is not matching
+         */
+        if (currentNode.path !== undefined && !onCorrectPath(currentNode.path)) {
+          reject(null);
+        } else if (currentNode.path === path) {
+          resolve(currentNode);
+        } else {
+          currentNode.open(tree, true)
+            .then(()=>{
+              for (let i = 0, length = currentNode.children.length; i < length; i++) {
+                let childNode = currentNode.children[i];
+                if(onCorrectPath(childNode.path)) {
+                  resolve(findInNode(childNode));
+                  return;
+                }
+              }
+              reject(null);
+            })
+            .catch(()=>{
+              reject(null);
+            });
+        }
+      });
+    })(this.rootNode);
+  }
+
   findNodeByDomElement(domElement) {
     const path = this.translateTreeNodeIdFromACITree(domElement);
     if(!path || !path[0]) {
@@ -215,8 +289,19 @@ export class Tree {
     return this.aciTreeApi.selected();
   }
 
-  selectNode(aciTreeIdentifier) {
+  /* scrollIntoView will scroll only to top and bottom
+   * Logic can be added for scroll to middle
+   */
+  scrollTo(domElement) {
+    domElement.scrollIntoView();
+  }
+
+  selectNode(aciTreeIdentifier, scrollOnSelect) {
     this.aciTreeApi.select(aciTreeIdentifier);
+
+    if(scrollOnSelect) {
+      this.scrollTo(aciTreeIdentifier[0]);
+    }
   }
 
   createOrUpdateNode(id, data, parent, domNode) {
@@ -227,6 +312,7 @@ export class Tree {
     const oldNode = this.findNode(oldNodePath);
     if (oldNode !== null) {
       oldNode.data = data;
+      oldNode.domNode = domNode;
       return oldNode;
     }
 
@@ -238,6 +324,18 @@ export class Tree {
     return node;
   }
 
+  unloadNode(id, data, domNode, parentPath) {
+    let oldNodePath = [id];
+    const parent = this.findNode(parentPath);
+    if(parent !== null && parent !== undefined) {
+      oldNodePath = [parent.path, id];
+    }
+    const oldNode = this.findNode(oldNodePath);
+    if(oldNode) {
+      oldNode.children = [];
+    }
+  }
+
   /**
    * Given the JQuery object that contains the ACI Tree
    * this method is responsible for registering this tree class
@@ -252,16 +350,20 @@ export class Tree {
     $treeJQuery.on('acitree', function (event, api, item, eventName) {
       if (api.isItem(item)) {
         /* If the id of node is changed, the path should also be changed */
-        if (eventName === 'added' || eventName === 'idset') {
+        if (['added', 'idset', 'beforeunload'].indexOf(eventName) != -1) {
           const id = api.getId(item);
           const data = api.itemData(item);
+          const parentId = this.translateTreeNodeIdFromACITree(api.parent(item));
 
-          if(eventName === 'added') {
-            this.prepareDraggable(data, item);
-          }
+          if(eventName === 'beforeunload') {
+            this.unloadNode(id, data, item, parentId);
+          } else {
+            if(eventName === 'added') {
+              this.prepareDraggable(data, item);
+            }
 
-          const parentId = this.translateTreeNodeIdFromACITree(api.parent(item));
-          this.addNewNode(id, data, item, parentId);
+            this.addNewNode(id, data, item, parentId);
+          }
           if(data.errmsg) {
             Alertify.error(data.errmsg);
           }
diff --git a/web/pgadmin/static/js/utils.js b/web/pgadmin/static/js/utils.js
index 86dae698e..7bdddba85 100644
--- a/web/pgadmin/static/js/utils.js
+++ b/web/pgadmin/static/js/utils.js
@@ -32,11 +32,12 @@ export function findAndSetFocus(container) {
      * browser. For eg, in safari focus() works only when element has
      * tabindex="0", whereas in Chrome it works in any case
      */
+
     if (first_el.length == 0) {
       first_el = container
         .find(`
-          .pgadmin-controls:first input:enabled,
           .pgadmin-controls:first .btn:not(.toggle),
+          .pgadmin-controls:first,
           .ajs-commands:first,
           .CodeMirror-scroll`)
         .find('*[tabindex]:not([tabindex="-1"])');
diff --git a/web/pgadmin/static/scss/_alert.scss b/web/pgadmin/static/scss/_alert.scss
index 3f2e561e3..0e7e234d1 100644
--- a/web/pgadmin/static/scss/_alert.scss
+++ b/web/pgadmin/static/scss/_alert.scss
@@ -119,21 +119,18 @@
   }
 
   .success-in-footer {
-    border-radius: 5px;
-    border: 1px solid transparent;
-
-    .alert-text {
-      border-color: $color-success-light;
-    }
+    border-radius: $border-radius;
+    border: 1px solid $color-success-light;
+    background: $color-success-light;
   }
 
   .info-in-footer {
+    border-radius: $border-radius;
     border: 1px solid $color-primary;
-    border-radius: 4px;
-    height: 35px;
+    background: $color-primary-light;
 
-    .alert-text {
-      border: none;
+    .fa {
+        font-size: 1rem;
     }
   }
 }
diff --git a/web/pgadmin/static/scss/_webcabin.pgadmin.scss b/web/pgadmin/static/scss/_webcabin.pgadmin.scss
index 4846a8031..ca806785a 100644
--- a/web/pgadmin/static/scss/_webcabin.pgadmin.scss
+++ b/web/pgadmin/static/scss/_webcabin.pgadmin.scss
@@ -166,7 +166,7 @@
 
 .wcTabIcon {
   background-position: center;
-  padding: 0px 10px;
+  padding: 0rem 0.75rem;
 
   &.fa, &.pg-font-icon{
     padding: 0rem 0.25rem 0rem 0rem
diff --git a/web/pgadmin/tools/search_objects/__init__.py b/web/pgadmin/tools/search_objects/__init__.py
new file mode 100644
index 000000000..e8bd59141
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/__init__.py
@@ -0,0 +1,87 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2020, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
+"""Implements Search Object feature"""
+
+from flask import request
+from flask_babelex import gettext
+from flask_security import login_required
+
+from pgadmin.utils import PgAdminModule
+from pgadmin.utils.ajax import make_json_response, bad_request,\
+    internal_server_error
+from pgadmin.utils.preferences import Preferences
+from pgadmin.tools.search_objects.utils import SearchObjectsHelper
+
+MODULE_NAME = 'search_objects'
+
+
+class SearchObjectsModule(PgAdminModule):
+    LABEL = gettext('Search objects')
+
+    def get_exposed_url_endpoints(self):
+        """
+        Returns:
+            list: URL endpoints for search_object module
+        """
+        return ['search_objects.search', 'search_objects.types']
+
+    def show_system_objects(self):
+        """
+        return system preference objects
+        """
+        return self.pref_show_system_objects.get()
+
+    def register_preferences(self):
+        """
+        Get show_system_objects preference
+        """
+        browser_preference = Preferences.module('browser')
+        self.pref_show_system_objects =\
+            browser_preference.preference('show_system_objects')
+
+
+# Create blueprint for BackupModule class
+blueprint = SearchObjectsModule(
+    MODULE_NAME, __name__, static_url_path=''
+)
+
+
[email protected]("/", endpoint='index')
+@login_required
+def index():
+    return bad_request(errormsg=_("This URL cannot be called directly."))
+
+
[email protected]("types/<int:sid>/<int:did>", endpoint='types')
+@login_required
+def types(sid, did):
+    so_obj = SearchObjectsHelper(sid, did, blueprint.show_system_objects())
+    return make_json_response(data=so_obj.get_supported_types())
+
+
[email protected]("search/<int:sid>/<int:did>", endpoint='search')
+@login_required
+def search(sid, did):
+    """
+    URL args:
+        text <required>: search text
+        type <optional>: type of object to be searched.
+    """
+    text = request.args.get('text', None)
+    obj_type = request.args.get('type', None)
+
+    so_obj = SearchObjectsHelper(sid, did, blueprint.show_system_objects())
+
+    status, res = so_obj.search(text, obj_type)
+
+    if not status:
+        return internal_server_error(errormsg=res)
+
+    return make_json_response(data=res)
diff --git a/web/pgadmin/tools/search_objects/static/js/search_objects.js b/web/pgadmin/tools/search_objects/static/js/search_objects.js
new file mode 100644
index 000000000..98a415e94
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/static/js/search_objects.js
@@ -0,0 +1,90 @@
+/////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2020, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////
+
+define([
+  'sources/gettext', 'sources/url_for', 'jquery', 'underscore', 'pgadmin.alertifyjs',
+  'sources/pgadmin', 'sources/csrf', 'pgadmin.browser.toolbar',
+  'pgadmin.search_objects/search_objects_dialog',
+], function(
+  gettext, url_for, $, _, alertify, pgAdmin, csrfToken, toolBar, SearchObjectsDialog
+) {
+
+  var pgBrowser = pgAdmin.Browser;
+  if (pgAdmin.SearchObjects)
+    return pgAdmin.SearchObjects;
+
+  pgAdmin.SearchObjects = {
+    init: function() {
+      if (this.initialized)
+        return;
+
+      this.initialized = true;
+      csrfToken.setPGCSRFToken(pgAdmin.csrf_token_header, pgAdmin.csrf_token);
+
+      // Define the nodes on which the menus to be appear
+      var menus = [{
+        name: 'search_objects',
+        module: this,
+        applies: ['tools'],
+        callback: 'show_search_objects',
+        enable: this.search_objects_enabled,
+        priority: 1,
+        label: gettext('Search objects'),
+      }, {
+        name: 'search_objects',
+        module: this,
+        applies: ['context'],
+        callback: 'show_search_objects',
+        enable: this.search_objects_enabled,
+        priority: 1,
+        label: gettext('Search objects'),
+      }];
+
+      pgBrowser.add_menus(menus);
+      return this;
+    },
+
+    search_objects_enabled: function(obj) {
+      /* Same as query tool */
+      var isEnabled = (() => {
+        if (!_.isUndefined(obj) && !_.isNull(obj)) {
+          if (_.indexOf(pgAdmin.unsupported_nodes, obj._type) == -1) {
+            if (obj._type == 'database' && obj.allowConn) {
+              return true;
+            } else if (obj._type != 'database') {
+              return true;
+            } else {
+              return false;
+            }
+          } else {
+            return false;
+          }
+        } else {
+          return false;
+        }
+      })();
+
+      toolBar.enable(gettext('Search objects'), isEnabled);
+      return isEnabled;
+    },
+
+    // Callback to show the dialog
+    show_search_objects: function(action, item) {
+      let dialog = new SearchObjectsDialog.default(
+        pgBrowser,
+        $,
+        alertify,
+        {},
+      );
+      dialog.draw(action, item, {}, pgBrowser.stdW.md, pgBrowser.stdH.lg);
+    },
+  };
+
+  return pgAdmin.SearchObjects;
+});
diff --git a/web/pgadmin/tools/search_objects/static/js/search_objects_dialog.js b/web/pgadmin/tools/search_objects/static/js/search_objects_dialog.js
new file mode 100644
index 000000000..4482f7eb4
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/static/js/search_objects_dialog.js
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2020, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////
+
+import gettext from 'sources/gettext';
+import {Dialog} from 'sources/alertify/dialog';
+import {getPanelTitle} from 'tools/datagrid/static/js/datagrid_panel_title';
+
+export default class SearchObjectsDialog extends Dialog {
+  constructor(pgBrowser, $, alertify, BackupModel, backform = null) {
+    super(gettext('Search Objects Error'),
+      '<div class=\'search_objects_dialog\'></div>',
+      pgBrowser, $, alertify, BackupModel, backform
+    );
+  }
+
+  dialogName() {
+    return 'search_objects';
+  }
+
+  draw(action, aciTreeItem, params, width=0, height=0) {
+    let dbInfo = this.retrieveAncestorOfTypeDatabase(aciTreeItem);
+    if (!dbInfo) {
+      return;
+    }
+
+    let dialogTitle = getPanelTitle(this.pgBrowser, aciTreeItem);
+    dialogTitle = gettext('Search Objects - ')  + dialogTitle;
+    const dialog = this.createOrGetDialog(
+      gettext('Search Objects...'),
+      'search_objects'
+    );
+    dialog(dialogTitle).resizeTo(width, height);
+  }
+}
diff --git a/web/pgadmin/tools/search_objects/static/js/search_objects_dialog_wrapper.js b/web/pgadmin/tools/search_objects/static/js/search_objects_dialog_wrapper.js
new file mode 100644
index 000000000..b7f4b81e4
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/static/js/search_objects_dialog_wrapper.js
@@ -0,0 +1,648 @@
+import {getTreeNodeHierarchyFromElement} from 'sources/tree/pgadmin_tree_node';
+import axios from 'axios/index';
+import gettext from 'sources/gettext';
+import url_for from 'sources/url_for';
+import 'select2';
+import {DialogWrapper} from 'sources/alertify/dialog_wrapper';
+import Slick from 'sources/../bundle/slickgrid';
+import pgAdmin from 'sources/pgadmin';
+
+
+export default class SearchObjectsDialogWrapper extends DialogWrapper {
+  constructor(dialogContainerSelector, dialogTitle, typeOfDialog,
+    jquery, pgBrowser, alertify, dialogModel, backform) {
+    super(dialogContainerSelector, dialogTitle, jquery,
+      pgBrowser, alertify, dialogModel, backform);
+
+    this.grid = null;
+    this.dataview = null;
+    this.gridContainer = null;
+  }
+
+  showMessage(text, is_error, call_after_show=()=>{}) {
+    if(text == '' || text == null) {
+      this.statusBar.classList.add('d-none');
+    } else {
+      if(is_error) {
+        this.statusBar.innerHTML = `
+          <div class="error-in-footer">
+            <div class="d-flex px-2 py-1">
+              <div class="pr-2">
+                <i class="fa fa-exclamation-triangle text-danger" aria-hidden="true" role="img"></i>
+              </div>
+              <div role="alert" class="alert-text">${text}</div>
+              <div class="ml-auto close-error-bar">
+                <a class="close-error fa fa-times text-danger"></a>
+              </div>
+            </div>
+          </div>
+        `;
+
+        this.statusBar.querySelector('.close-error').addEventListener('click', ()=>{
+          this.showMessage(null);
+        });
+      } else {
+        this.statusBar.innerHTML = `
+          <div class="info-in-footer">
+            <div class="d-flex px-2 py-1">
+              <div class="pr-2">
+                <i class="fa fa-info-circle text-primary" aria-hidden="true"></i>
+              </div>
+              <div class="alert-text" role="alert">${text}</div>
+            </div>
+          </div>
+        `;
+      }
+      this.statusBar.classList.remove('d-none');
+      call_after_show(this.statusBar);
+    }
+  }
+
+  createDialogDOM(dialogContainer) {
+    dialogContainer.innerHTML = `
+      <div class="d-flex flex-column w-100 h-100">
+        <div class="p-2">
+          <div class="row">
+            <div class="col-8 d-flex">
+              <div class="input-group pgadmin-controls">
+                  <div class="input-group-prepend">
+                      <span class="input-group-text fa fa-search" id="labelSearch" aria-label="` + gettext('Search') + `"></span>
+                  </div>
+                  <input type="search" class="form-control" id="txtGridSearch" placeholder="` + gettext('Type at least 3 characters') + `"
+                    tabindex="0" aria-describedby="labelSearch" aria-labelledby="labelSearch" autocomplete="off">
+              </div>
+              <div class="ml-2">
+                <button class="btn btn-primary btn-search" disabled>`+ gettext('Search') +`</button>
+              </div>
+            </div>
+            <div class="col-4">
+              <select aria-label="` + gettext('Object types') + `" class="node-types"></select>
+            </div>
+          </div>
+        </div>
+        <div class="search-result-container flex-grow-1">
+          <div class="pg-sp-container d-none">
+            <div class="pg-sp-content">
+              <div class="row"><div class="col-12 pg-sp-icon"></div></div>
+              <div class="row"><div class="col-12 pg-sp-text"></div></div>
+            </div>
+          </div>
+          <div class="search-result"></div>
+        </div>
+        <div class='search-result-count p-1'>
+        </div>
+        <div class="pg-prop-status-bar">
+        </div>
+      </div>
+    `;
+
+    return dialogContainer;
+  }
+
+  updateDimOfSearchResult() {
+    let dim = this.searchResultContainer.getBoundingClientRect();
+    this.searchResult.style.height = dim.height + 'px';
+    this.searchResult.style.width = dim.width + 'px';
+  }
+
+  setLoading(text) {
+    if(text != null) {
+      this.loader.classList.remove('d-none');
+      this.loader.querySelector('.pg-sp-text').innerHTML = text;
+    } else {
+      this.loader.classList.add('d-none');
+    }
+  }
+
+  searchBtnEnabled(enabled) {
+    if(typeof(enabled) != 'undefined') {
+      this.searchBtn.disabled = !enabled;
+    } else {
+      return !this.searchBtn.disabled;
+    }
+  }
+
+  searchBoxVal(val) {
+    if(typeof(val) != 'undefined') {
+      this.searchBox.value = val;
+    } else {
+      return this.searchBox.value.trim();
+    }
+  }
+
+  typesVal(val) {
+    if(typeof(val) != 'undefined') {
+      this.typesSelect.value = val;
+    } else {
+      return this.typesSelect.value;
+    }
+  }
+
+  setTypes(data, enabled=true) {
+    this.jquery(this.typesSelect).empty().select2({
+      data: data,
+    });
+
+    this.typesSelect.disabled = !enabled;
+  }
+
+  setResultCount(count) {
+    if(count != 0 && !count) {
+      count = gettext('Unknown');
+    }
+    this.searchResultCount.innerHTML = count + ' ' + gettext('matches found') + '.';
+  }
+
+  showOtherInfo(rowno) {
+    let rowData = this.dataview.getItem(rowno);
+    rowData.name += ` (${rowData.other_info})`;
+    rowData.other_info = null;
+    this.dataview.updateItem(rowData.id, rowData);
+  }
+
+  setGridData(data) {
+    this.dataview.setItems(data);
+  }
+
+  prepareGrid() {
+    this.dataview = new Slick.Data.DataView();
+
+    this.dataview.getItemMetadata = (row)=>{
+      let rowData = this.dataview.getItem(row);
+      if(!rowData.show_node){
+        return {
+          cssClasses: 'object-muted',
+        };
+      }
+      return null;
+    };
+
+    this.dataview.setFilter((item, args)=>{
+      return !(args && args.type != 'all' && item.type != args.type);
+    });
+
+    /* jquery required for select2 */
+    this.jquery(this.typesSelect).on('change', ()=>{
+      this.dataview.setFilterArgs({ type: this.typesVal() });
+      this.dataview.refresh();
+    });
+
+    this.dataview.onRowCountChanged.subscribe((e, args) => {
+      this.grid.updateRowCount();
+      this.grid.render();
+      this.setResultCount(args.current);
+    });
+
+    this.dataview.onRowsChanged.subscribe((e, args) => {
+      this.grid.invalidateRows(args.rows);
+      this.grid.render();
+    });
+
+    this.grid = new Slick.Grid(
+      this.searchResult,
+      this.dataview,
+      [
+        { id: 'name', name: gettext('Object name'), field: 'name', sortable: true,
+          formatter: (row, cell, value, columnDef, dataContext) => {
+            let ret_el = `<i class='wcTabIcon ${dataContext.icon}'></i>${value}`;
+
+            if(dataContext.other_info != null && dataContext.other_info != '') {
+              ret_el += '&nbsp;<span class="object-other-info">(...)</span>';
+            }
+
+            return ret_el;
+          },
+          width: 50,
+        },
+        { id: 'type', name: gettext('Type'), field: 'type_label', sortable: true, width: 35 },
+        { id: 'path', name: gettext('Browser path'), field: 'path', sortable: false },
+      ],
+      {
+        enableCellNavigation: true,
+        enableColumnReorder: false,
+        multiColumnSort: true,
+        explicitInitialization: true,
+      }
+    );
+
+    this.grid.registerPlugin(new Slick.AutoColumnSize());
+
+    this.grid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow: true}));
+
+    this.grid.onKeyDown.subscribe((event) => {
+      let activeRow = this.grid.getActiveCell();
+      if(activeRow && !event.ctrlKey && !event.altKey && !event.metaKey && event.keyCode == 9) {
+        event.preventDefault();
+        event.stopImmediatePropagation();
+
+        if(event.shiftKey) {
+          this.prevToGrid.focus();
+        } else {
+          this.nextToGrid.focus();
+        }
+      }
+    });
+
+    this.grid.onClick.subscribe((event, args) => {
+      if(event.target.classList.contains('object-other-info')) {
+        this.showOtherInfo(args.row);
+      }
+    });
+
+    this.grid.onDblClick.subscribe((event, args) => {
+      let rowData = this.dataview.getItem(args.row);
+      let treeMenu = this.pgBrowser.treeMenu;
+
+      if(!rowData.show_node) {
+        this.showMessage(
+          gettext('%s objects are disabled in the browser.', rowData.type_label) + ' ' +
+          gettext('You can enable them in the') + ' <a class="pref-dialog-link">' + gettext('preferences dialog') + '</a>.',
+          true,
+          (statusBar)=>{
+            statusBar.querySelector('.pref-dialog-link').addEventListener('click', ()=>{
+              if(pgAdmin.Preferences) {
+                pgAdmin.Preferences.show();
+              }
+            });
+          }
+        );
+        return false;
+      }
+      this.showMessage(gettext('Locating...'));
+      treeMenu.findNodeWithToggle(rowData.id_path)
+        .then((treeItem)=>{
+          treeMenu.selectNode(treeItem.domNode, true);
+          this.showMessage(null);
+        })
+        .catch((args)=>{
+          this.showMessage(gettext('Unable to locate this object in the browser.'), true);
+          console.warn(args);
+        });
+    });
+
+    this.grid.onSort.subscribe((event, args) => {
+      let cols = args.sortCols;
+
+      this.dataview.sort(function (dataRow1, dataRow2) {
+        for (var i = 0, l = cols.length; i < l; i++) {
+          var field = cols[i].sortCol.field;
+          var sign = cols[i].sortAsc ? 1 : -1;
+          var value1 = dataRow1[field], value2 = dataRow2[field];
+          var result = (value1 == value2 ? 0 : (value1 > value2 ? 1 : -1)) * sign;
+          if (result != 0) {
+            return result;
+          }
+        }
+        return false;
+      }, true);
+    });
+  }
+
+  onDialogResize() {
+    this.updateDimOfSearchResult();
+
+    if(this.grid) {
+      this.grid.resizeCanvas();
+      this.grid.autosizeColumns();
+    }
+  }
+
+  onDialogShow() {
+    this.focusOnDialog(this);
+
+    setTimeout(()=>{
+      if(!this.grid) {
+        this.prepareGrid();
+      }
+      this.updateDimOfSearchResult();
+      this.grid.init();
+      this.setGridData([]);
+      this.onDialogResize();
+    }, 500);
+  }
+
+  getBaseUrl(endpoint) {
+    return url_for('search_objects.'+endpoint, {
+      sid: this.treeInfo.server._id,
+      did: this.treeInfo.database._id,
+    });
+  }
+
+  getCollNode(node_type) {
+    if('coll-'+node_type in this.pgBrowser.Nodes) {
+      return this.pgBrowser.Nodes['coll-'+node_type];
+    } else if(node_type in this.pgBrowser.Nodes &&
+              typeof(this.pgBrowser.Nodes[node_type].collection_type) === 'string') {
+      return this.pgBrowser.Nodes[this.pgBrowser.Nodes[node_type].collection_type];
+    }
+
+    return null;
+  }
+
+  getSelectedNode() {
+    const tree = this.pgBrowser.treeMenu;
+    const selectedNode = tree.selected();
+    if (selectedNode) {
+      return tree.findNodeByDomElement(selectedNode);
+    } else {
+      return undefined;
+    }
+  }
+
+  finaliseData(datum) {
+    datum.icon = 'icon-' + datum.type;
+    /* finalise path */
+    [datum.path, datum.id_path] = this.translateSearchObjectsPath(datum.path, datum.catalog_level);
+    /* id is required by slickgrid dataview */
+    datum.id = datum.id_path;
+    return datum;
+  }
+
+  /* This function will translate the path given by search objects API into two parts
+   * 1. The display path on the UI
+   * 2. The tree search path to locate the object on the tree.
+   *
+   * Sample path returned by search objects API
+   * :schema.11:/pg_catalog/:table.2604:/pg_attrdef
+   *
+   * Sample path required by tree locator
+   * Normal object  - server_group/1.server/3.coll-database/3.database/13258.coll-schema/13258.schema/2200.coll-table/2200.table/41773
+   * pg_catalog schema - server_group/1.server/3.coll-database/3.database/13258.coll-catalog/13258.catalog/11.coll-table/11.table/2600
+   * Information Schema, dbo, sys    - server_group/1.server/3.coll-database/3.database/13258.coll-catalog/13258.catalog/12967.coll-catalog_object/12967.catalog_object/13204
+   *
+   * Column catalog_level has values as
+   * N - Not a catalog schema
+   * D - Catalog schema with DB support - pg_catalog
+   * O - Catalog schema with object support only - info schema, dbo, sys
+   */
+  translateSearchObjectsPath(path, catalog_level) {
+    if (path === null) {
+      return path;
+    }
+
+    catalog_level = catalog_level || 'N';
+
+    /* path required by tree locator */
+    /* the path received from the backend is after the DB node, initial path setup */
+    let id_path = [
+      this.treeInfo.server_group.id,
+      this.treeInfo.server.id,
+      this.getCollNode('database').type + '/' + this.treeInfo.server._id,
+      this.treeInfo.database.id,
+    ];
+
+    let prev_node_id = this.treeInfo.database._id;
+
+    /* add the slash to match regex, remove it from display path later */
+    path = '/' + path;
+    /* the below regex will match all /:server_group.1:/ */
+    let new_path = path.replace(/\/:[a-zA-Z_]+\.[0-9]+:\//g, (token)=>{
+      let orig_token = token;
+      /* remove the slash and colon */
+      token = token.slice(2, -2);
+      let [node_type, node_oid, others] = token.split('.');
+      if(typeof(others) !== 'undefined') {
+        return token;
+      }
+
+      /* schema type is "catalog" for catalog schemas */
+      node_type = (['D', 'O'].indexOf(catalog_level) != -1 && node_type == 'schema') ? 'catalog' : node_type;
+
+      /* catalog like info schema will only have views and tables AKA catalog_object except for pg_catalog */
+      node_type = (catalog_level === 'O' && ['view', 'table'].indexOf(node_type) != -1) ? 'catalog_object' : node_type;
+
+      /* If collection node present then add it */
+      let coll_node = this.getCollNode(node_type);
+      if(coll_node) {
+        /* Add coll node to the path */
+        if(prev_node_id != null) id_path.push(`${coll_node.type}/${prev_node_id}`);
+
+        /* Add the node to the path */
+        id_path.push(`${node_type}/${node_oid}`);
+
+        /* This will be needed for coll node */
+        prev_node_id = node_oid;
+
+        /* This will be displayed in the grid */
+        return  `/${coll_node.label}/`;
+      } else if(node_type in this.pgBrowser.Nodes) {
+        /* Add the node to the path */
+        id_path.push(`${node_type}/${node_oid}`);
+
+        /* This will be need for coll node id path */
+        prev_node_id = node_oid;
+
+        /* Remove the token and replace with slash. This will be displayed in the grid */
+        return '/';
+      }
+      prev_node_id = null;
+      return orig_token;
+    });
+
+    /* Remove the slash we had added */
+    new_path = new_path.substring(1);
+    return [new_path, id_path];
+  }
+
+  prepareDialog() {
+    this.showMessage(null);
+    this.setResultCount(0);
+    if(this.grid) {
+      this.grid.destroy();
+      this.grid = null;
+    }
+
+    /* Load types */
+    this.setTypes([{
+      id: -1,
+      text: gettext('Loading...'),
+      value: null,
+    }], false);
+
+    axios.get(
+      this.getBaseUrl('types')
+    ).then((res)=>{
+      let types = [{
+        id: 'all',
+        text: 'All types',
+      }];
+
+      for (const key of Object.keys(res.data.data).sort()) {
+        types.push({
+          id: key,
+          text: res.data.data[key],
+        });
+      }
+      this.setTypes(types);
+    }).catch(()=>{
+      this.setTypes([{
+        id: -1,
+        text: gettext('Failed'),
+        value: null,
+      }], false);
+    });
+  }
+
+  main(title) {
+    this.set('title', title);
+  }
+
+  setup() {
+    return {
+      buttons: [{
+        text: '',
+        key: 112,
+        className: 'btn btn-secondary pull-left fa fa-question pg-alertify-icon-button',
+        attrs: {
+          name: 'dialog_help',
+          type: 'button',
+          label: gettext('Help'),
+          'aria-label': gettext('Help'),
+          url: url_for('help.static', {
+            'filename': 'search_objects.html',
+          }),
+        },
+      }, {
+        text: gettext('Close'),
+        key: 27,
+        className: 'btn btn-secondary fa fa-lg fa-times pg-alertify-button',
+        'data-btn-name': 'cancel',
+      }],
+      // Set options for dialog
+      options: {
+        title: this.dialogTitle,
+        //disable both padding and overflow control.
+        padding: !1,
+        overflow: !1,
+        model: 0,
+        resizable: true,
+        maximizable: true,
+        pinnable: false,
+        closableByDimmer: false,
+        modal: false,
+      },
+    };
+  }
+
+  build() {
+    let tmpEle = document.createElement('div');
+    tmpEle.innerHTML = this.dialogContainerSelector;
+    let dialogContainer = tmpEle.firstChild;
+
+    // Append the container
+    this.elements.content.innerHTML = '';
+    this.elements.content.appendChild(dialogContainer);
+
+    this.createDialogDOM(dialogContainer);
+    this.alertify.pgDialogBuild.apply(this);
+
+    this.loader = dialogContainer.getElementsByClassName('pg-sp-container')[0];
+
+    this.searchBox = dialogContainer.querySelector('#txtGridSearch');
+    this.searchBtn = dialogContainer.querySelector('.btn-search');
+    this.typesSelect = dialogContainer.querySelector('.node-types');
+    this.searchResultContainer = dialogContainer.querySelector('.search-result-container');
+    this.searchResult = dialogContainer.querySelector('.search-result');
+    this.searchResultCount = dialogContainer.querySelector('.search-result-count');
+    this.statusBar = dialogContainer.querySelector('.pg-prop-status-bar');
+
+    /* These two values are required to come out of grid when tab is
+     * pressed in the grid. Slickgrid does not allow any way to come out
+     */
+    this.nextToGrid = this.elements.footer.querySelector('.ajs-button');
+    this.prevToGrid = this.typesSelect;
+
+    /* init select2 */
+    this.setTypes([{
+      id: -1,
+      text: gettext('Loading...'),
+      value: null,
+    }], false);
+
+    /* on search box change */
+    this.searchBox.addEventListener('input', ()=>{
+      if(this.searchBoxVal().length >= 3) {
+        this.searchBtnEnabled(true);
+      } else {
+        this.searchBtnEnabled(false);
+      }
+    });
+
+    /* on enter key press */
+    this.searchBox.addEventListener('keypress', (e)=>{
+      if(e.keyCode == 13) {
+        e.stopPropagation();
+        if(this.searchBtnEnabled()) {
+          this.searchBtn.dispatchEvent(new Event('click'));
+        }
+      }
+    });
+
+    /* on search button click */
+    this.searchBtn.addEventListener('click', ()=>{
+      this.searchBtnEnabled(false);
+      this.setGridData([]);
+      this.showMessage(null);
+
+      this.setLoading(gettext('Searching....'));
+      axios.get(this.getBaseUrl('search'), {
+        params: {
+          text: this.searchBoxVal(),
+          type: this.typesVal(),
+        },
+      }).then((res)=>{
+        let grid_data = res.data.data.map((row)=>{
+          return this.finaliseData(row);
+        });
+
+        this.setGridData(grid_data);
+      }).catch((error)=>{
+        let errmsg = '';
+
+        if (error.response) {
+          errmsg = error.response.statusText;
+        } else if (error.request) {
+          errmsg = gettext('No response received');
+        } else {
+          errmsg = error.message;
+        }
+        this.showMessage(gettext('An unexpected occurred: %s', errmsg), true);
+        console.warn(error);
+      }).finally(()=>{
+        this.setLoading(null);
+        this.searchBtnEnabled(true);
+      });
+    });
+
+    this.set({
+      'onresized': this.onDialogResize.bind(this),
+      'onmaximized': this.onDialogResize.bind(this),
+      'onrestored': this.onDialogResize.bind(this),
+      'onshow': this.onDialogShow.bind(this),
+    });
+  }
+
+  prepare() {
+    let selectedTreeNode = this.getSelectedNode();
+    if (!this.getSelectedNodeData(selectedTreeNode)) {
+      return;
+    }
+
+    this.treeInfo = getTreeNodeHierarchyFromElement(this.pgBrowser, selectedTreeNode);
+    this.prepareDialog();
+    this.focusOnDialog(this);
+  }
+
+  callback(event) {
+    if (this.wasHelpButtonPressed(event)) {
+      event.cancel = true;
+      this.pgBrowser.showHelp(
+        event.button.element.name,
+        event.button.element.getAttribute('url'),
+        null,
+        null,
+      );
+      return;
+    }
+  }
+}
diff --git a/web/pgadmin/tools/search_objects/static/scss/_search_objects.scss b/web/pgadmin/tools/search_objects/static/scss/_search_objects.scss
new file mode 100644
index 000000000..86f3eb8a7
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/static/scss/_search_objects.scss
@@ -0,0 +1,122 @@
+.search_objects_dialog {
+    height: 100%;
+
+    .object-other-info {
+        &:hover {
+            font-weight: bold;
+        }
+    }
+
+    .pref-dialog-link {
+        color: $color-fg !important;
+        text-decoration: underline !important;
+        cursor: pointer;
+    }
+
+    .search-result-container {
+        width: 100%;
+        height: 100%;
+        min-height: 0;
+    }
+
+    .node-types ~ .select2-container {
+        min-width: 100%;
+    }
+
+    .search-result-count {
+      border-top: $panel-border;
+    }
+
+    .ui-widget {
+        font-family: $font-family-primary;
+        font-size: $font-size-base;
+
+        .slick-header.ui-state-default {
+            border: $table-border-width solid $table-border-color;
+            .slick-header-columns {
+                background: $table-bg;
+                color: $color-fg;
+                border-bottom: $panel-border;
+
+                .slick-header-column-sorted {
+                    font-style: unset;
+                }
+
+                .ui-state-default {
+                    background: $table-bg !important;
+                    color: $color-fg !important;
+                    padding: $table-header-cell-padding $table-cell-padding;
+                    border-right: $table-border-width solid $table-border-color;
+
+                    .slick-column-name {
+                        font-weight: bold;
+                    }
+
+                    .slick-sort-indicator {
+                        float: unset;
+                    }
+                }
+
+                .slick-header-sortable {
+                    cursor: pointer !important;
+
+                    .slick-sort-indicator-asc {
+                        background: none;
+                        border-top: none;
+                        border-right: 0.25rem solid transparent;
+                        border-bottom: 0.25rem solid $color-fg;
+                        border-left: 0.25rem solid transparent;
+                    }
+
+                    .slick-sort-indicator-desc {
+                        background: none;
+                        border-top: 0.25rem solid $color-fg;
+                        border-right: 0.25rem solid transparent;
+                        border-bottom: none;
+                        border-left: 0.25rem solid transparent;
+                    }
+                }
+            }
+        }
+        .ui-widget-content {
+            color: $color-fg;
+            &.slick-row {
+                &.object-muted {
+                    &.active, &.active:hover, &:hover, & {
+                        .slick-cell {
+                            color: $text-muted !important;
+                            cursor: default !important;
+                        }
+                    }
+                }
+
+                &.active, &.active:hover {
+                    .slick-cell {
+                        border-top: $table-border-width solid transparent !important;
+                        background-color: $tree-bg-selected !important;
+                        color: $tree-fg-selected !important;
+                    }
+                }
+
+                &:hover {
+                    cursor: pointer;
+                    .slick-cell {
+                        border-top: $table-border-width solid transparent !important;
+                        border-bottom: $table-border-width solid transparent !important;
+                        background-color: $tree-bg-hover !important;
+                        color: $tree-fg-hover !important;
+                        cursor: pointer !important;
+                    }
+                }
+            }
+        }
+    }
+
+
+    .pg-prop-status-bar {
+        position: absolute;
+        bottom: 0;
+        right: 0;
+        left: 0;
+    }
+}
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/10_plus/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/10_plus/search.sql
new file mode 100644
index 000000000..d00ca0d11
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/10_plus/search.sql
@@ -0,0 +1,434 @@
+{% import 'catalog/pg/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('S','v','m')
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['table', 'partition'] %}
+    SELECT CASE WHEN c.relispartition THEN 'partition' ELSE 'table' END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || (
+		WITH RECURSIVE table_path_data as (
+			select c.oid as oid, 0 as height,
+				CASE c.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || c.oid || ':/' || c.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) obj_path, n.nspname AS schema_name,
+	CASE WHEN c.relispartition THEN {{ show_node_prefs['partition'] }}
+	    ELSE {{ show_node_prefs['table'] }} END AS show_node,
+    NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    WHERE c.relkind in ('p','r')
+    {% if obj_type == 'table' %}
+    AND NOT c.relispartition
+    {% elif obj_type == 'partition' %}
+    AND c.relispartition
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function'] %}
+    SELECT
+        CASE
+        WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+        ELSE 'function' END::text AS obj_type, p.proname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || case when t.typname = 'trigger' then ':trigger_function.' else ':function.' end || p.oid ||':/' || p.proname AS obj_path, n.nspname AS schema_name,
+    CASE WHEN t.typname IN ('trigger', 'event_trigger') THEN {{ show_node_prefs['trigger_function'] }} ELSE {{ show_node_prefs['function'] }} END AS show_node,
+    pg_catalog.pg_get_function_identity_arguments(p.oid) AS other_info
+    from pg_proc p
+    left join pg_namespace n on p.pronamespace = n.oid
+    left join pg_type t on p.prorettype = t.oid
+    WHERE ({{ CATALOGS.DB_SUPPORT('n') }})
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/'||
+    (
+		WITH RECURSIVE table_path_data as (
+			select t.oid as oid, 0 as height,
+				CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) ||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+            case
+                when t.relkind = 'v' then ':view.'
+                when t.relkind = 'm' then ':mview.'
+                WHEN t.relkind in ('r', 'p') THEN
+                    (
+                        WITH RECURSIVE table_path_data as (
+                            select t.oid as oid, 0 as height,
+                                CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                            union
+                            select rel.oid, pt.height+1 as height,
+                                CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                                || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                            from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                            join pg_inherits inh ON inh.inhparent = rel.oid
+                            join table_path_data pt ON inh.inhrelid = pt.oid
+                        )
+                        select path from table_path_data order by height desc limit 1
+                    )
+            end
+            ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger'] %}
+    select 'trigger'::text AS obj_type, tr.tgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+        case
+            when t.relkind = 'v' then ':view.'
+            when t.relkind = 'm' then ':mview.'
+            WHEN t.relkind in ('r', 'p') THEN
+            (
+                WITH RECURSIVE table_path_data as (
+                    select t.oid as oid, 0 as height,
+                        CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                    union
+                    select rel.oid, pt.height+1 as height,
+                        CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                        || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                    from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                    join pg_inherits inh ON inh.inhparent = rel.oid
+                    join table_path_data pt ON inh.inhrelid = pt.oid
+                )
+                select path from table_path_data order by height desc limit 1
+            )
+        end || '/:trigger.'|| tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['trigger'] }} AS show_node, NULL AS other_info
+        from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary' AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser' AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template' AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain' AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints' AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper' AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server' AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping' AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table' AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension' AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation' AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/11_plus/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/11_plus/search.sql
new file mode 100644
index 000000000..5ec54956f
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/11_plus/search.sql
@@ -0,0 +1,451 @@
+{% import 'catalog/pg/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('S','v','m')
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['table', 'partition'] %}
+    SELECT CASE WHEN c.relispartition THEN 'partition' ELSE 'table' END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || (
+		WITH RECURSIVE table_path_data as (
+			select c.oid as oid, 0 as height,
+				CASE c.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || c.oid || ':/' || c.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) obj_path, n.nspname AS schema_name,
+	CASE WHEN c.relispartition THEN {{ show_node_prefs['partition'] }}
+	    ELSE {{ show_node_prefs['table'] }} END AS show_node,
+    NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    WHERE c.relkind in ('p','r')
+    {% if obj_type == 'table' %}
+    AND NOT c.relispartition
+    {% elif obj_type == 'partition' %}
+    AND c.relispartition
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function', 'procedure'] %}
+    SELECT
+        CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+            WHEN p.prokind = 'p' THEN 'procedure'
+            ELSE 'function'
+        END::text AS obj_type, p.proname AS obj_name,
+        ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+        CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN ':trigger_function.'
+            WHEN p.prokind = 'p' THEN ':procedure.'
+            ELSE ':function.'
+        END || p.oid ||':/' || p.proname AS obj_path, n.nspname AS schema_name,
+        CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN {{ show_node_prefs['trigger_function'] }}
+            WHEN p.prokind = 'p' THEN {{ show_node_prefs['procedure'] }}
+            ELSE {{ show_node_prefs['function'] }}
+        END AS show_node,
+        pg_catalog.pg_get_function_identity_arguments(p.oid) AS other_info
+    from pg_proc p join pg_namespace n
+    on p.pronamespace = n.oid join pg_type t
+    on p.prorettype = t.oid join pg_language lng
+    ON lng.oid=p.prolang
+    WHERE p.prokind IN ('f', 'w', 'p')
+    AND CASE
+        WHEN t.typname IN ('trigger', 'event_trigger') THEN lng.lanname NOT IN ('edbspl', 'sql', 'internal')
+        ELSE true
+        END
+    AND ({{ CATALOGS.DB_SUPPORT('n') }})
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/'||
+    (
+		WITH RECURSIVE table_path_data as (
+			select t.oid as oid, 0 as height,
+				CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) ||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+            case
+                when t.relkind = 'v' then ':view.'
+                when t.relkind = 'm' then ':mview.'
+                WHEN t.relkind in ('r', 'p') THEN
+                    (
+                        WITH RECURSIVE table_path_data as (
+                            select t.oid as oid, 0 as height,
+                                CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                            union
+                            select rel.oid, pt.height+1 as height,
+                                CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                                || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                            from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                            join pg_inherits inh ON inh.inhparent = rel.oid
+                            join table_path_data pt ON inh.inhrelid = pt.oid
+                        )
+                        select path from table_path_data order by height desc limit 1
+                    )
+            end
+            ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger'] %}
+    select 'trigger'::text AS obj_type, tr.tgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+        case
+            when t.relkind = 'v' then ':view.'
+            when t.relkind = 'm' then ':mview.'
+            WHEN t.relkind in ('r', 'p') THEN
+            (
+                WITH RECURSIVE table_path_data as (
+                    select t.oid as oid, 0 as height,
+                        CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                    union
+                    select rel.oid, pt.height+1 as height,
+                        CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                        || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                    from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                    join pg_inherits inh ON inh.inhparent = rel.oid
+                    join table_path_data pt ON inh.inhrelid = pt.oid
+                )
+                select path from table_path_data order by height desc limit 1
+            )
+        end || '/:trigger.'|| tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['trigger'] }} AS show_node, NULL AS other_info
+        from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary' AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser' AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template' AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain' AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints' AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper' AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server' AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping' AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table' AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension' AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation' AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/default/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/default/search.sql
new file mode 100644
index 000000000..b384b316d
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/default/search.sql
@@ -0,0 +1,367 @@
+{% import 'catalog/pg/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['table', 'sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'r' THEN 'table'
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'r' THEN ':table.'
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'r' THEN {{ show_node_prefs['table'] }}
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('r','S','v','m')
+    {% elif obj_type == 'table' %}
+    WHERE c.relkind  = 'r'
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function'] %}
+    SELECT
+        CASE
+        WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+        ELSE 'function' END::text AS obj_type, p.proname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || case when t.typname = 'trigger' then ':trigger_function.' else ':function.' end || p.oid ||':/' || p.proname AS obj_path, n.nspname AS schema_name,
+    CASE WHEN t.typname IN ('trigger', 'event_trigger') THEN {{ show_node_prefs['trigger_function'] }} ELSE {{ show_node_prefs['function'] }} END AS show_node,
+    pg_catalog.pg_get_function_identity_arguments(p.oid) AS other_info
+    from pg_proc p
+    left join pg_namespace n on p.pronamespace = n.oid
+    left join pg_type t on p.prorettype = t.oid
+    WHERE ({{ CATALOGS.DB_SUPPORT('n') }})
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/:table.'|| t.oid || ':/'||t.relname||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname||
+            case
+                WHEN t.relkind = 'r' THEN '/:table.'
+                when t.relkind = 'v' then '/:view.'
+                when t.relkind = 'm' then '/:mview.'
+                else 'should not happen'
+            end || t.oid || ':/' || t.relname ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger'] %}
+    select 'trigger'::text AS obj_type, tr.tgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname||
+            case
+                WHEN t.relkind = 'r' THEN '/:table.'
+                when t.relkind = 'v' then '/:view.'
+                when t.relkind = 'm' then '/:mview.'
+                else 'should not happen'
+            end || t.oid || ':/' || t.relname || '/:trigger.'|| tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+            {{ show_node_prefs['trigger'] }} AS show_node, NULL AS other_info
+            from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary'::text AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser'::text AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template'::text AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints'::text AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper'::text AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server'::text AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping'::text AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table'::text AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension'::text AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation'::text AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/10_plus/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/10_plus/search.sql
new file mode 100644
index 000000000..76d3f01ba
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/10_plus/search.sql
@@ -0,0 +1,494 @@
+{% import 'catalog/ppas/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('S','v','m')
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['table', 'partition'] %}
+    SELECT CASE WHEN c.relispartition THEN 'partition' ELSE 'table' END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || (
+		WITH RECURSIVE table_path_data as (
+			select c.oid as oid, 0 as height,
+				CASE c.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || c.oid || ':/' || c.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) obj_path, n.nspname AS schema_name,
+	CASE WHEN c.relispartition THEN {{ show_node_prefs['partition'] }}
+	    ELSE {{ show_node_prefs['table'] }} END AS show_node,
+    NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    WHERE c.relkind in ('p','r')
+    {% if obj_type == 'table' %}
+    AND NOT c.relispartition
+    {% elif obj_type == 'partition' %}
+    AND c.relispartition
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function', 'procedure', 'edbfunc', 'edbproc'] %}
+    SELECT fd.obj_type, fd.obj_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'procedure' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:procedure.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'trigger_function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:trigger_function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbfunc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbfunc.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbproc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbproc.' || fd.obj_oid ||':/' || fd.obj_name
+            ELSE NULL
+        END AS obj_path,
+        CASE
+            WHEN fd.obj_type IN ('function', 'procedure', 'trigger_function') THEN fd.schema_name
+            WHEN fd.obj_type IN ('edbfunc', 'edbproc') THEN fd.next_schema_name
+            ELSE NULL
+        END AS schema_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN {{ show_node_prefs['function'] }}
+            WHEN fd.obj_type = 'procedure' THEN {{ show_node_prefs['procedure'] }}
+            WHEN fd.obj_type = 'trigger_function' THEN {{ show_node_prefs['trigger_function'] }}
+            WHEN fd.obj_type = 'edbfunc' THEN {{ show_node_prefs['edbfunc'] }}
+            WHEN fd.obj_type = 'edbproc' THEN {{ show_node_prefs['edbproc'] }}
+            ELSE NULL
+        END AS show_node, other_info
+    FROM (
+        SELECT
+            CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+            WHEN pr.protype = '0'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbfunc' ELSE 'function' END
+            WHEN pr.protype = '1'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbproc' ELSE 'procedure' END
+            ELSE null
+            END::text AS obj_type, pr.proname AS obj_name, pr.oid AS obj_oid, n.oid AS schema_oid, n.nspname AS schema_name, np.oid next_schema_oid, np.nspname next_schema_name,
+            pg_catalog.pg_get_function_identity_arguments(pr.oid) AS other_info
+        FROM pg_proc pr left join pg_namespace n
+        ON pr.pronamespace = n.oid left JOIN pg_namespace np
+        ON np.oid=n.nspparent left JOIN pg_type t
+        ON t.oid = pr.prorettype left JOIN pg_language l
+        ON l.oid = pr.prolang
+        WHERE NOT (t.typname = 'trigger' AND l.lanname = 'edbspl')
+        AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }})
+    ) fd
+    {% if not all_obj %}
+    WHERE fd.obj_type = '{{ obj_type }}'
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where n.nspparent = 0
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/'||
+    (
+		WITH RECURSIVE table_path_data as (
+			select t.oid as oid, 0 as height,
+				CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) ||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+            case
+                when t.relkind = 'v' then ':view.'
+                when t.relkind = 'm' then ':mview.'
+                WHEN t.relkind in ('r', 'p') THEN
+                    (
+                        WITH RECURSIVE table_path_data as (
+                            select t.oid as oid, 0 as height,
+                                CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                            union
+                            select rel.oid, pt.height+1 as height,
+                                CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                                || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                            from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                            join pg_inherits inh ON inh.inhparent = rel.oid
+                            join table_path_data pt ON inh.inhrelid = pt.oid
+                        )
+                        select path from table_path_data order by height desc limit 1
+                    )
+            end
+            ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger'] %}
+    select 'trigger'::text AS obj_type, tr.tgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname||
+            case
+                WHEN t.relkind = 'r' THEN '/:table.'
+                when t.relkind = 'v' then '/:view.'
+                when t.relkind = 'm' then '/:mview.'
+                else 'should not happen'
+            end || t.oid || ':/' || t.relname || '/:trigger.'|| tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+            {{ show_node_prefs['trigger'] }} AS show_node, NULL AS other_info
+            from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary' AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser' AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template' AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain' AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints' AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper' AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server' AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping' AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table' AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension' AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation' AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['synonym'] %}
+    SELECT 'synonym' AS obj_type, s.synname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:synonym.'||s.oid||':/' || s.synname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['synonym'] }} AS show_node, NULL AS other_info
+    FROM pg_synonym s
+    JOIN pg_namespace n ON n.oid=s.synnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['package'] %}
+    SELECT 'package' AS obj_type, p.nspname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['package'] }} AS show_node, NULL AS other_info
+    FROM pg_namespace p
+    JOIN pg_namespace n ON n.oid=p.nspparent
+    WHERE p.nspcompoundtrigger = false
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['edbvar'] %}
+    SELECT 'edbvar' AS obj_type, v.varname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname || '/:edbvar.'||v.oid||':/' || v.varname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['edbvar'] }} AS show_node, NULL AS other_info
+    FROM edb_variable v JOIN pg_namespace p
+    ON v.varpackage = p.oid JOIN pg_namespace n
+    ON p.nspparent = n.oid
+    WHERE p.nspcompoundtrigger = false
+    AND {{ CATALOGS.DB_SUPPORT('p') }}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/12_plus/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/12_plus/search.sql
new file mode 100644
index 000000000..82eb9cf6f
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/12_plus/search.sql
@@ -0,0 +1,515 @@
+{% import 'catalog/ppas/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('S','v','m')
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['table', 'partition'] %}
+    SELECT CASE WHEN c.relispartition THEN 'partition' ELSE 'table' END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || (
+		WITH RECURSIVE table_path_data as (
+			select c.oid as oid, 0 as height,
+				CASE c.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || c.oid || ':/' || c.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) obj_path, n.nspname AS schema_name,
+	CASE WHEN c.relispartition THEN {{ show_node_prefs['partition'] }}
+	    ELSE {{ show_node_prefs['table'] }} END AS show_node,
+    NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    WHERE c.relkind in ('p','r')
+    {% if obj_type == 'table' %}
+    AND NOT c.relispartition
+    {% elif obj_type == 'partition' %}
+    AND c.relispartition
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function', 'procedure', 'edbfunc', 'edbproc'] %}
+    SELECT fd.obj_type, fd.obj_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'procedure' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:procedure.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'trigger_function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:trigger_function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbfunc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbfunc.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbproc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbproc.' || fd.obj_oid ||':/' || fd.obj_name
+            ELSE NULL
+        END AS obj_path,
+        CASE
+            WHEN fd.obj_type IN ('function', 'procedure', 'trigger_function') THEN fd.schema_name
+            WHEN fd.obj_type IN ('edbfunc', 'edbproc') THEN fd.next_schema_name
+            ELSE NULL
+        END AS schema_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN {{ show_node_prefs['function'] }}
+            WHEN fd.obj_type = 'procedure' THEN {{ show_node_prefs['procedure'] }}
+            WHEN fd.obj_type = 'trigger_function' THEN {{ show_node_prefs['trigger_function'] }}
+            WHEN fd.obj_type = 'edbfunc' THEN {{ show_node_prefs['edbfunc'] }}
+            WHEN fd.obj_type = 'edbproc' THEN {{ show_node_prefs['edbproc'] }}
+            ELSE NULL
+        END AS show_node, other_info
+    FROM (
+        SELECT
+            CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+            WHEN pr.protype = '0'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbfunc' ELSE 'function' END
+            WHEN pr.protype = '1'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbproc' ELSE 'procedure' END
+            ELSE null
+            END::text AS obj_type, pr.proname AS obj_name, pr.oid AS obj_oid, n.oid AS schema_oid, n.nspname AS schema_name, np.oid next_schema_oid, np.nspname next_schema_name,
+            pg_catalog.pg_get_function_identity_arguments(pr.oid) AS other_info
+        FROM pg_proc pr left join pg_namespace n
+        ON pr.pronamespace = n.oid left JOIN pg_namespace np
+        ON np.oid=n.nspparent left JOIN pg_type t
+        ON t.oid = pr.prorettype left JOIN pg_language l
+        ON l.oid = pr.prolang
+        WHERE NOT (t.typname = 'trigger' AND l.lanname = 'edbspl')
+        AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }})
+    ) fd
+    {% if not all_obj %}
+    WHERE fd.obj_type = '{{ obj_type }}'
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where n.nspparent = 0
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/'||
+    (
+		WITH RECURSIVE table_path_data as (
+			select t.oid as oid, 0 as height,
+				CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) ||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+            case
+                when t.relkind = 'v' then ':view.'
+                when t.relkind = 'm' then ':mview.'
+                WHEN t.relkind in ('r', 'p') THEN
+                    (
+                        WITH RECURSIVE table_path_data as (
+                            select t.oid as oid, 0 as height,
+                                CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                            union
+                            select rel.oid, pt.height+1 as height,
+                                CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                                || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                            from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                            join pg_inherits inh ON inh.inhparent = rel.oid
+                            join table_path_data pt ON inh.inhrelid = pt.oid
+                        )
+                        select path from table_path_data order by height desc limit 1
+                    )
+            end
+            ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger', 'compound_trigger'] %}
+    select
+        CASE WHEN tr.tgpackageoid != 0 THEN 'compound_trigger' ELSE 'trigger' END::text AS obj_type, tr.tgname AS obj_name,
+        ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+        case
+            when t.relkind = 'v' then ':view.'
+            when t.relkind = 'm' then ':mview.'
+            WHEN t.relkind in ('r', 'p') THEN
+            (
+                WITH RECURSIVE table_path_data as (
+                    select t.oid as oid, 0 as height,
+                        CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                    union
+                    select rel.oid, pt.height+1 as height,
+                        CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                        || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                    from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                    join pg_inherits inh ON inh.inhparent = rel.oid
+                    join table_path_data pt ON inh.inhrelid = pt.oid
+                )
+                select path from table_path_data order by height desc limit 1
+            )
+        end || CASE WHEN tr.tgpackageoid != 0 THEN '/:compound_trigger.' ELSE '/:trigger.' END || tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+        CASE WHEN tr.tgpackageoid != 0 THEN {{ show_node_prefs['compound_trigger'] }} ELSE {{ show_node_prefs['trigger'] }} END AS show_node,
+        NULL AS other_info
+        from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+    {% if obj_type == 'compound_trigger' %}
+    AND tr.tgpackageoid != 0
+    {% elif obj_type == 'trigger' %}
+    AND tr.tgpackageoid = 0
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary'::text AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser'::text AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template'::text AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints'::text AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper'::text AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server' AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping' AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table' AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension' AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation' AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['synonym'] %}
+    SELECT 'synonym' AS obj_type, s.synname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:synonym.'||s.oid||':/' || s.synname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['synonym'] }} AS show_node, NULL AS other_info
+    FROM pg_synonym s
+    JOIN pg_namespace n ON n.oid=s.synnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['package'] %}
+    SELECT 'package' AS obj_type, p.nspname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['package'] }} AS show_node, NULL AS other_info
+    FROM pg_namespace p
+    JOIN pg_namespace n ON n.oid=p.nspparent
+    WHERE p.nspcompoundtrigger = false
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['edbvar'] %}
+    SELECT 'edbvar' AS obj_type, v.varname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname || '/:edbvar.'||v.oid||':/' || v.varname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['edbvar'] }} AS show_node, NULL AS other_info
+    FROM edb_variable v JOIN pg_namespace p
+    ON v.varpackage = p.oid JOIN pg_namespace n
+    ON p.nspparent = n.oid
+    WHERE p.nspcompoundtrigger = false
+    AND {{ CATALOGS.DB_SUPPORT('p') }}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/default/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/default/search.sql
new file mode 100644
index 000000000..7bb126e32
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/default/search.sql
@@ -0,0 +1,437 @@
+{% import 'catalog/ppas/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['table', 'sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'r' THEN 'table'
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'r' THEN ':table.'
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'r' THEN {{ show_node_prefs['table'] }}
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('r','S','v','m')
+    {% elif obj_type == 'table' %}
+    WHERE c.relkind  = 'r'
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function', 'procedure', 'edbfunc', 'edbproc'] %}
+    SELECT fd.obj_type, fd.obj_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'procedure' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:procedure.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'trigger_function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:trigger_function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbfunc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbfunc.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbproc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbproc.' || fd.obj_oid ||':/' || fd.obj_name
+            ELSE NULL
+        END AS obj_path,
+        CASE
+            WHEN fd.obj_type IN ('function', 'procedure', 'trigger_function') THEN fd.schema_name
+            WHEN fd.obj_type IN ('edbfunc', 'edbproc') THEN fd.next_schema_name
+            ELSE NULL
+        END AS schema_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN {{ show_node_prefs['function'] }}
+            WHEN fd.obj_type = 'procedure' THEN {{ show_node_prefs['procedure'] }}
+            WHEN fd.obj_type = 'trigger_function' THEN {{ show_node_prefs['trigger_function'] }}
+            WHEN fd.obj_type = 'edbfunc' THEN {{ show_node_prefs['edbfunc'] }}
+            WHEN fd.obj_type = 'edbproc' THEN {{ show_node_prefs['edbproc'] }}
+            ELSE NULL
+        END AS show_node, other_info
+    FROM (
+        SELECT
+            CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+            WHEN pr.protype = '0'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbfunc' ELSE 'function' END
+            WHEN pr.protype = '1'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbproc' ELSE 'procedure' END
+            ELSE null
+            END::text::text AS obj_type, pr.proname AS obj_name, pr.oid AS obj_oid, n.oid AS schema_oid, n.nspname AS schema_name, np.oid next_schema_oid, np.nspname next_schema_name,
+            pg_catalog.pg_get_function_identity_arguments(pr.oid) AS other_info
+        FROM pg_proc pr left join pg_namespace n
+        ON pr.pronamespace = n.oid left JOIN pg_namespace np
+        ON np.oid=n.nspparent left JOIN pg_type t
+        ON t.oid = pr.prorettype left JOIN pg_language l
+        ON l.oid = pr.prolang
+        WHERE NOT (t.typname = 'trigger' AND l.lanname = 'edbspl')
+        AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }})
+    ) fd
+    {% if not all_obj %}
+    WHERE fd.obj_type = '{{ obj_type }}'
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where n.nspparent = 0
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/:table.'|| t.oid || ':/'||t.relname||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname||
+            case
+                WHEN t.relkind = 'r' THEN '/:table.'
+                when t.relkind = 'v' then '/:view.'
+                when t.relkind = 'm' then '/:mview.'
+                else 'should not happen'
+            end || t.oid || ':/' || t.relname ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger'] %}
+    select 'trigger'::text::text AS obj_type, tr.tgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname||
+            case
+                WHEN t.relkind = 'r' THEN '/:table.'
+                when t.relkind = 'v' then '/:view.'
+                when t.relkind = 'm' then '/:mview.'
+                else 'should not happen'
+            end || t.oid || ':/' || t.relname || '/:trigger.'|| tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+            {{ show_node_prefs['trigger'] }} AS show_node, NULL AS other_info
+            from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary'::text::text AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser'::text::text AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template'::text::text AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain'::text::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints'::text::text AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper'::text AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server'::text AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping'::text AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table'::text AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension'::text AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation'::text AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['synonym'] %}
+    SELECT 'synonym'::text AS obj_type, s.synname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:synonym.'||s.oid||':/' || s.synname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['synonym'] }} AS show_node, NULL AS other_info
+    FROM pg_synonym s
+    JOIN pg_namespace n ON n.oid=s.synnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['package'] %}
+    SELECT 'package'::text AS obj_type, p.nspname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['package'] }} AS show_node, NULL AS other_info
+    FROM pg_namespace p
+    JOIN pg_namespace n ON n.oid=p.nspparent
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['edbvar'] %}
+    SELECT 'edbvar'::text AS obj_type, v.varname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname || '/:edbvar.'||v.oid||':/' || v.varname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['edbvar'] }} AS show_node, NULL AS other_info
+    FROM edb_variable v JOIN pg_namespace p
+    ON v.varpackage = p.oid JOIN pg_namespace n
+    ON p.nspparent = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('p') }}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/tests/__init__.py b/web/pgadmin/tools/search_objects/tests/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/web/pgadmin/tools/search_objects/tests/test_api_search.py b/web/pgadmin/tools/search_objects/tests/test_api_search.py
new file mode 100644
index 000000000..3952006d2
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/tests/test_api_search.py
@@ -0,0 +1,75 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2020, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
+from __future__ import print_function
+import sys
+import json
+
+from pgadmin.utils.route import BaseTestGenerator
+from regression import parent_node_dict
+from pgadmin.browser.server_groups.servers.databases.tests import utils as \
+    database_utils
+from regression.python_test_utils import test_utils as utils
+
+try:
+    from urllib import urlencode
+except Exception as e:
+    from urllib.parse import urlencode
+
+
+class SearchObjectsApiSearch(BaseTestGenerator):
+    """ This class will test search API of search objects. """
+    scenarios = [
+        ('Search with all types', dict(text='emp', type='all', singles=False)),
+        ('Search with None types', dict(text='emp', type=None, singles=False)),
+        ('Search for all single types',
+         dict(text='emp', type=None, singles=True)),
+    ]
+
+    def runFor(self, text=None, type=None):
+        url_params = dict(
+            text=text
+        )
+        if type is not None:
+            url_params['type'] = type
+
+        url_params = urlencode(url_params)
+        response = self.tester.get(self.base_url + '?' + url_params)
+
+        self.assertEquals(response.status_code, 200)
+
+    def runTest(self):
+        database_info = parent_node_dict["database"][-1]
+        server_id = database_info["server_id"]
+        db_id = database_info["db_id"]
+
+        db_con = database_utils.connect_database(self,
+                                                 utils.SERVER_GROUP,
+                                                 server_id,
+                                                 db_id)
+        if not db_con["info"] == "Database connected.":
+            raise Exception("Could not connect to database to add the schema.")
+
+        self.base_url = '/search_objects/search/' \
+                        + str(server_id) + '/' + str(db_id)
+
+        if not self.singles:
+            self.runFor(text=self.text, type=self.type)
+        else:
+            # test for all the node types individually
+            types_url = '/search_objects/types/' +\
+                        str(server_id) + '/' + str(db_id)
+            response = self.tester.get(types_url)
+            self.assertEquals(response.status_code, 200)
+            types_data = json.loads(response.data.decode('utf-8'))['data']
+
+            for a_type in types_data:
+                print('Running search for type {0}'.format(a_type),
+                      file=sys.stderr)
+                self.runFor(text=self.text, type=a_type)
diff --git a/web/pgadmin/tools/search_objects/tests/test_api_types.py b/web/pgadmin/tools/search_objects/tests/test_api_types.py
new file mode 100644
index 000000000..aed5571ad
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/tests/test_api_types.py
@@ -0,0 +1,47 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2020, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
+import json
+from pgadmin.utils.route import BaseTestGenerator
+from regression import parent_node_dict
+from pgadmin.browser.server_groups.servers.databases.tests import utils as \
+    database_utils
+from regression.python_test_utils import test_utils as utils
+
+
+class SearchObjectsApiTypes(BaseTestGenerator):
+    """ This class will test types API of search objects. """
+    scenarios = [
+        # Fetching default URL for schema node.
+        ('Types API URL', dict(url='/search_objects/types'))
+    ]
+
+    def runTest(self):
+        database_info = parent_node_dict["database"][-1]
+        server_id = database_info["server_id"]
+
+        db_id = database_info["db_id"]
+        db_con = database_utils.connect_database(self,
+                                                 utils.SERVER_GROUP,
+                                                 server_id,
+                                                 db_id)
+        if not db_con["info"] == "Database connected.":
+            raise Exception("Could not connect to database to add the schema.")
+
+        url = self.url + '/' + str(server_id) + '/' + str(db_id)
+        response = self.tester.get(url)
+        self.assertEquals(response.status_code, 200)
+
+        # repsonse data should be dict
+        response_data = json.loads(response.data.decode('utf-8'))['data']
+        self.assertEquals(type(response_data), dict)
+
+        # response data key values should not be None
+        for key, value in response_data.items():
+            self.assertIsNotNone(value, 'Key {0} has value None'.format(key))
diff --git a/web/pgadmin/tools/search_objects/tests/test_search_objects_helper.py b/web/pgadmin/tools/search_objects/tests/test_search_objects_helper.py
new file mode 100644
index 000000000..ec9c369b9
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/tests/test_search_objects_helper.py
@@ -0,0 +1,117 @@
+import sys
+
+from pgadmin.tools.search_objects.utils import SearchObjectsHelper, current_app
+from pgadmin.utils.route import BaseTestGenerator
+
+if sys.version_info < (3, 3):
+    from mock import patch, MagicMock
+else:
+    from unittest.mock import patch, MagicMock
+
+
+class SearchObjectsHelperTest(BaseTestGenerator):
+    scenarios = [
+        ('scenario', dict(
+            node_blueprints=[
+                dict(node_type='table', coll_label='Tables',
+                     backend_supported=True),
+                dict(node_type='view', coll_label='Views',
+                     backend_supported=False),
+                dict(node_type='index', coll_label='Indexes',
+                     backend_supported=True),
+                dict(node_type='role', coll_label='Roles',
+                     backend_supported=True)
+            ],
+            all_node_types=['table', 'view', 'index'],
+            expected_show_node_prefs=dict(table=True, view=False, index=True),
+            expected_supported_types=dict(table='Tables', index='Indexes'),
+            expected_supported_types_skip=dict(table='Tables', view='Views',
+                                               index='Indexes'),
+            execute_dict_return_value=(
+                True, dict(rows=[
+                    dict(obj_name='name1', obj_type='table',
+                         obj_path='some/path', show_node=True,
+                         other_info=None, catalog_level='N'),
+                    dict(obj_name='name2', obj_type='view',
+                         obj_path='some1/path', show_node=True,
+                         other_info=None, catalog_level='D'),
+                    dict(obj_name='name3', obj_type='index',
+                         obj_path='some2/path1', show_node=True,
+                         other_info='oid', catalog_level='O'),
+                ])),
+            expected_search_op=(
+                True, [
+                    dict(name='name1', type='table', type_label='Tables',
+                         path='some/path',
+                         show_node=True, other_info=None, catalog_level='N'),
+                    dict(name='name2', type='view', type_label='Views',
+                         path='some1/path',
+                         show_node=True, other_info=None, catalog_level='D'),
+                    dict(name='name3', type='index', type_label='Indexes',
+                         path='some2/path1',
+                         show_node=True, other_info='oid', catalog_level='O'),
+                ]
+            )
+        ))
+    ]
+
+    def __create_manager(self):
+        connection = MagicMock(
+            execute_dict=MagicMock(),
+            db='somedb'
+        )
+        connection.execute_dict.return_value = self.execute_dict_return_value
+
+        def connection_function(did):
+            return connection
+
+        return MagicMock(
+            connection=connection_function
+        )
+
+    @patch('pgadmin.tools.search_objects.utils.get_node_blueprint')
+    @patch('pgadmin.tools.search_objects.utils.get_driver')
+    def runTest(self, get_driver_mock, get_node_blueprint_mock):
+        manager = self.__create_manager()
+
+        get_driver_mock.return_value = MagicMock(
+            connection_manager=lambda session_id: manager)
+
+        def __get_node_blueprint_mock(node_type):
+            blueprints = self.node_blueprints
+            blueprint = None
+            for data in blueprints:
+                if node_type == data['node_type']:
+                    blueprint = MagicMock(
+                        BackendSupported=MagicMock(
+                            return_value=data['backend_supported']),
+                        collection_label=data['coll_label'],
+                        show_node=data['backend_supported'],
+                    )
+            return blueprint
+
+        get_node_blueprint_mock.side_effect = __get_node_blueprint_mock
+
+        with self.app.app_context():
+
+            so_obj = SearchObjectsHelper(2, 18456,
+                                         node_types=self.all_node_types)
+            so_obj.get_sql = MagicMock(return_value='dummy query')
+
+            # test template path
+            manager.server_type = 'pg'
+            manager.version = 906000
+            self.assertEquals(so_obj.get_template_path(),
+                              'search_objects/sql/pg/#906000#')
+
+            self.assertEquals(so_obj.get_show_node_prefs(),
+                              self.expected_show_node_prefs)
+
+            self.assertEquals(so_obj.get_supported_types(),
+                              self.expected_supported_types)
+
+            self.assertEquals(so_obj.get_supported_types(skip_check=True),
+                              self.expected_supported_types_skip)
+
+            self.assertEquals(so_obj.search('searchtext', 'all'),
+                              self.expected_search_op)
diff --git a/web/pgadmin/tools/search_objects/utils.py b/web/pgadmin/tools/search_objects/utils.py
new file mode 100644
index 000000000..cf858d6e2
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/utils.py
@@ -0,0 +1,131 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2020, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
+from flask import current_app, render_template
+from flask_babelex import gettext
+
+from pgadmin.utils.driver import get_driver
+from config import PG_DEFAULT_DRIVER
+
+
+def get_node_blueprint(node_type):
+    blueprint = None
+    node_type = 'NODE-' + node_type
+    if node_type in current_app.blueprints:
+        blueprint = current_app.blueprints[node_type]
+
+    return blueprint
+
+
+class SearchObjectsHelper:
+    def __init__(self, sid, did, show_system_objects=False, node_types=None):
+        self.sid = sid
+        self.did = did
+        self.show_system_objects = show_system_objects
+        self.manager = get_driver(
+            PG_DEFAULT_DRIVER
+        ).connection_manager(sid)
+
+        self._all_node_types = [
+            'cast', 'fts_dictionary', 'check_constraint',
+            'exclusion_constraint', 'foreign_key',
+            'primary_key', 'unique_constraint', 'constraints', 'trigger',
+            'table', 'compound_trigger', 'rule', 'column', 'partition',
+            'index', 'type', 'domain', 'domain_constraints', 'schema',
+            'synonym', 'sequence', 'edbvar', 'edbfunc', 'edbproc', 'package',
+            'foreign_table', 'fts_parser', 'function', 'procedure',
+            'trigger_function', 'fts_template', 'collation', 'view', 'mview',
+            'fts_configuration', 'extension', 'language',
+            'event_trigger', 'foreign_server', 'user_mapping',
+            'foreign_data_wrapper'
+        ] if node_types is None else node_types
+
+    @property
+    def all_node_types(self):
+        return self._all_node_types
+
+    def get_template_path(self):
+        return 'search_objects/sql/{0}/#{1}#'.format(
+            self.manager.server_type, self.manager.version)
+
+    def get_show_node_prefs(self):
+        return_types = {}
+        for node_type in self.all_node_types:
+            blueprint = get_node_blueprint(node_type)
+            if blueprint is None:
+                continue
+
+            return_types[node_type] = blueprint.show_node
+        return return_types
+
+    def get_supported_types(self, skip_check=False):
+        return_types = {}
+        for node_type in self.all_node_types:
+            blueprint = get_node_blueprint(node_type)
+            if blueprint is None:
+                continue
+
+            if blueprint.BackendSupported(self.manager, is_catalog=False,
+                                          did=self.did) or skip_check:
+                if node_type in ['edbfunc', 'edbproc']:
+                    return_types[node_type] =\
+                        gettext('Package {0}').format(
+                            blueprint.collection_label)
+                else:
+                    return_types[node_type] = blueprint.collection_label
+
+        return return_types
+
+    def get_sql(self, sql_file, **kwargs):
+        return render_template(
+            "/".join([self.get_template_path(), sql_file]),
+            **kwargs
+        )
+
+    def finalize_id_path(self, path, base_path):
+        if base_path is not None:
+            path = '{0}/{1}'.format(base_path, path)
+
+        return path
+
+    def search(self, text, obj_type=None):
+        conn = self.manager.connection(did=self.did)
+        last_system_oid = (self.manager.db_info[self.did])['datlastsysoid'] \
+            if self.manager.db_info is not None and self.did in \
+            self.manager.db_info else 0
+
+        show_node_prefs = self.get_show_node_prefs()
+        node_labels = self.get_supported_types(skip_check=True)
+        # Column catalog_level has values as
+        # N - Not a catalog schema
+        # D - Catalog schema with DB support - pg_catalog
+        # O - Catalog schema with object support only - info schema, dbo, sys
+        status, res = conn.execute_dict(
+            self.get_sql('search.sql', search_text=text, obj_type=obj_type,
+                         show_system_objects=self.show_system_objects,
+                         show_node_prefs=show_node_prefs, _=gettext,
+                         last_system_oid=last_system_oid)
+        )
+
+        if not status:
+            return status, res
+
+        ret_val = [
+            {
+                'name': row['obj_name'],
+                'type': row['obj_type'],
+                'type_label': node_labels[row['obj_type']],
+                'path': row['obj_path'],
+                'show_node': row['show_node'],
+                'other_info': row['other_info'],
+                'catalog_level': row['catalog_level'],
+            }
+            for row in res['rows']
+        ]
+        return True, ret_val
diff --git a/web/pgadmin/tools/sqleditor/static/css/sqleditor.css b/web/pgadmin/tools/sqleditor/static/css/sqleditor.css
index 52b821d8b..f9d15b8da 100644
--- a/web/pgadmin/tools/sqleditor/static/css/sqleditor.css
+++ b/web/pgadmin/tools/sqleditor/static/css/sqleditor.css
@@ -112,7 +112,7 @@ li {
   font-size: 9pt;
 }
 
-.slick-header-column.ui-state-default {
+#datagrid .slick-header-column.ui-state-default {
     height: 32px !important;
 }
 
diff --git a/web/regression/javascript/fake_endpoints.js b/web/regression/javascript/fake_endpoints.js
index fa01b3f89..157a34863 100644
--- a/web/regression/javascript/fake_endpoints.js
+++ b/web/regression/javascript/fake_endpoints.js
@@ -19,5 +19,7 @@ define(function () {
     'datagrid.initialize_query_tool_with_did': '/initialize/query_tool/<int:sgid>/<int:sid>/<int:did>',
     'restore.create_job': '/restore/job/<int:sid>',
     'datagrid.panel': '/panel/<int:trans_id>',
+    'search_objects.types': '/search_objects/types/<int:sid>/<int:did>',
+    'search_objects.search': '/search_objects/search/<int:sid>/<int:did>',
   };
 });
diff --git a/web/regression/javascript/search_objects/search_objects_dialog_spec.js b/web/regression/javascript/search_objects/search_objects_dialog_spec.js
new file mode 100644
index 000000000..039db1970
--- /dev/null
+++ b/web/regression/javascript/search_objects/search_objects_dialog_spec.js
@@ -0,0 +1,155 @@
+/////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2020, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////
+import SearchObjectsDialog from 'tools/search_objects/static/js/search_objects_dialog';
+import {TreeFake} from '../tree/tree_fake';
+import MockAdapter from 'axios-mock-adapter';
+import axios from 'axios/index';
+
+const context = describe;
+
+describe('SearchObjectsDialog', () => {
+  let soDialog;
+  let pgBrowser;
+  let jquerySpy;
+  let alertifySpy;
+
+  beforeEach(() => {
+    pgBrowser = {
+      treeMenu: new TreeFake(),
+      Nodes: {
+        server: {
+          hasId: true,
+          label: 'server',
+          getTreeNodeHierarchy: jasmine.createSpy('server.getTreeNodeHierarchy'),
+        },
+        database: {
+          hasId: true,
+          label: 'database',
+          getTreeNodeHierarchy: jasmine.createSpy('db.getTreeNodeHierarchy'),
+        },
+        schema: {
+          hasId: true,
+          label: 'schema',
+          getTreeNodeHierarchy: jasmine.createSpy('db.getTreeNodeHierarchy'),
+        },
+      },
+      stdW: {
+        sm: 500,
+        md: 700,
+        lg: 900,
+        default: 500,
+      },
+      stdH: {
+        sm: 200,
+        md: 400,
+        lg: 550,
+        default: 550,
+      },
+    };
+    pgBrowser.Nodes.server.hasId = true;
+    pgBrowser.Nodes.database.hasId = true;
+    jquerySpy = jasmine.createSpy('jquerySpy');
+
+    const hierarchy = {
+      children: [
+        {
+          id: 'root',
+          children: [
+            {
+              id: 'serverTreeNode',
+              data: {
+                _id: 10,
+                _type: 'server',
+                user: {name: 'username'},
+                label: 'theserver',
+              },
+              children: [
+                {
+                  id: 'some_database',
+                  data: {
+                    _type: 'database',
+                    _id: 11,
+                    label: 'thedatabase',
+                  },
+                },
+              ],
+            },
+            {
+              id: 'ppasServer',
+              data: {
+                _type: 'server',
+                server_type: 'ppas',
+                children: [
+                  {id: 'someNodeUnderneathPPASServer'},
+                ],
+              },
+            },
+          ],
+        },
+      ],
+    };
+
+    pgBrowser.treeMenu = TreeFake.build(hierarchy);
+  });
+
+  describe('#draw', () => {
+    let networkMock;
+    beforeEach(() => {
+      networkMock = new MockAdapter(axios);
+      alertifySpy = jasmine.createSpyObj('alertify', ['alert', 'dialog']);
+      alertifySpy['search_objects'] = jasmine.createSpy('search_objects');
+      soDialog = new SearchObjectsDialog(
+        pgBrowser,
+        jquerySpy,
+        alertifySpy,
+        null
+      );
+
+      pgBrowser.get_preference = jasmine.createSpy('get_preferences');
+    });
+
+    afterEach(() => {
+      networkMock.restore();
+    });
+
+    context('there are no ancestors of the type database', () => {
+      it('does not create a dialog', () => {
+        pgBrowser.treeMenu.selectNode([{id: 'serverTreeNode'}]);
+        soDialog.draw(null, null, null);
+        expect(alertifySpy['search_objects']).not.toHaveBeenCalled();
+      });
+
+      it('display an alert with a Backup Error', () => {
+        soDialog.draw(null, [{id: 'serverTreeNode'}], null);
+        expect(alertifySpy.alert).toHaveBeenCalledWith(
+          'Search Objects Error',
+          'Please select a database or its child node from the browser.'
+        );
+      });
+    });
+
+    context('there is an ancestor of the type database', () => {
+      let soDialogResizeToSpy;
+      beforeEach(() => {
+        soDialogResizeToSpy = jasmine.createSpyObj('soDialogResizeToSpy', ['resizeTo']);
+        alertifySpy['search_objects'].and
+          .returnValue(soDialogResizeToSpy);
+      });
+
+      it('displays the dialog when database node selected', (done) => {
+        soDialog.draw(null, [{id: 'some_database'}], null, pgBrowser.stdW.md, pgBrowser.stdH.md);
+        setTimeout(() => {
+          expect(alertifySpy['search_objects']).toHaveBeenCalledWith('Search Objects - thedatabase/username@theserver');
+          expect(soDialogResizeToSpy.resizeTo).toHaveBeenCalledWith(pgBrowser.stdW.md, pgBrowser.stdH.md);
+          done();
+        }, 0);
+      });
+    });
+  });
+});
diff --git a/web/regression/javascript/search_objects/search_objects_dialog_wrapper_spec.js b/web/regression/javascript/search_objects/search_objects_dialog_wrapper_spec.js
new file mode 100644
index 000000000..6799eec0c
--- /dev/null
+++ b/web/regression/javascript/search_objects/search_objects_dialog_wrapper_spec.js
@@ -0,0 +1,532 @@
+/////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2020, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////
+
+import {TreeFake} from '../tree/tree_fake';
+import SearchObjectsDialogWrapper from 'tools/search_objects/static/js/search_objects_dialog_wrapper';
+import axios from 'axios/index';
+import MockAdapter from 'axios-mock-adapter';
+import {TreeNode} from '../../../pgadmin/static/js/tree/tree';
+
+let context = describe;
+
+describe('SearchObjectsDialogWrapper', () => {
+  let jquerySpy;
+  let pgBrowser;
+  let alertifySpy;
+  let dialogModelKlassSpy = null;
+  let backform;
+  let soDialogWrapper;
+  let noDataNode;
+  let serverTreeNode;
+  let databaseTreeNode;
+  let viewSchema;
+  let soJQueryContainerSpy;
+  let soNodeChildNodeSpy;
+  let soNode;
+
+  beforeEach(() => {
+    pgBrowser = {
+      treeMenu: new TreeFake(),
+      Nodes: {
+        server: {
+          hasId: true,
+          getTreeNodeHierarchy: jasmine.createSpy('getTreeNodeHierarchy'),
+        },
+        database: {
+          hasId: true,
+          getTreeNodeHierarchy: jasmine.createSpy('getTreeNodeHierarchy'),
+        },
+        'coll-sometype': {
+          type: 'coll-sometype',
+          hasId: false,
+          label: 'Some types coll',
+        },
+        sometype: {
+          type: 'sometype',
+          hasId: true,
+        },
+        someothertype: {
+          type: 'someothertype',
+          hasId: true,
+          collection_type: 'coll-sometype',
+        },
+        'coll-edbfunc': {
+          type: 'coll-edbfunc',
+          hasId: true,
+          label: 'Functions',
+        },
+        'coll-edbproc': {
+          type: 'coll-edbfunc',
+          hasId: true,
+          label: 'Procedures',
+        },
+        'coll-edbvar': {
+          type: 'coll-edbfunc',
+          hasId: true,
+          label: 'Variables',
+        },
+      },
+      keyboardNavigation: jasmine.createSpyObj('keyboardNavigation', ['getDialogTabNavigator']),
+    };
+    noDataNode = pgBrowser.treeMenu.addNewNode('level1.1', undefined, [{id: 'level1'}]);
+    serverTreeNode = pgBrowser.treeMenu.addNewNode('level2.1', {
+      _type: 'server',
+      _id: 10,
+      label: 'some-tree-label',
+    }, [{id: 'level2.1'}]);
+    databaseTreeNode = new TreeNode('database-tree-node', {
+      _type: 'database',
+      _id: 123,
+      _label: 'some-database-label',
+    }, [{id: 'database-tree-node'}]);
+    pgBrowser.treeMenu.addChild(serverTreeNode, databaseTreeNode);
+
+    jquerySpy = jasmine.createSpy('jquerySpy');
+    soNode = {
+      __internal: {
+        buttons: [{}, {}, {}, {
+          element: {
+            disabled: false,
+          },
+        }],
+      },
+      elements: {
+        body: {
+          childNodes: [
+            {},
+          ],
+        },
+        content: jasmine.createSpyObj('content', ['appendChild', 'attr']),
+      },
+    };
+
+    soJQueryContainerSpy = jasmine.createSpyObj('soJQueryContainer', ['get', 'attr']);
+    soJQueryContainerSpy.get.and.returnValue(soJQueryContainerSpy);
+
+    viewSchema = {};
+    backform = jasmine.createSpyObj('backform', ['generateViewSchema', 'Dialog']);
+    backform.generateViewSchema.and.returnValue(viewSchema);
+
+    soNodeChildNodeSpy = jasmine.createSpyObj('something', ['addClass']);
+    jquerySpy.and.callFake((selector) => {
+      if (selector === '<div class=\'search_objects_dialog\'></div>') {
+        return soJQueryContainerSpy;
+      } else if (selector === soNode.elements.body.childNodes[0]) {
+        return soNodeChildNodeSpy;
+      }
+    });
+    alertifySpy = jasmine.createSpyObj('alertify', ['alert', 'dialog']);
+
+  });
+
+  describe('#prepare', () => {
+    beforeEach(() => {
+      soDialogWrapper = new SearchObjectsDialogWrapper(
+        '<div class=\'search_objects_dialog\'></div>',
+        'soDialogTitle',
+        'search_objects',
+        jquerySpy,
+        pgBrowser,
+        alertifySpy,
+        dialogModelKlassSpy,
+        backform
+      );
+      soDialogWrapper = Object.assign(soDialogWrapper, soNode);
+      spyOn(soDialogWrapper, 'prepareDialog').and.callThrough();
+      spyOn(soDialogWrapper, 'setTypes');
+      spyOn(soDialogWrapper, 'setResultCount');
+    });
+
+    context('no tree element is selected', () => {
+      it('does not prepare dialog', () => {
+        spyOn(soDialogWrapper, 'prepareDialog');
+        soDialogWrapper.prepare();
+        expect(soDialogWrapper.prepareDialog).not.toHaveBeenCalled();
+      });
+    });
+
+    context('selected tree node has no data', () => {
+      beforeEach(() => {
+        pgBrowser.treeMenu.selectNode(noDataNode.domNode);
+      });
+
+      it('does not prepare the dialog', () => {
+        spyOn(soDialogWrapper, 'prepareDialog');
+        soDialogWrapper.prepare();
+        expect(soDialogWrapper.prepareDialog).not.toHaveBeenCalled();
+      });
+    });
+
+    context('tree element is selected', () => {
+      let gridDestroySpy;
+      let networkMock;
+
+      beforeEach(() => {
+        pgBrowser.treeMenu.selectNode(databaseTreeNode.domNode);
+        soDialogWrapper.grid = jasmine.createSpyObj('grid', ['destroy']);
+        spyOn(soDialogWrapper, 'showMessage');
+        gridDestroySpy = spyOn(soDialogWrapper.grid, 'destroy');
+
+        networkMock = new MockAdapter(axios);
+
+      });
+
+      afterEach(() => {
+        networkMock.restore();
+      });
+
+      it('creates dialog and displays it', () => {
+        soDialogWrapper.prepare();
+        expect(soDialogWrapper.prepareDialog).toHaveBeenCalled();
+        expect(soDialogWrapper.showMessage).toHaveBeenCalledWith(null);
+      });
+
+
+      it('if grid set then destroy it', () => {
+        soDialogWrapper.prepare();
+        expect(gridDestroySpy).toHaveBeenCalled();
+        expect(soDialogWrapper.grid).toBe(null);
+      });
+
+      it('set result count to 0', () => {
+        soDialogWrapper.prepare();
+        expect(soDialogWrapper.setResultCount).toHaveBeenCalledWith(0);
+      });
+
+      it('setTypes called before and after the ajax success', (done) => {
+        networkMock.onGet('/search_objects/types/10/123').reply(200, {
+          'data': {
+            'type1': 'Type Label 1',
+            'type2': 'Type Label 2',
+          },
+        });
+
+        soDialogWrapper.prepare();
+
+        expect(soDialogWrapper.setTypes.calls.argsFor(0)).toEqual([
+          [{ id: -1, text: 'Loading...', value: null }], false,
+        ]);
+
+        setTimeout(()=>{
+          expect(soDialogWrapper.setTypes.calls.argsFor(1)).toEqual([
+            [{id: 'all', text: 'All types'},
+              {id: 'type1', text: 'Type Label 1'},
+              {id: 'type2', text: 'Type Label 2'}],
+          ]);
+          done();
+        }, 0);
+      });
+
+      it('setTypes called after the ajax fail', (done) => {
+        networkMock.onGet('/search_objects/types/10/123').reply(500);
+
+        soDialogWrapper.prepare();
+
+        expect(soDialogWrapper.setTypes.calls.argsFor(0)).toEqual([
+          [{ id: -1, text: 'Loading...', value: null }], false,
+        ]);
+
+        setTimeout(()=>{
+          expect(soDialogWrapper.setTypes.calls.argsFor(1)).toEqual([
+            [{id: -1, text: 'Failed', value: null }], false,
+          ]);
+          done();
+        }, 0);
+      });
+    });
+  });
+
+  describe('showMessage', () => {
+    beforeEach(() => {
+      soDialogWrapper = new SearchObjectsDialogWrapper(
+        '<div class=\'search_objects_dialog\'></div>',
+        'soDialogTitle',
+        'search_objects',
+        jquerySpy,
+        pgBrowser,
+        alertifySpy,
+        dialogModelKlassSpy,
+        backform
+      );
+      soDialogWrapper.statusBar = document.createElement('div');
+      soDialogWrapper.statusBar.classList.add('d-none');
+      document.body.appendChild(soDialogWrapper.statusBar);
+    });
+
+    afterEach(() => {
+      document.body.removeChild(soDialogWrapper.statusBar);
+    });
+    it('when info message', ()=>{
+      soDialogWrapper.showMessage('locating', false);
+      expect(soDialogWrapper.statusBar.classList.contains('d-none')).toBe(false);
+      expect(soDialogWrapper.statusBar.querySelector('.error-in-footer')).toBe(null);
+      expect(soDialogWrapper.statusBar.querySelector('.info-in-footer')).not.toBe(null);
+      expect(soDialogWrapper.statusBar.querySelector('.alert-text').innerHTML).toEqual('locating');
+    });
+
+    it('when error message', ()=>{
+      soDialogWrapper.showMessage('some error', true);
+      expect(soDialogWrapper.statusBar.classList.contains('d-none')).toBe(false);
+      expect(soDialogWrapper.statusBar.querySelector('.error-in-footer')).not.toBe(null);
+      expect(soDialogWrapper.statusBar.querySelector('.info-in-footer')).toBe(null);
+      expect(soDialogWrapper.statusBar.querySelector('.alert-text').innerHTML).toEqual('some error');
+    });
+
+    it('when no message', ()=>{
+      soDialogWrapper.showMessage(null);
+      expect(soDialogWrapper.statusBar.classList.contains('d-none')).toBe(true);
+    });
+  });
+
+  describe('function', () => {
+    beforeEach(() => {
+      soDialogWrapper = new SearchObjectsDialogWrapper(
+        '<div class=\'search_objects_dialog\'></div>',
+        'soDialogTitle',
+        'search_objects',
+        jquerySpy,
+        pgBrowser,
+        alertifySpy,
+        dialogModelKlassSpy,
+        backform
+      );
+    });
+
+    it('updateDimOfSearchResult', ()=>{
+      soDialogWrapper.searchResultContainer = document.createElement('div');
+      soDialogWrapper.searchResult = document.createElement('div');
+      spyOn(soDialogWrapper.searchResultContainer, 'getBoundingClientRect').and.returnValue({height:100, width: 50});
+
+      soDialogWrapper.updateDimOfSearchResult();
+      expect(soDialogWrapper.searchResult.style.height).toEqual('100px');
+      expect(soDialogWrapper.searchResult.style.width).toEqual('50px');
+    });
+
+    it('setLoading', ()=>{
+      soDialogWrapper.loader = document.createElement('div');
+      soDialogWrapper.loader.innerHTML = `
+        <div class="pg-sp-text"></div>
+      `;
+
+      soDialogWrapper.setLoading('loading');
+      expect(soDialogWrapper.loader.classList.contains('d-none')).toBe(false);
+      expect(soDialogWrapper.loader.querySelector('.pg-sp-text').innerHTML).toEqual('loading');
+
+      soDialogWrapper.setLoading(null);
+      expect(soDialogWrapper.loader.classList.contains('d-none')).toBe(true);
+    });
+
+    it('searchBtnEnabled', ()=>{
+      soDialogWrapper.searchBtn = document.createElement('button');
+
+      soDialogWrapper.searchBtnEnabled(true);
+      expect(soDialogWrapper.searchBtn.disabled).toEqual(false);
+      expect(soDialogWrapper.searchBtnEnabled()).toEqual(true);
+
+      soDialogWrapper.searchBtnEnabled(false);
+      expect(soDialogWrapper.searchBtn.disabled).toEqual(true);
+      expect(soDialogWrapper.searchBtnEnabled()).toEqual(false);
+    });
+
+    it('searchBoxVal', ()=>{
+      soDialogWrapper.searchBox = document.createElement('input');
+      soDialogWrapper.searchBoxVal('abc');
+      expect(soDialogWrapper.searchBox.value).toEqual('abc');
+      expect(soDialogWrapper.searchBoxVal()).toEqual('abc');
+    });
+
+    it('typesVal', ()=>{
+      soDialogWrapper.typesSelect = document.createElement('select');
+      let opt = document.createElement('option');
+      opt.appendChild( document.createTextNode('Some type') );
+      opt.value = 'sometype';
+      soDialogWrapper.typesSelect.appendChild(opt);
+
+      soDialogWrapper.typesVal('sometype');
+      expect(soDialogWrapper.typesSelect.value).toEqual('sometype');
+      expect(soDialogWrapper.typesVal()).toEqual('sometype');
+    });
+
+    it('setGridData', ()=>{
+      soDialogWrapper.dataview = jasmine.createSpyObj('dataview', ['setItems']);
+      soDialogWrapper.setGridData([{id:'somedata'}]);
+      expect(soDialogWrapper.dataview.setItems).toHaveBeenCalled();
+    });
+
+    it('onDialogResize', ()=>{
+      soDialogWrapper.grid = jasmine.createSpyObj('grid', ['autosizeColumns', 'resizeCanvas']);
+      spyOn(soDialogWrapper, 'updateDimOfSearchResult');
+
+      soDialogWrapper.onDialogResize();
+      expect(soDialogWrapper.updateDimOfSearchResult).toHaveBeenCalled();
+      expect(soDialogWrapper.grid.resizeCanvas).toHaveBeenCalled();
+      expect(soDialogWrapper.grid.autosizeColumns).toHaveBeenCalled();
+    });
+
+    it('onDialogShow', (done)=>{
+      spyOn(soDialogWrapper, 'prepareGrid').and.callFake(function() {
+        this.grid = jasmine.createSpyObj('grid', ['init']);
+      });
+
+      spyOn(soDialogWrapper, 'focusOnDialog');
+      spyOn(soDialogWrapper, 'updateDimOfSearchResult');
+      spyOn(soDialogWrapper, 'setGridData');
+      spyOn(soDialogWrapper, 'onDialogResize');
+
+
+      soDialogWrapper.onDialogShow();
+      setTimeout(()=>{
+        expect(soDialogWrapper.prepareGrid).toHaveBeenCalled();
+        expect(soDialogWrapper.focusOnDialog).toHaveBeenCalled();
+        expect(soDialogWrapper.setGridData).toHaveBeenCalledWith([]);
+        expect(soDialogWrapper.onDialogResize).toHaveBeenCalled();
+        done();
+      }, 750);
+    });
+
+    context('getCollNode', ()=>{
+      it('type have same coll node', ()=>{
+        let collNode = soDialogWrapper.getCollNode('sometype');
+        expect(collNode.type).toEqual('coll-sometype');
+      });
+
+      it('type does not same coll node', ()=>{
+        let collNode = soDialogWrapper.getCollNode('someothertype');
+        expect(collNode.type).toEqual('coll-sometype');
+      });
+
+      it('type does not have coll node at all', ()=>{
+        let collNode = soDialogWrapper.getCollNode('database');
+        expect(collNode).toBe(null);
+      });
+    });
+
+    it('finaliseData', ()=>{
+      spyOn(soDialogWrapper, 'translateSearchObjectsPath').and.returnValue(['disp/path', 'id/path']);
+      let data = soDialogWrapper.finaliseData({
+        name: 'objname',
+        type: 'sometype',
+        type_label: 'Some types coll',
+        path: ':some.123:/path',
+        show_node: true,
+      });
+      expect(data).toEqual({
+        id: 'id/path',
+        icon: 'icon-sometype',
+        name: 'objname',
+        type: 'sometype',
+        type_label: 'Some types coll',
+        path: 'disp/path',
+        id_path: 'id/path',
+        show_node: true,
+      });
+    });
+
+    context('translateSearchObjectsPath', ()=>{
+      let path = null, catalog_level = null;
+      beforeEach(()=>{
+        pgBrowser.Nodes = {
+          'server_group': {
+            type:'server_group',
+            label: 'Server group',
+          },
+          'server': {
+            type:'server',
+            label: 'Server',
+          },
+          'coll-database': {
+            type:'coll-database',
+            label: 'Databases',
+          },
+          'database': {
+            type:'database',
+            label: 'Database',
+          },
+          'coll-schema': {
+            type:'coll-schema',
+            label: 'Schemas',
+          },
+          'schema': {
+            type:'schema',
+            label: 'Schema',
+          },
+          'coll-table': {
+            type:'coll-table',
+            label: 'Tables',
+          },
+          'table': {
+            type:'table',
+            label: 'Table',
+          },
+          'sometype': {
+            type:'sometype',
+            label: 'Some type',
+            collection_type: 'coll-table',
+          },
+          'coll-catalog': {
+            type:'coll-catalog',
+            label: 'Catalogs',
+          },
+          'catalog': {
+            type:'catalog',
+            label: 'Catalog',
+          },
+          'coll-catalog_object': {
+            type:'coll-catalog_object',
+            label: 'Catalog Objects',
+          },
+          'catalog_object': {
+            type:'catalog_object',
+            label: 'catalog object',
+          },
+        };
+
+        soDialogWrapper.treeInfo = {
+          'server_group': {'id': 'server_group/1', '_id': 1},
+          'server': {'id': 'server/3', '_id': 3},
+          'database': {'id': 'database/18456', '_id': 18456},
+        };
+      });
+      it('regular schema', ()=>{
+        path = ':schema.2200:/test_db/:table.2604:/sampletab';
+        catalog_level = 'N';
+
+        let retVal = soDialogWrapper.translateSearchObjectsPath(path, catalog_level);
+        expect(retVal).toEqual([
+          'Schemas/test_db/Tables/sampletab',
+          ['server_group/1','server/3','coll-database/3','database/18456','coll-schema/18456','schema/2200','coll-table/2200','table/2604'],
+        ]);
+      });
+
+      context('catalog schema', ()=>{
+        it('with db support', ()=>{
+          path = ':schema.11:/PostgreSQL Catalog (pg_catalog)/:table.2604:/pg_class';
+          catalog_level = 'D';
+
+          let retVal = soDialogWrapper.translateSearchObjectsPath(path, catalog_level);
+          expect(retVal).toEqual([
+            'Catalogs/PostgreSQL Catalog (pg_catalog)/Tables/pg_class',
+            ['server_group/1','server/3','coll-database/3','database/18456','coll-catalog/18456','catalog/11','coll-table/11','table/2604'],
+          ]);
+        });
+
+        it('with object support only', ()=>{
+          path = ':schema.11:/ANSI (information_schema)/:table.2604:/attributes';
+          catalog_level = 'O';
+
+          let retVal = soDialogWrapper.translateSearchObjectsPath(path, catalog_level);
+          expect(retVal).toEqual([
+            'Catalogs/ANSI (information_schema)/Catalog Objects/attributes',
+            ['server_group/1','server/3','coll-database/3','database/18456','coll-catalog/18456','catalog/11','coll-catalog_object/11','catalog_object/2604'],
+          ]);
+        });
+      });
+    });
+  });
+});
diff --git a/web/regression/javascript/tree/tree_fake.js b/web/regression/javascript/tree/tree_fake.js
index c0c17796a..f476bb272 100644
--- a/web/regression/javascript/tree/tree_fake.js
+++ b/web/regression/javascript/tree/tree_fake.js
@@ -41,6 +41,9 @@ export class TreeFake extends Tree {
     this.aciTreeToOurTreeTranslator = {};
     this.aciTreeApi = jasmine.createSpyObj(
       'ACITreeApi', ['setInode', 'unload', 'deselect', 'select']);
+    this.aciTreeApi.unload.and.callFake(function(domNode, config) {
+      config.success();
+    });
   }
 
   addNewNode(id, data, domNode, path) {
diff --git a/web/regression/javascript/tree/tree_spec.js b/web/regression/javascript/tree/tree_spec.js
index bb607796c..038fcc24c 100644
--- a/web/regression/javascript/tree/tree_spec.js
+++ b/web/regression/javascript/tree/tree_spec.js
@@ -246,39 +246,70 @@ describe('tree tests', () => {
 
         tree.aciTreeApi = jasmine.createSpyObj(
           'ACITreeApi', ['setInode', 'unload', 'deselect', 'select']);
+        tree.aciTreeApi.unload.and.callFake((domNode, config) => {
+          config.success();
+        });
       });
 
-      it('reloads the node and its children', () => {
-        level2.reload(tree);
-        expect(tree.findNodeByDomElement([{id: 'level2'}])).toEqual(level2);
+      it('reloads the node and its children', (done) => {
+        level2.reload(tree)
+          .then(()=>{
+            expect(tree.findNodeByDomElement([{id: 'level2'}])).toEqual(level2);
+            done();
+          })
+          .catch((error)=>{
+            fail(error);
+          });
       });
 
-      it('does not reload the children of node', () => {
-        level2.reload(tree);
-        expect(tree.findNodeByDomElement([{id: 'level3'}])).toBeNull();
+      it('does not reload the children of node', (done) => {
+        level2.reload(tree)
+          .then(()=>{
+            expect(tree.findNodeByDomElement([{id: 'level3'}])).toBeNull();
+            done();
+          })
+          .catch((error)=>{
+            fail(error);
+          });
       });
 
       it('select the node', (done) => {
-        level2.reload(tree);
-        setTimeout(() => {
-          expect(tree.selected()).toEqual([{id: 'level2'}]);
-          done();
-        }, 20);
+        level2.reload(tree)
+          .then(()=>{
+            setTimeout(() => {
+              expect(tree.selected()).toEqual([{id: 'level2'}]);
+              done();
+            }, 20);
+          })
+          .catch((error)=>{
+            fail(error);
+          });
       });
 
       describe('ACITree specific', () => {
-        it('sets the current node as a Inode, changing the Icon back to +', () => {
-          level2.reload(tree);
-          expect(tree.aciTreeApi.setInode).toHaveBeenCalledWith([{id: 'level2'}]);
+        it('sets the current node as a Inode, changing the Icon back to +', (done) => {
+          level2.reload(tree)
+            .then(()=>{
+              expect(tree.aciTreeApi.setInode).toHaveBeenCalledWith([{id: 'level2'}]);
+              done();
+            })
+            .catch((error)=>{
+              fail(error);
+            });
         });
 
         it('deselect the node and selects it again to trigger ACI tree' +
           ' events', (done) => {
-          level2.reload(tree);
-          setTimeout(() => {
-            expect(tree.aciTreeApi.deselect).toHaveBeenCalledWith([{id: 'level2'}]);
-            done();
-          }, 20);
+          level2.reload(tree)
+            .then(()=>{
+              setTimeout(() => {
+                expect(tree.aciTreeApi.deselect).toHaveBeenCalledWith([{id: 'level2'}]);
+                done();
+              }, 20);
+            })
+            .catch((error)=>{
+              fail(error);
+            });
         });
       });
     });
@@ -292,17 +323,32 @@ describe('tree tests', () => {
         level2 = tree.addNewNode('level2', {data: 'data'}, ['<li>level2</li>'], ['level1']);
         tree.addNewNode('level3', {data: 'more data'}, ['<li>level3</li>'], ['level1', 'level2']);
         tree.aciTreeApi = jasmine.createSpyObj('ACITreeApi', ['unload']);
+        tree.aciTreeApi.unload.and.callFake((domNode, config) => {
+          config.success();
+        });
       });
 
-      it('unloads the children of the current node', () => {
-        level2.unload(tree);
-        expect(tree.findNodeByDomElement([{id: 'level2'}])).toEqual(level2);
-        expect(tree.findNodeByDomElement([{id: 'level3'}])).toBeNull();
+      it('unloads the children of the current node', (done) => {
+        level2.unload(tree)
+          .then(()=>{
+            expect(tree.findNodeByDomElement([{id: 'level2'}])).toEqual(level2);
+            expect(tree.findNodeByDomElement([{id: 'level3'}])).toBeNull();
+            done();
+          })
+          .catch((error)=>{
+            fail(error);
+          });
       });
 
-      it('calls unload on the ACI Tree', () => {
-        level2.unload(tree);
-        expect(tree.aciTreeApi.unload).toHaveBeenCalledWith(['<li>level2</li>']);
+      it('calls unload on the ACI Tree', (done) => {
+        level2.unload(tree)
+          .then(()=>{
+            expect(tree.aciTreeApi.unload).toHaveBeenCalledWith(['<li>level2</li>'], jasmine.any(Object));
+            done();
+          })
+          .catch((error)=>{
+            fail(error);
+          });
       });
     });
   });
diff --git a/web/webpack.config.js b/web/webpack.config.js
index 9fd0a32e9..29811388a 100644
--- a/web/webpack.config.js
+++ b/web/webpack.config.js
@@ -494,7 +494,8 @@ module.exports = [{
         ',pgadmin.tools.debugger.controller' +
         ',pgadmin.tools.debugger.direct' +
         ',pgadmin.node.pga_job' +
-        ',pgadmin.tools.schema_diff',
+        ',pgadmin.tools.schema_diff' +
+        ',pgadmin.tools.search_objects',
       },
     }, {
       test: require.resolve('snapsvg'),
diff --git a/web/webpack.shim.js b/web/webpack.shim.js
index a5c73805a..0587d0498 100644
--- a/web/webpack.shim.js
+++ b/web/webpack.shim.js
@@ -281,6 +281,8 @@ var webpackShimConfig = {
     'pgadmin.tools.restore': path.join(__dirname, './pgadmin/tools/restore/static/js/restore'),
     'pgadmin.tools.schema_diff': path.join(__dirname, './pgadmin/tools/schema_diff/static/js/schema_diff'),
     'pgadmin.tools.schema_diff_ui': path.join(__dirname, './pgadmin/tools/schema_diff/static/js/schema_diff_ui'),
+    'pgadmin.tools.search_objects': path.join(__dirname, './pgadmin/tools/search_objects/static/js/search_objects'),
+    'pgadmin.search_objects': path.join(__dirname, './pgadmin/tools/search_objects/static/js'),
     'pgadmin.tools.user_management': path.join(__dirname, './pgadmin/tools/user_management/static/js/user_management'),
     'pgadmin.user_management.current_user': '/user_management/current_user',
     'slick.pgadmin.editors': path.join(__dirname, './pgadmin/tools/../static/js/slickgrid/editors'),
diff --git a/web/webpack.test.config.js b/web/webpack.test.config.js
index 70db29125..cfa8dda02 100644
--- a/web/webpack.test.config.js
+++ b/web/webpack.test.config.js
@@ -105,6 +105,7 @@ module.exports = {
       'pgadmin.browser.preferences': path.join(__dirname, './pgadmin/browser/static/js/preferences'),
       'pgadmin.browser.activity': path.join(__dirname, './pgadmin/browser/static/js/activity'),
       'bundled_codemirror': path.join(__dirname, './pgadmin/static/bundle/codemirror'),
+      'tools': path.join(__dirname, './pgadmin/tools/'),
     },
   },
 };
diff --git a/web/yarn.lock b/web/yarn.lock
index 677a2fffa..86c4ca04f 100644
--- a/web/yarn.lock
+++ b/web/yarn.lock
@@ -836,11 +836,6 @@ JSONStream@^1.0.3:
     jsonparse "^1.2.0"
     through ">=2.2.7 <3"
 
-abbrev@1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
-  integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
-
 accepts@~1.3.4, accepts@~1.3.7:
   version "1.3.7"
   resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
@@ -977,7 +972,7 @@ anymatch@~3.1.1:
     normalize-path "^3.0.0"
     picomatch "^2.0.4"
 
-aproba@^1.0.3, aproba@^1.1.1:
+aproba@^1.1.1:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
   integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
@@ -994,14 +989,6 @@ archive-type@^4.0.0:
   dependencies:
     file-type "^4.2.0"
 
-are-we-there-yet@~1.1.2:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
-  integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
-  dependencies:
-    delegates "^1.0.0"
-    readable-stream "^2.0.6"
-
 argparse@^1.0.6, argparse@^1.0.7:
   version "1.0.10"
   resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
@@ -2312,11 +2299,6 @@ coa@^2.0.2:
     chalk "^2.4.1"
     q "^1.1.2"
 
-code-point-at@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
-  integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
-
 codemirror@^5.50.0:
   version "5.52.0"
   resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.52.0.tgz#4dbd6aef7f0e63db826b9a23922f0c03ac75c0a7"
@@ -2453,11 +2435,6 @@ console-browserify@^1.1.0:
   resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
   integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
 
-console-control-strings@^1.0.0, console-control-strings@~1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
-  integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
-
 console-stream@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44"
@@ -2931,11 +2908,6 @@ deep-equal@^1.0.1:
     object-keys "^1.1.1"
     regexp.prototype.flags "^1.2.0"
 
-deep-extend@^0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
-  integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
-
 deep-is@~0.1.3:
   version "0.1.3"
   resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
@@ -2975,11 +2947,6 @@ defined@^1.0.0:
   resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
   integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
 
-delegates@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
-  integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
-
 depd@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
@@ -3013,11 +2980,6 @@ detect-file@^1.0.0:
   resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
   integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=
 
-detect-libc@^1.0.2:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
-  integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
-
 detective@^5.2.0:
   version "5.2.0"
   resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b"
@@ -3958,13 +3920,6 @@ fs-extra@^7.0.1:
     jsonfile "^4.0.0"
     universalify "^0.1.0"
 
-fs-minipass@^1.2.5:
-  version "1.2.7"
-  resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
-  integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
-  dependencies:
-    minipass "^2.6.0"
-
 fs-minipass@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
@@ -4010,20 +3965,6 @@ functional-red-black-tree@^1.0.1:
   resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
   integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
 
-gauge@~2.7.3:
-  version "2.7.4"
-  resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
-  integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
-  dependencies:
-    aproba "^1.0.3"
-    console-control-strings "^1.0.0"
-    has-unicode "^2.0.0"
-    object-assign "^4.1.0"
-    signal-exit "^3.0.0"
-    string-width "^1.0.1"
-    strip-ansi "^3.0.1"
-    wide-align "^1.1.0"
-
 geometry-interfaces@^1.1.4:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/geometry-interfaces/-/geometry-interfaces-1.1.4.tgz#9e82af6700ca639a675299f08e1f5fbc4a79d48d"
@@ -4289,11 +4230,6 @@ has-to-string-tag-x@^1.2.0:
   dependencies:
     has-symbol-support-x "^1.4.1"
 
-has-unicode@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
-  integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
-
 has-value@^0.3.1:
   version "0.3.1"
   resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
@@ -4445,7 +4381,7 @@ iconfont-webpack-plugin@^4.2.1:
     svgicons2svgfont "9.1.1"
     ttf2woff "2.0.1"
 
[email protected], iconv-lite@^0.4.24, iconv-lite@^0.4.4:
[email protected], iconv-lite@^0.4.24:
   version "0.4.24"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
   integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -4474,13 +4410,6 @@ iferr@^0.1.5:
   resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
   integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
 
-ignore-walk@^3.0.1:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37"
-  integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==
-  dependencies:
-    minimatch "^3.0.4"
-
 ignore@^3.3.5:
   version "3.3.10"
   resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
@@ -4685,7 +4614,7 @@ [email protected]:
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
   integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
 
-ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
+ini@^1.3.4, ini@^1.3.5:
   version "1.3.5"
   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
   integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
@@ -4922,13 +4851,6 @@ is-finite@^1.0.0:
   resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3"
   integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==
 
-is-fullwidth-code-point@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
-  integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
-  dependencies:
-    number-is-nan "^1.0.0"
-
 is-fullwidth-code-point@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
@@ -5830,14 +5752,6 @@ minipass-pipeline@^1.2.2:
   dependencies:
     minipass "^3.0.0"
 
-minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
-  version "2.9.0"
-  resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
-  integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
-  dependencies:
-    safe-buffer "^5.1.2"
-    yallist "^3.0.0"
-
 minipass@^3.0.0, minipass@^3.1.1:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5"
@@ -5845,13 +5759,6 @@ minipass@^3.0.0, minipass@^3.1.1:
   dependencies:
     yallist "^4.0.0"
 
-minizlib@^1.2.1:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
-  integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
-  dependencies:
-    minipass "^2.9.0"
-
 mississippi@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
@@ -6003,15 +5910,6 @@ neatequal@^1.0.0:
   dependencies:
     varstream "^0.3.2"
 
-needle@^2.2.1:
-  version "2.3.3"
-  resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.3.tgz#a041ad1d04a871b0ebb666f40baaf1fb47867117"
-  integrity sha512-EkY0GeSq87rWp1hoq/sH/wnTWgFVhYlnIkbJ0YJFfRgEFlz2RraCjBpFQ+vrEgEdp0ThfyHADmkChEhcb7PKyw==
-  dependencies:
-    debug "^3.2.6"
-    iconv-lite "^0.4.4"
-    sax "^1.2.4"
-
 [email protected]:
   version "0.6.2"
   resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
@@ -6056,22 +5954,6 @@ node-libs-browser@^2.2.1:
     util "^0.11.0"
     vm-browserify "^1.0.1"
 
-node-pre-gyp@*:
-  version "0.14.0"
-  resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83"
-  integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==
-  dependencies:
-    detect-libc "^1.0.2"
-    mkdirp "^0.5.1"
-    needle "^2.2.1"
-    nopt "^4.0.1"
-    npm-packlist "^1.1.6"
-    npmlog "^4.0.2"
-    rc "^1.2.7"
-    rimraf "^2.6.1"
-    semver "^5.3.0"
-    tar "^4.4.2"
-
 node-releases@^1.1.52:
   version "1.1.52"
   resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.52.tgz#bcffee3e0a758e92e44ecfaecd0a47554b0bcba9"
@@ -6079,14 +5961,6 @@ node-releases@^1.1.52:
   dependencies:
     semver "^6.3.0"
 
-nopt@^4.0.1:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48"
-  integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==
-  dependencies:
-    abbrev "1"
-    osenv "^0.1.4"
-
 normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
   version "2.5.0"
   resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@@ -6128,13 +6002,6 @@ normalize-url@^3.0.0:
   resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
   integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
 
-npm-bundled@^1.0.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b"
-  integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==
-  dependencies:
-    npm-normalize-package-bin "^1.0.1"
-
 npm-conf@^1.1.0:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9"
@@ -6143,20 +6010,6 @@ npm-conf@^1.1.0:
     config-chain "^1.1.11"
     pify "^3.0.0"
 
-npm-normalize-package-bin@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
-  integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
-
-npm-packlist@^1.1.6:
-  version "1.4.8"
-  resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e"
-  integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==
-  dependencies:
-    ignore-walk "^3.0.1"
-    npm-bundled "^1.0.1"
-    npm-normalize-package-bin "^1.0.1"
-
 npm-run-path@^2.0.0:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -6164,16 +6017,6 @@ npm-run-path@^2.0.0:
   dependencies:
     path-key "^2.0.0"
 
-npmlog@^4.0.2:
-  version "4.1.2"
-  resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
-  integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
-  dependencies:
-    are-we-there-yet "~1.1.2"
-    console-control-strings "~1.1.0"
-    gauge "~2.7.3"
-    set-blocking "~2.0.0"
-
 nth-check@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
@@ -6191,11 +6034,6 @@ num2fraction@^1.2.2:
   resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
   integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
 
-number-is-nan@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
-  integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
-
 object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
@@ -6347,11 +6185,6 @@ os-filter-obj@^2.0.0:
   dependencies:
     arch "^2.1.0"
 
-os-homedir@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
-  integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
-
 os-locale@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
@@ -6366,19 +6199,11 @@ os-shim@^0.1.3:
   resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917"
   integrity sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=
 
-os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
+os-tmpdir@~1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
   integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
 
-osenv@^0.1.4:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
-  integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
-  dependencies:
-    os-homedir "^1.0.0"
-    os-tmpdir "^1.0.0"
-
 outpipe@^1.1.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/outpipe/-/outpipe-1.1.1.tgz#50cf8616365e87e031e29a5ec9339a3da4725fa2"
@@ -7266,16 +7091,6 @@ raw-loader@^1.0.0:
     loader-utils "^1.1.0"
     schema-utils "^1.0.0"
 
-rc@^1.2.7:
-  version "1.2.8"
-  resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
-  integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
-  dependencies:
-    deep-extend "^0.6.0"
-    ini "~1.3.0"
-    minimist "^1.2.0"
-    strip-json-comments "~2.0.1"
-
 read-only-stream@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0"
@@ -7300,7 +7115,7 @@ read-pkg@^1.0.0:
     normalize-package-data "^2.3.2"
     path-type "^1.0.0"
 
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
   version "2.3.7"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
   integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
@@ -7583,7 +7398,7 @@ [email protected]:
   dependencies:
     glob "^7.1.3"
 
-rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1:
+rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.3, rimraf@^2.7.1:
   version "2.7.1"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
   integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
@@ -7782,7 +7597,7 @@ [email protected]:
     parseurl "~1.3.3"
     send "0.17.1"
 
-set-blocking@^2.0.0, set-blocking@~2.0.0:
+set-blocking@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
   integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
@@ -8219,15 +8034,6 @@ strict-uri-encode@^1.0.0:
   resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
   integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
 
-string-width@^1.0.1, "string-width@^1.0.2 || 2":
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
-  integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
-  dependencies:
-    code-point-at "^1.0.0"
-    is-fullwidth-code-point "^1.0.0"
-    strip-ansi "^3.0.0"
-
 string-width@^2.1.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
@@ -8290,7 +8096,7 @@ string_decoder@~1.1.1:
   dependencies:
     safe-buffer "~5.1.0"
 
-strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+strip-ansi@^3.0.0:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
   integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
@@ -8337,7 +8143,7 @@ strip-indent@^1.0.1:
   dependencies:
     get-stdin "^4.0.1"
 
-strip-json-comments@^2.0.1, strip-json-comments@~2.0.1:
+strip-json-comments@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
   integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
@@ -8500,19 +8306,6 @@ tar-stream@^1.5.2:
     to-buffer "^1.1.1"
     xtend "^4.0.0"
 
-tar@^4.4.2:
-  version "4.4.13"
-  resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
-  integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
-  dependencies:
-    chownr "^1.1.1"
-    fs-minipass "^1.2.5"
-    minipass "^2.8.6"
-    minizlib "^1.2.1"
-    mkdirp "^0.5.0"
-    safe-buffer "^5.1.2"
-    yallist "^3.0.3"
-
 temp-dir@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"
@@ -9183,13 +8976,6 @@ which@^1.2.1, which@^1.2.14, which@^1.2.9, which@^1.3.1:
   dependencies:
     isexe "^2.0.0"
 
-wide-align@^1.1.0:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
-  integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
-  dependencies:
-    string-width "^1.0.2 || 2"
-
 wkx@^0.4.6:
   version "0.4.8"
   resolved "https://registry.yarnpkg.com/wkx/-/wkx-0.4.8.tgz#a092cf088d112683fdc7182fd31493b2c5820003"
@@ -9276,7 +9062,7 @@ yallist@^2.1.2:
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
   integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
 
-yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
+yallist@^3.0.2:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
   integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==


^ permalink  raw  reply  [nested|flat] 12+ messages in thread

* Re: [pgAdmin][RM2172] Search Objects Functionality
@ 2020-04-06 09:52  Khushboo Vashi <[email protected]>
  parent: Aditya Toshniwal <[email protected]>
  0 siblings, 1 reply; 12+ messages in thread

From: Khushboo Vashi @ 2020-04-06 09:52 UTC (permalink / raw)
  To: Aditya Toshniwal <[email protected]>; +Cc: pgadmin-hackers; Akshay Joshi <[email protected]>

Hi Aditya,

Please resend the rebased patch, it does not apply.

Thanks,
Khushboo

On Fri, Apr 3, 2020 at 2:44 PM Aditya Toshniwal <
[email protected]> wrote:

> Hi Hackers,
>
> Attached is the updated patch.
> With this,
> 1) I've displayed the rows count detail at the bottom of the dialog. This
> will help in both cases, when there are rows and when there are none.
> 2) As discussed, a user can now apply object types dropdown filter on
> already loaded data.
> 3) I've not made changes for the multilevel partition icon because it
> would be too much to do for an icon. We're already showing the type name in
> the grid. Adding extra SQL joins and making the query slower for the icon
> is not desirable.
> 4) Fixed some gettext issues as mentioned in the review.
>
> Please review.
>
>
> On Thu, Apr 2, 2020 at 5:54 PM Aditya Toshniwal <
> [email protected]> wrote:
>
>> Hi Khushboo,
>>
>> On Thu, Apr 2, 2020 at 4:49 PM Khushboo Vashi <
>> [email protected]> wrote:
>>
>>>
>>>
>>> On Thu, Apr 2, 2020 at 4:30 PM Aditya Toshniwal <
>>> [email protected]> wrote:
>>>
>>>> Hi Khushboo,
>>>>
>>>> Thank you for reviewing.
>>>>
>>>>
>>>> On Thu, Apr 2, 2020 at 4:09 PM Khushboo Vashi <
>>>> [email protected]> wrote:
>>>>
>>>>> Hi Aditya,
>>>>>
>>>>> Review comments:
>>>>>
>>>>> *UI:*
>>>>>
>>>>> 1. When no object is found, the default message should be given,
>>>>> currently no message displayed.
>>>>> 2. Can we have a tooltip on the row "Double click to locate the object
>>>>> in the browser" ?
>>>>> 3. Full stop is missing in the message column objects are disabled in
>>>>> the browser. You can enable them in the preferences dialog ( :D )
>>>>> and also, we should start the statement with the capital letter.
>>>>> 4. If possible, use the multilevel partition table symbol same as the
>>>>> browser tree.
>>>>> 5. gettext is missing from the search grid header.
>>>>>
>>>> I'll fix all above.
>>>>
>>>>> 6. Suggestion: The search button should be at the end (after type
>>>>> combobox).  The current position of the controls suggest that search for
>>>>> the objects and then filter it out but that's not the case.
>>>>>
>>>> I've actually kept the most frequently used controls together. The
>>>> probability of using the types filter is less and a user would generally go
>>>> for full search. This is how even we generally do. We search first and then
>>>> apply filter if required
>>>>
>>> Right, so type based search on slickgrid data would be useful.
>>>
>> 👍
>>
>>> After changing the type, we have to click on the search button.
>>>>> In the current positioning, we should fetch all the records from the
>>>>> backend and then filter those out depending on the type at the client side
>>>>> only, so that will reduce the server requests and slickgrid is efficient it
>>>>> do so.
>>>>>
>>>> I'll look into this. My only concern is the data may be outdated, but I
>>>> agree to filter in slickgrid on type change. The user can hit search again
>>>> if required.
>>>>
>>>
>>>>> *Backend:*
>>>>>
>>>>> 1. We do have the list of blueprint, so we can use that list instead
>>>>> of taking the hard coe list in the init method of SearchObjectsHelper
>>>>> class.
>>>>>
>>>> The reason is, we do not support all objects for search objects. Only
>>>> objects under a database are supported. The probability of node type change
>>>> is very less.
>>>>
>>> True but we can maintain the skip list (which would be less) and we do
>>> have bluprint start with NODE, so it will be easier to fetch.
>>>
>> I would prefer the "in" list rather than "skip" list. Each time a new
>> node is added to pgAdmin, we will have to update the skip list in search
>> objects. With the "in" list, search objects has better control.
>>
>>> 2. While searching the object, we create an object of SearchObjectsHelper
>>>>> on each request. We can create it once while initializing and utilize it on
>>>>> every search.
>>>>>
>>>> The intention is to keep SearchObjectsHelper stateless. The object is
>>>> created based on the request data and it is easier to maintain
>>>> independently.
>>>>
>>>>>
>>>>> Note: The functionality is working fine.
>>>>>
>>>> Great. Thanks.
>>>>
>>>>>
>>>>> Thanks,
>>>>> Khushboo
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Apr 2, 2020 at 9:31 AM Khushboo Vashi <
>>>>> [email protected]> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Apr 1, 2020 at 6:00 PM Akshay Joshi <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi Khushboo,
>>>>>>>
>>>>>>> Can you please review it.
>>>>>>>
>>>>>> I am on it.
>>>>>>
>>>>>>>
>>>>>>> On Mon, Mar 30, 2020 at 2:39 PM Aditya Toshniwal <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hi Hackers,
>>>>>>>>
>>>>>>>> Attached is the patch to implement search objects functionality in
>>>>>>>> pgadmin.
>>>>>>>> The feature will allow a user to search for any object in a
>>>>>>>> database.
>>>>>>>> Highlights of the feature:
>>>>>>>> 1) Search any object with user input text with at least 3
>>>>>>>> characters.
>>>>>>>> 2) Search can be done on a specific object type by selecting from
>>>>>>>> the types dropdown.
>>>>>>>> 3) The search results grid will show object name, object type and
>>>>>>>> the object path on the browser tree. On double clicking the record, it will
>>>>>>>> locate that object on the browser tree. The columns object name and type
>>>>>>>> are sortable.
>>>>>>>> 4) The object nodes which are disabled (hidden) using preferences
>>>>>>>> will not be visible in the types dropdown. However, in the case of all
>>>>>>>> types, the search records will be visible for those types greyed out.
>>>>>>>> 5) You can also access search objects dialog using the button on
>>>>>>>> the browser toolbar.
>>>>>>>>
>>>>>>>> Python and JS test cases added. Docs updated.
>>>>>>>> Please review.
>>>>>>>>
>>>>>>>> --
>>>>>>>> Thanks and Regards,
>>>>>>>> Aditya Toshniwal
>>>>>>>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> *Thanks & Regards*
>>>>>>> *Akshay Joshi*
>>>>>>>
>>>>>>> *Sr. Software Architect*
>>>>>>> *EnterpriseDB Software India Private Limited*
>>>>>>> *Mobile: +91 976-788-8246*
>>>>>>>
>>>>>>
>>>>
>>>> --
>>>> Thanks and Regards,
>>>> Aditya Toshniwal
>>>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>>>> "Don't Complain about Heat, Plant a TREE"
>>>>
>>>
>>
>> --
>> Thanks and Regards,
>> Aditya Toshniwal
>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>> "Don't Complain about Heat, Plant a TREE"
>>
>
>
> --
> Thanks and Regards,
> Aditya Toshniwal
> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
> "Don't Complain about Heat, Plant a TREE"
>


^ permalink  raw  reply  [nested|flat] 12+ messages in thread

* Re: [pgAdmin][RM2172] Search Objects Functionality
@ 2020-04-06 10:21  Aditya Toshniwal <[email protected]>
  parent: Khushboo Vashi <[email protected]>
  0 siblings, 1 reply; 12+ messages in thread

From: Aditya Toshniwal @ 2020-04-06 10:21 UTC (permalink / raw)
  To: pgadmin-hackers; +Cc: Akshay Joshi <[email protected]>; Khushboo Vashi <[email protected]>

Hi Hackers,

Please find the attached rebased patch.

On Mon, Apr 6, 2020 at 3:22 PM Khushboo Vashi <
[email protected]> wrote:

> Hi Aditya,
>
> Please resend the rebased patch, it does not apply.
>
> Thanks,
> Khushboo
>
> On Fri, Apr 3, 2020 at 2:44 PM Aditya Toshniwal <
> [email protected]> wrote:
>
>> Hi Hackers,
>>
>> Attached is the updated patch.
>> With this,
>> 1) I've displayed the rows count detail at the bottom of the dialog. This
>> will help in both cases, when there are rows and when there are none.
>> 2) As discussed, a user can now apply object types dropdown filter on
>> already loaded data.
>> 3) I've not made changes for the multilevel partition icon because it
>> would be too much to do for an icon. We're already showing the type name in
>> the grid. Adding extra SQL joins and making the query slower for the icon
>> is not desirable.
>> 4) Fixed some gettext issues as mentioned in the review.
>>
>> Please review.
>>
>>
>> On Thu, Apr 2, 2020 at 5:54 PM Aditya Toshniwal <
>> [email protected]> wrote:
>>
>>> Hi Khushboo,
>>>
>>> On Thu, Apr 2, 2020 at 4:49 PM Khushboo Vashi <
>>> [email protected]> wrote:
>>>
>>>>
>>>>
>>>> On Thu, Apr 2, 2020 at 4:30 PM Aditya Toshniwal <
>>>> [email protected]> wrote:
>>>>
>>>>> Hi Khushboo,
>>>>>
>>>>> Thank you for reviewing.
>>>>>
>>>>>
>>>>> On Thu, Apr 2, 2020 at 4:09 PM Khushboo Vashi <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi Aditya,
>>>>>>
>>>>>> Review comments:
>>>>>>
>>>>>> *UI:*
>>>>>>
>>>>>> 1. When no object is found, the default message should be given,
>>>>>> currently no message displayed.
>>>>>> 2. Can we have a tooltip on the row "Double click to locate the
>>>>>> object in the browser" ?
>>>>>> 3. Full stop is missing in the message column objects are disabled
>>>>>> in the browser. You can enable them in the preferences dialog ( :D )
>>>>>> and also, we should start the statement with the capital letter.
>>>>>> 4. If possible, use the multilevel partition table symbol same as the
>>>>>> browser tree.
>>>>>> 5. gettext is missing from the search grid header.
>>>>>>
>>>>> I'll fix all above.
>>>>>
>>>>>> 6. Suggestion: The search button should be at the end (after type
>>>>>> combobox).  The current position of the controls suggest that search for
>>>>>> the objects and then filter it out but that's not the case.
>>>>>>
>>>>> I've actually kept the most frequently used controls together. The
>>>>> probability of using the types filter is less and a user would generally go
>>>>> for full search. This is how even we generally do. We search first and then
>>>>> apply filter if required
>>>>>
>>>> Right, so type based search on slickgrid data would be useful.
>>>>
>>> 👍
>>>
>>>> After changing the type, we have to click on the search button.
>>>>>> In the current positioning, we should fetch all the records from the
>>>>>> backend and then filter those out depending on the type at the client side
>>>>>> only, so that will reduce the server requests and slickgrid is efficient it
>>>>>> do so.
>>>>>>
>>>>> I'll look into this. My only concern is the data may be outdated, but
>>>>> I agree to filter in slickgrid on type change. The user can hit search
>>>>> again if required.
>>>>>
>>>>
>>>>>> *Backend:*
>>>>>>
>>>>>> 1. We do have the list of blueprint, so we can use that list instead
>>>>>> of taking the hard coe list in the init method of SearchObjectsHelper
>>>>>> class.
>>>>>>
>>>>> The reason is, we do not support all objects for search objects. Only
>>>>> objects under a database are supported. The probability of node type change
>>>>> is very less.
>>>>>
>>>> True but we can maintain the skip list (which would be less) and we do
>>>> have bluprint start with NODE, so it will be easier to fetch.
>>>>
>>> I would prefer the "in" list rather than "skip" list. Each time a new
>>> node is added to pgAdmin, we will have to update the skip list in
>>> search objects. With the "in" list, search objects has better control.
>>>
>>>> 2. While searching the object, we create an object of SearchObjectsHelper
>>>>>> on each request. We can create it once while initializing and utilize it on
>>>>>> every search.
>>>>>>
>>>>> The intention is to keep SearchObjectsHelper stateless. The object is
>>>>> created based on the request data and it is easier to maintain
>>>>> independently.
>>>>>
>>>>>>
>>>>>> Note: The functionality is working fine.
>>>>>>
>>>>> Great. Thanks.
>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>> Khushboo
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Apr 2, 2020 at 9:31 AM Khushboo Vashi <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Apr 1, 2020 at 6:00 PM Akshay Joshi <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hi Khushboo,
>>>>>>>>
>>>>>>>> Can you please review it.
>>>>>>>>
>>>>>>> I am on it.
>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Mar 30, 2020 at 2:39 PM Aditya Toshniwal <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hi Hackers,
>>>>>>>>>
>>>>>>>>> Attached is the patch to implement search objects functionality in
>>>>>>>>> pgadmin.
>>>>>>>>> The feature will allow a user to search for any object in a
>>>>>>>>> database.
>>>>>>>>> Highlights of the feature:
>>>>>>>>> 1) Search any object with user input text with at least 3
>>>>>>>>> characters.
>>>>>>>>> 2) Search can be done on a specific object type by selecting from
>>>>>>>>> the types dropdown.
>>>>>>>>> 3) The search results grid will show object name, object type and
>>>>>>>>> the object path on the browser tree. On double clicking the record, it will
>>>>>>>>> locate that object on the browser tree. The columns object name and type
>>>>>>>>> are sortable.
>>>>>>>>> 4) The object nodes which are disabled (hidden) using preferences
>>>>>>>>> will not be visible in the types dropdown. However, in the case of all
>>>>>>>>> types, the search records will be visible for those types greyed out.
>>>>>>>>> 5) You can also access search objects dialog using the button on
>>>>>>>>> the browser toolbar.
>>>>>>>>>
>>>>>>>>> Python and JS test cases added. Docs updated.
>>>>>>>>> Please review.
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Thanks and Regards,
>>>>>>>>> Aditya Toshniwal
>>>>>>>>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> *Thanks & Regards*
>>>>>>>> *Akshay Joshi*
>>>>>>>>
>>>>>>>> *Sr. Software Architect*
>>>>>>>> *EnterpriseDB Software India Private Limited*
>>>>>>>> *Mobile: +91 976-788-8246*
>>>>>>>>
>>>>>>>
>>>>>
>>>>> --
>>>>> Thanks and Regards,
>>>>> Aditya Toshniwal
>>>>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>
>>>>
>>>
>>> --
>>> Thanks and Regards,
>>> Aditya Toshniwal
>>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>>> "Don't Complain about Heat, Plant a TREE"
>>>
>>
>>
>> --
>> Thanks and Regards,
>> Aditya Toshniwal
>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>> "Don't Complain about Heat, Plant a TREE"
>>
>

-- 
Thanks and Regards,
Aditya Toshniwal
pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
"Don't Complain about Heat, Plant a TREE"


Attachments:

  [application/octet-stream] RM2172_v3.patch (675.1K, 3-RM2172_v3.patch)
  download | inline diff:
diff --git a/docs/en_US/getting_started.rst b/docs/en_US/getting_started.rst
index 5b09c5b4c..2595505d2 100644
--- a/docs/en_US/getting_started.rst
+++ b/docs/en_US/getting_started.rst
@@ -64,6 +64,8 @@ display.  To open the *Preferences* dialog, select *Preferences* from the *File*
 for the dialog.  You can access additional Postgres help by navigating through
 the *Help* menu, and selecting the name of the resource that you wish to open.
 
+You can search for objects in the database using the :ref:`Search objects <search_objects>`
+
 .. toctree::
    :maxdepth: 2
 
@@ -74,6 +76,7 @@ the *Help* menu, and selecting the name of the resource that you wish to open.
    tree_control
    preferences
    keyboard_shortcuts
+   search_objects
 
 Before using pgAdmin to manage objects that reside on a server, you must define a
 connection to the server; for more information please see *Connecting to a Server*
diff --git a/docs/en_US/images/search_objects.png b/docs/en_US/images/search_objects.png
new file mode 100644
index 0000000000000000000000000000000000000000..950e813168a89fbd114a1852a2fc7d180f81df82
GIT binary patch
literal 188209
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

literal 0
HcmV?d00001

diff --git a/docs/en_US/images/toolbar.png b/docs/en_US/images/toolbar.png
index 19c4c574a905fb30ea1828b4825e85af7cdb0c0e..aac16b967b93b44576bf2a042b989aa296251648 100644
GIT binary patch
literal 42931
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%0D-NlnK%<oL#WUV3Obj&<*1=JUG#xkE)
zkjFT2Gi|CA5eW+^^TS+nn!<Z{cuz&WAB*%1>gelqO9|`%poZ~XyuF**dKg(*_<?>%
zT+i-1fe>*9@KVH@$`ftG9aST+am~v_woEcfC2Q{QPdT=<@+%|FqGpGN-j=$)mv*+w
z`+X-*jjV2{peIs%-!N>EUAPe>f>*vOYimYIjp%hN!mCpiH|h^2e94I_r&w`zNVN&H
z>zZm39RWjl!WGHPQv(=rs-Q?rjI8hxbB5K8fV#PTOGIyT`L7vpa>;(V<EPV5X*okq
z2rpsp9*Q8NCMx^il^EM8mkjfVdIGK_vxa#)K%QEPq4~a{rsKa#&TV<MpJ3hF33rD_
znVv>Y+@sF1=60u*Y$MqeHNwir7mad}$8c97Y2C^uR*E}VkVA?g_e+k`Cf=HTBJZ74
zx)??+JY73fiR}dGVBgWBYlpaKAb%;EwJ~;cH{2iQy_B_cjL+!^ybjP|=VH;exXw3|
zfB;#;vA3Y;7hNw=PBB&{U<!O`yAjT&WJDl&UYA+1Ad#F|?7Zm;Y$nktZQCoyaUdc-
zrAvBPm+#OkD9A1i3$ofttC*R5t}*p9iyy?}ubBz5In+$&W{`cYX)cJQ>Sq6lS(o#U
zpV$%Df_u_Q^>Ai|$U#}t_*LHl1N)R*0?b_X9Uf5a3wQGddUSP_k0sbwCEx3J=oJ|c
zozBQ{mE1@FqCM!dnLXO{GlSo2FD%8i1c9n!0JFc|IYN+e+CZnC+Vdf*fyMt^lD*Hl
z*p49D>#}}grin72n*p<Kht{EHE$k6yVTsE*L#?gvkWW~@o0Tg=>eFP&oQ-bWU}m-I
z1Jk<L6)AZ)CGebUd46Em0wX4P1d)WSwT~jj<EUsvJTW;2qSqY&NCZ>BynP}eHuafe
zpi0HuF`%xq<sm_yEjP`{4{wKnXd^;N5-orYgg#5wI|Fdl$x@JyOfG3H$nDckQ&y3#
zbb8|Kv*lXRYRC(1>g_Oh=8Ksu5Y?MxM{S@b?{hOyp#FGBS8^i0yPb8B>PMJQWGpU|
zEW=$%@}Q};PslxLSwsxkvwRV&0yAo1@6zlR+8haLT8W`nF@<b{)6m)>dXGLY$q8No
z6K%i>+m8oRH&W}lWT;N9MkzMDMsO4S(|7C9`$E*`7*QvgbG9a%9HK%^@dxb`OfQ~`
zK~r+7+S+ttPgm+GJQaVD$VrSZGtg-Qxuo4(PQ9T<YGME;K*-M?CARg@8vy0{8O3ya
zQ)Q|Dl8GS>ONx}XDUrsCXoL_v-^0O-b49HTGxB6cHAWNyed_{l<o=~Fn=>l8i(Jl}
zShz^Zw-&RaeiJMjMAkni(Kuz(-w@jmf=Bzcjif{=22G{BtkDr^*-sJNKO>P$wN`tj
zJ#(n@6zJOo=iBFy(O2X32XID+3w(WlCK6sDP{`selEn9Ve9~yFQw1h0kwkTr&-ljV
zq#x{b705jMDm}r>6X49w!L&UZk5%z-O%aPn)z;e}%@7K1F_hU@+%=z;Q^(gISdtjd
z__hM=i0NKp9?f`O4He2zvYuU>uuD7YgN;o<^+_Cg3M2LitrWu8!R}RiA<d%~7tB$8
zY>t1WzBBJ=KRJIinBNnDl=)bLmmC~EjXl||$J7xob56Tp1l)LK2*HPrSt%Ze+FX>y
zEad_AG7(?bDGA@KO?Ub2<)7O9=aCp2ABrRrl^bK;YlBP(1bl*)$cY_Ew`lQ>Mynh9
zQb<-Pb!`CYWd=R8BJ^c8BX7wjTu?R+uy1xoe)rIGkb;f}%2KxyVD?8S$7u+1vI>-&
zs(9~5LCYVXxkF7%0yAXfQ&M+*PW`fY><YKskMSGV3PJj@ZT(g)fi*WU2iw$<Tv8%p
zjo=4{J}NB?eSR$vAHHRfib0XXm!naBz$5I`QPhiK$4%oci-~QK2Td-ei9N-M#aJMm
zCq9qh2BL)&5(O{ABsh_fdF&}=(<tR+^8zTbHnSMxFf{t4JKkhcyoP=HQCFPQ4v^^5
zMA98EW>VnZ*WI0{hE!jLxk%bh`;gD=XWe0oD<m02h&Db6zsoO|4)foVBca9}6QNaL
zC%2{UeF;1C8}yv<@(JPQvC8cv?xMvZo5`SK&PSh&t&@xR667di_=R>cl|(&H5?5D>
z!1AUcpAt=nxpQsnnp-c1Rd^1O)z(ON;Q`_8M1<==aU&Mh?vj>{0X5rhk{=ympto>S
z&CthkkzRYd;daYl^i6hNzQj9AK~V8ww`2FuI|Uq)!#kr}5~f#AL&~bUFw7zGaMBSe
zv;{U;D5sS1UxzSGU(d=~kvH2&*r-fP=+|eQ(?A>O<F5N)QkLLtc)<dPd5oI$q60>6
zK12GM0j~+!Xc7g=E9=ck=3Tc~{ldEJ_JxSQDEsyN+_uOU3Gu3zcP>*kR`HWwgGEa5
z4n9SKt*0vwhJ4L#SE(Bbvwv_9>%_DZVRCZNDf->zTD3bQxNaa$r0-mYPeO8xoN~gA
zIc27)krA|?n-j+^^}L3H`mpNS%vU-^`e-76tZJuCA?H|S;+3vv?*u*tq^iNn=56gK
z{Zb4Aw_8l$dhN@$kXFUwW(c!1xmp1Qd{@(wEe&DYN@8kdX_0()`F4wi;OJ(?_x@&x
zZpBYcOlWczSuo~^vd5WUmo9)6CJA^XJ|P0Ckt-Y0leU51*0<{rVhafBtuP276AQ22
zo!JLNVjeF?2=3o#eK&zzOy1m_7&1kM3jRcb1P@XvjAVc3!ww%-g#WV7=2gG$HR`Mi
z_HFVIPGRO)hxET?ahsqpQEpL~evs8Y3H-(8J53Y`7ur6L(B9<xb{+|MS4$=WJhZ;U
zh|G(c!tBdqZ5yQ3?U1{FpTJ@x;MYMq<b~!s0GeLAsmmy9pe*7D>57F<DHzwO7#ViL
zo?OIzxpoK6At^0*FisBr63aA4e{$yJjY)({Jyr(8)O{(I5wdg1^Cgr)P8J2?4K)nC
zO=LSM0X{F8slv0rmRuh1T+$<<SXmnCbepZa_`deMZXqQSKZAWwL;_fl-u>Tv@@1h|
z;85DvnLzV513V03K+n6>f;4^I26)V*M&W~aNJ`DnoF9H&FLQx983a11Ly{>EPu_ox
z2Oikkr+-@AUKtR1g>M8MD8{?LyLjDYnxv|8KkEvrA&a8z^nu=fHW4}~hFEb&c+qHf
z4OEz3&8m7n#7!-~M)ZAbyJ&TsU=2^tY|ddE{TS4*AmtY4TaCXD#9Smk$-#qm-awg~
zJ{T$0+4FJjn(x!7Pq&F?lHI^^R^8=?Cij{RELZieydxHXu3ibS(+h8$-_hb9bV{CV
zHTTS@B@jJiXqwG|<Tt#X<WSo_8CX8Tn+CXtjoTMX(nn3QxUktqM{ND+=Sk%CeGzN8
zlw`Ej)`@7++dcnw@n8dFmaXJIpn~5W-faPtWCI3Kn<!U410>k(9pkI0@RmV#R9h)}
ztv(7yF$S4^bX?7P(RS2H?BN|}EfgvwnS9@SgG+e8s%8?b;5#x-Z|G2=xt{P@pdx}-
zyywoe>f>@VN!NO(3s^mK@@!6a4CB|FwUS6&K}bM}nm%Ueo5=ad`qhm^$IKuw*82)n
zbf4l!0A?wDWJ1JV9|>UO#q?A^Q%Y^zqglDM<>g0rEhainHH<;_J|7M(vGH~!w#r5K
zynYqhI^v(Bx0N}!uu&jl#KnGFsaJNt|C&I-+MUuE-^s}Fq^F`uMii>}JnW>Fc0ylP
zL4}~a5uyrGAmEoos9W2X5674g$N#!*nmST;bjAy$>7%#v>+}2)lNgZq9`kqttMdwf
zM$0C9idMh-`bCnZ?_v1IK){vFMIEQaK(-<#bR*;`pp(Jf-@Qz+<Eyr9b^H|Qw6sF0
za5OYZej&y!eclCw04AJ5&CU`Rm8OP5gx$|V7O%?m_DZgm?j7EFl(zH(^7}pXrSLm}
z%aG@Ux5Dia5QwUXc?;qkz|{!(8J5o#`CcsOoOF1d8m%c27-H%s{u70FEc7J`QA|wj
z6cHQ=|4?m38YzNdKMS_wXQqx^Rx*Aj(emm2Z`=-sa$mAu$~|#;P}jMb1`EO}i#)As
z2s(sfNHH2EEa$EI`}&VlL4(O@OMfIFO)4X?LZg{$le<e^g9$=^w@@*|+V`X7<imxw
zzLY@4-d4!{n$BkRoIxLA<7W`c2{kH)S%zxh+H-O&Tn3av^UcwqcWJ{ejbi!-&V5;A
zHqB{3J@8q$BeddfDOYAuo)48T>y_jw-g^1OLw%YwjaW^?uJr@#z0zkHh7~%oJ;Wp`
z)CeY_Ensa0Ej9Fo2bPma&ITG8eg9|snQJV&G+Eu$=)+8ZBLIQYB2;MBOD802;j4U!
zLKRtGa!t5R!zy=%aEmcG5E8!TsUJc^4e~S2WM*zd4Li9#JE8vtY}R$No)Cf<{pN=J
z6O<p#Xome~eW!jL=#CQB!P1FK2xeUDWfYI3j&8lamkiJwH1vW<vxBf1zHauCln3pV
zZA!sWT`lIA4l+~?7}dqIcs>R3G)uz{UYJb^nB!*df)Y=V_v}K>g-s&CdrPs`sWKJX
zUbrm8`LtVV!LKvdr>dH1ZG@&-iiO)h+m_Ab60l~spDJh@+juIB9>w*=`KW{p;Z1i(
zv+KoVSeL$o+Vw9g(FJ_52o>%!cn^<j_(~I3v(=12Bcqz)e9V01Z*~1uAHQ@A3RT#s
zU~+DFAr8%U2^TfO>J`&+*t+vc@YX!hjmEYSspzQF4Z6F88L+v5He-6JaH${6Yd4Mz
zv-|o0<ym}Of35=Y>03&Ee7W2|s7Df$Dh!*Bi6ENNSTi>()TCN?YwM>6P5Ocrt8j(`
z#7qkuXa)y!z&B(OZ9z3=3|zhSIqYIS!1m|A?YK##u<F6^%QM*qW%Q`f2VblZ#w<t!
z;IFJnj&<G}^TTk(47JRKJ-=`w*uQ$d0^maIl_Xp{Gb9`!_ocqMX=o!et)pn(!zSd2
z5DrL04`anIOtHlxml~{LGZ@^nv^0q<cKZ*k4w6H8Xq%hq7^+j29(32cPa?Ye-13)9
z1|NbYBVf&Rc4MBX0{GZqRth#xU!0VL(cU#}b>gl_OWBj~_87;as_U_EyR6>p?T%LU
zcDQ!tQ9qB8!zx}&s>;;$HQSZS9&bmA91e{cG^j9Q#dq)$@^x9Y-b5@8lNLUYklJgc
zED@LE<pMj_K8)3qbUAHm-~txA2;n4^S?|cm*+m8PTV&i$Ql$Cb=(&LoSI~l|zW&fV
z_wyqr_*Q1#rMqj$gw#p=;uCdh!{jP&lao#1P7bSPlM=$4Vn|47rqgP*kM~K<q6{v$
zkw5?%gO5Il6TgOXf%a!I0^)EEUe3Wdydgy=Dncmc(|N{Ai(k13ry{`U(LAip=aw!r
z{x#M?1`_oOc3x@cf36<GOQ}`wQ{3HkR{t=zb|PX2kxJ;O6c8$i2Bt%=p90$V#bG>!
zm-d{KJ`P<-wFP^5cz%vEBDLpZI}Q58Jp09ZQ6RiG|1rp6p=3F}N-wa7J)$ng7SG!0
z3n<cM<5BuSHY(CGpaUaAdx$i;Qk%l&3HeeBIv~Rdd(0*Yw-9ie^ku{XdH}eb2a6OJ
ztPae`2{$7QaDBXkw>)VU!G;luzS^YNW&K4Lq;E<1P<o?)2Y1#lbUGd?>^h_ZfSpp!
z*M+s&J>rdzru;p4I{veKl7p04t{f?l32&ULHpDeI`_A=;PiCNrh+RqmqJkvw`M`8R
z9S`}@Ss{cvNmHJ3l{sVq?7pz?keUUPGZdRK6+wrGV>4gl0hjEtZ`Lpiq{=TdOp4Ko
z0ev}C2KsV!^p)}VHo0_M2K;!kT|<~;X5^``4EWF=H3xV7)l(@+4mv57v-uhf1#mJ-
zLw=g5-Hyw{6oWBVHU;u?EcK&>PW0h%<`omcWGUGD4KKQ2w+q_!Q&-R=CWTe$+(W2`
zzca&%CFCTT;C<`NdUP$=8jAWd@6RWFoq1-+9sE{V#Cs`?iku7;z%oVeaVhJ7WL=Vf
zz^9nKv!F`^T`lO%>&_lGvR)lOLtu|6qpt1<6Rrd6RnTSdy&LXb7c#HtE%Vdk?{k3-
zM>Prz%MOB%!wrK*qCR2Au@jyK#NwgR`}Y4l1;x+cljSRH*02PZyl$L34#LU;8F`hs
z=~W*bXgS)~)Yq>ZJw~Go`@lt8mC%3l$W1YXoY3ptZeF95Q|eC#XTQ5#HZeP2Bhz|V
zR`+z0i-Lo_wQ4YIta}f>Z>g@AKBg3(P^imifQ&PpymAQKfQnX@-?UxL1A8hwaE)a_
zhD9WX^&4I3ryqAr*-BKv-tUKXN^{smEIKuIr0zN54K6NeEK%iKpm>>EC|S&c4)Xoo
zZrV~vJ80~Ik^{)Q8tX$|BNO->g;`HmqVhwEZP+he6OPA=XbtI=7WK{DXObXh%qxV_
zPzIE|mGHR^sdfNEQlY{a*=g#-lEOQBP}k<M`2;+8KFeq|KSqcp&WjinuwPym(R8?v
zDtewi(WY2&^WUVasaDGEiVvZL_>)48O(i?{Qg;!vz(7!PVT4ie4K1MGLJJ_dQa(Vd
z7x4)qg?g?vBQRA}_FfRS5=RoFsPu(NCaMoB^fW2Qoumg<?=66o=YV$jZh#tJwQ0nF
zHl$I>tk|ZXXp~E`s8VJ4C_F>z#n<X;>Ek4%2&cTB%Be7M$|+8y0Ph^7X5{yu70Oe7
zhatqI_Vu=Dp9=-p?Ec_^%_*FcARh-61T(_huWP3v$4bY$8Cq}{HQdUK>ELu5pm{~B
zqF7)WwVFDkdFPBwhjOGM3<I;6%n(b}vl4Gv969P<z`Wuy*)){WZqOol-LXCkZ;(v<
zNh$=8K1_osx|+DrryD{!IDAxCoeJ07kO&Oc3>2v80<R-`P}v*Yf4c>(f6XK6LMWLK
zCA3c=_Tw6zlDEC2>bv#`Us&!PbZ|Ev9;nlND11mal1XH|3P|pzq%xweQ3+4KOHd0c
z!jPlI!mY!qdAmW3OHrDDrhz+JH*G-909VNuU{Def4A>TPZOICdm14@k$7-lxZARbc
z$ZD{su}XjzJuqShmI&0<U7O@67<}sM{Y{^2@@aZBYr^8UWGDp$JRGTr$^hr}%M8`@
z=$h>aBLKAr;@q)jk|x>W26wdta_9~9p=fp&du<tiYC2K+@~(LP_I>mrkw|gF0%jQe
z-lXfW->VJ+bQYcN&r5}3xYR}CE$Ky~iXvUACZ1I#QgAMGha|*`rya$1(%aZ%f}^0+
z3^lNRjDy9SOm{tBH^9hvy>b&DL62H{0^5}pV8n%DA^IjE47N+jTkvZ+-bnS5m42cl
zT7je-DLX`Y^+)Ak!J-(Hl5DqQ%zTv!us#aqAs*6NI{a6G7vCqO(R#QQG&>cK7(u&h
z9!c1EtOsV)W>*0(GH`X-MH$=(mP{ILd2AA@r}$kHBIg9%3qQ!v0UJ>{HKuX8|A66c
zt4%p|5Dg40&(!Dn?@tyu0dGs&fkDUs=Ts1P9A{yn4~)N0aF7S231e1t75e(*N0^_-
zez9B}W5SeEQI2S-CXnNWhkrVvj&-)s!A4CjQ(9PHVnc}r#lDJ16&%PEXbzMTMM(bn
zx#^|Y%k3jVVx-CJjrZ^z1~1eXo5ow)qe=1oN}3630t&!e<8T=h-hC;3<ru()J!&n&
zc|B-BJ>uQvP;#(6>)dL5$qoh-)o7O)H+lZbVNOCq1txLMs^QBB*7Km}s;x%>cLLCI
zi9T<#=^%^pBI1Sf^dqbznqWqa*Jks9ZI%`8y1*xO4=TUnV+<>-T&9ul;3YXm91*<j
zl@hgnn#~o$b)4)NjE@TdC*`S76&L)GlkdgW^kXPVL_+<<2}5P2fKzh@g%|X@9kdYn
z<Pv-c<aw|G9M>yS&n^$$k4?tc_KG>t8I#Vt&&Q|R%8eYi%xv4vc4}-o`z!_==S_{#
z8b_EIUi|%f3@WD!w7wTU)a;HOlX7awNs8sYh<GyUcJ>6r2o&@}FNQQq*#a&$6>^*$
z%z^>c;|q?4++Z*vbW}Q>Y@{E{4DI+1>GcTlSn|i71ON+<(jO_8to15zD?B?tmAvKd
znmrkfS@rMh?1Ng>SL+QU?j!?>bcFb186iV*(Zp}-mm8VTz`5{0xR_y$Jj$mU*~}%c
zhtCXYxF`B0qu!?DW|q$*jV$CU*!)&S5!sz|4|B8w;ysw3j2tAAGpo7^`udIFZ~3D+
zKe}_}m@2}XGK1;u<VUYBo5!THDL@(Cp8BDA2_yDO#&aP8DQ=pPqJb7&;1H7N>Yv_%
zQweN;T`{8)x4sH%t<UqNC5LUtuAfxqKZ1E<jm7z-B$0Q_XL`7}B@K&9R1l3fLbvzV
zZa8WB$gj{cjMI9vkWrQk`L@+zK4uLvD`g1NbDU-r8;g`MMo<ND=jjhyl{%i?Y$sJd
z_mQUazh}mL+*aQmUQDG_4CLsqUc(~{X8n9Wvhdd-a{hkF`#7xxZ$y~9`WeV@5OxK5
z*y~T1LLJ{r%PII;SQBIh&0F_1`vM`LP$@hyl3Zg1g{mXdsd7^pJ?htByd~dp)1hGc
z+vH~A`TH)A?!!8|QQbu6tamWPb>~kYG*7D9%+aOlXb(~Sb+|s)^G(@;(;EDbsh0s}
z79+=+H{5vIj-(;fH!6fg1chlEzEk&~YT-K_uv_puI*0=|O5Yhw+z3707kM9&0$Uj*
zEv04vva1l?r*v^73*1jL9E_H12ysaP7fcrc9^Yd*r)dJ&cGQB)+51aLTk(F(xjBbU
z)$5ETI&WB-)ZQpYE>W^D^Ca3wm0+wQE2hY^!pPgGWTS1(Q@+`Abf~>BT7(?-Cub17
z07qozXV%Aor=e#&(2jXlvV>@qs8~2?;Oj8xtcWdmlKnSIft0QtEygkCZ#wW3&lOZc
z*f9ztMUmzYC%48+ps}nRC;42j-hH*1x;4YAk>@T3>=?N<v1JH{f%?6$lXU6dx2XHN
zTEyQsO+W9-SJfq%q2est!C#hB4@}JnxKJW=AUG-Ax0yuGHm-u(%_a{Bi}2n{;c)YH
zE0}cO$3h!Tw;0s&JXL;7UJeU1o@wUcg+MWol1j|9d}zkboN)5SNqLPzJEGbwQ7jWk
z*iKnHu89(Rl{%{nto9!bIXVt~c|ND^12-T)7D<XFuknI_?ACG@AC~WARz(npkrOjv
zt@w=aIUMtWJ_Q0J0|SP1MKN7Y23#`#ynwvok*q8Z8gsjl$sF^4Mf!jg<DvK-uIO^R
z1?(3AuBQgvj<u2ah6kV>m%d=On!Eb>>FKGGx-We?o_ike*8I~edoeK%DFr)>i+of<
z{ld|APCe<7M{g(LpD#0r&MchCg^Vq)QDM=QR6$P01mAbGJAj>i<&`=}=Iuj-r)n>0
zO7E9g*hvvZ$EM*stC+33n`THFfW6>wbFhil;sS8RK=Q!!<vm-bLrM;Xkvz!4sGdk!
zLr8`<lXW|&U!7C|?>TdqTF7GjEh_3PhmMHr@Pz0&P}49fUd9z;ueuMWbYC+TE=o>w
zpwedS5yeV_ERaB%r5QeF9|^mbnvN1u;L7Y)E<hR&Lw7gi*=Byt`L+=0)-=<TqK?C0
z?gz&Zd)MzXjP8<X7+z-Au^wGal}bt}k1UMs&AsiAwV;hm73(ix2oIw3k?p?HC}P-Q
z05TTE9hXhIOQAZCYt~5jAtz#!B2xx5&bmw_`fu$fg>C)r1}he|M4ngCptwiwlr(zx
zzDAKdXIOG%+?}vHK*y1ROuuIZAH8@h@_}Od?rodK<Sgkr%P6LLuz2ZR+w-a<21MB)
z>!8&xiHJI1JX0l+QWdTu<mq6lnT5zj1Ja!Lxyr<_DL)<@t3^(<`~5|=DZA+=*g4ml
zC|C`S74?Fy$U9Qcw-(_#3(()oYCpfykL$5?TAQ-5-R>0s`2CxBcRliFfB!Nc_)j(*
z2(CN`ojTfgPPwPLky@q>LLUs^ZS7Vm<D3g}gs8L+0x16ATVnfpVjh~;kw0m8n8Xvz
z1C6k{L=2ARM7<NA9aO`jU$0-*QUgI3Q2-}hCAeqjOBjE+A}U;%Y%N8mTxKemS<UQ7
zVot6knK2KK<15A#TIl1Q<o?ZeCh)-E!k>~d^-c%IcIVd!(W+4sc|xs%9Wrbi4*M2s
zB>wIDxJXIM08hSQg?<@ZCOYO%U9*u@@8$M=W=_&QV8J?wO^XsU!MOH<1`P{injCJo
zghk;Z*4dU_u9?#VQeY&#hRyV`mnmdNpOszyQyMc0LKwYTV@FW?kX|J+mn5h<|4!i_
zgN>|sV4Kt_8`#c&riX>Jpj7U+Dz$b;JEeeJqPzd(spt8uh}ECx@78wh^<);;qO^WG
zHoy&rx#Lc+7#Ot6N19p|O0$O)1{)uZc-N(<<moHNpB$Vby3b<M3wHV8#5o1ku^^4X
zy~De#Zhsngg^2vHj7N0V@43qJjikZ;Mf^l65o0{@?bE4LHkdAg^}7f;)d^U?4hM^F
z$KN~FbTC?QZ<PBWB_nbazAY{$HL%sG!{|i#_2ifoATCm$GsrX1?rgZ+YVKb~r{AP9
zLZ0Y+a_T`{QK3ZQ_PBT*Zc~N3%CJEr6DFn_QBLx9)^%A0mcs}Gexo6vOKniIL2Sc$
zlj`w6-|5x>8RzcR%Mb{*mm0q+jpLHFX6_Qc2<dx?xOOTVxYJIzR0?NQh7g?|?$3sq
zmW>2#QY`k&XqB=0eLvwfP?^3tk-Ok!VbHshSGfaah??uWn<?#F40`yzy+H&Se^dd-
z9l=Fyt+ZNh<0eIcp$>hY^stE{j_iDQA22H+oLmDB%L$=M7m?`Sf4jHvfJ*c8hb&u8
zbGsv}oCuCv3pF-)6{@9(sITP_<)>I-H#p<uq2v}zS>3P*pP7&h-W5*@HSZ#z1kR%3
z$Ot7L<&wHjzgu*1u}RI*Ss$+^`3D@5yT_<{GPX#;&O}32GD_G;KfV~Q@JRtQBaKj6
zAdb6)1P#d^q;a%B0EIZjc(uW`YLpv|F{S_7@i6B?hnag7-ZZ1en|A7&Rfq9j<d~Lv
zcKtZ=^yBVccL=<Wim8@4bB&qLz!N`tp(fVZn$uQm@Oc+^TrKKG32(b-=Otdq#lS?=
z5VnV~;ktU^r3=g|6kaL8M188Lp7zH)DeH{ZjF~O+u8&7Oaq4Ht)d={~hlEJ5|G6c0
z@dS?^Ez0#+K^-%E7YEOlDa(c<nw)lVmnlcPq<k?ghJi)p{axZrW~uaCNajmF&_MVe
z{-I1RG|z>OKbc0}%Z)O30JqQuL;_V&g*k(d19|Yw_gb!o2pnz=hL{}OCpPc4+WX=j
zL;sqpOQ-S{p0F0J8_`S|Jf-8HpT(uST?iT_WB{*Azce!u_b7K8bsSej20iu&fNU#+
zw$c&@8w_81<jOvi`O&F;sLvJ%&2X<P))5Rh-Tl7c=IER{^U<;?xi-mtQf?(BC&l=b
z8kveDA8ujgt;iZ1T%I&PQy`vqa2|s5qGUhDsXJFpt7*^W_EBMFQsrBp43eqtDG(e*
zuBk(6L9X^3*1rC(tJt7wQ~Rr4a9C*I>1_G^u#!_l5*tb+YNvw;A#i)T@1{$8QK4fp
z-XcDwt3dRJam3CVVe2I?O`n%h10Fq9IEf&<op#yQM!u##&K?rgwZG9PaZbi=;qQcO
zNftz!fFYyV*v2cNP8d!kUF}w3nAvyP;ZahEO$-!Nt4z;*Fe_2|{f4V0!t3aHbBO`$
zLuVkDo}~9Mnz*{+8L$(JsMT~4;4UOQn!)iB56{Ojq~IT+Q-dbtji(-os)ju}&3gg5
zZyVr%_iO_h|5DLItk)V7B(a|t1s2cQ>6lZ@NL+jZ(cwwIuy*I%^~sA-Nlc-jJ|+Cv
z5Wk>6)$;c?UGXmdnAFjwiF5TvSJ9&7K7j=|Z{!hGzDEs6C7I_L$;01$bkQDRy!7oc
zq?fH@&x2}px}|^EjL1ih6$k>;M%4@gMm~wr@d*e>A~T5Aw4h|8$>uCy=-%dv<WOK#
z{3d^A2L!hj$bJEn^J~DZB)h?s%k9~64ukT}j#ax)kYz;FO;@Ho*AW!Rn^8KI&J4MB
zn@~m_9#aoxVc>fq5vXbwu64r|N8;e;?Z<W<$E2hSZk3qUT62OYuMsWjImcq9wH%;H
z)vj_<D+<8gsp?XqDF8F(<b3R^gy&Kq@3+qeC&E6$!ZdiphjTj8r~w*}`}<#8tO3^a
zTgk3#VIqa`Io4s6IY7dy;MIshw?DQxKG&jl9yXV8TMB@%t+c?CAVe6@!XbX;B;TMz
zqF^VIN;)?49)-wkIxk+=vbeS|=*5;teh!T_9@X8{gh84Hx3{o|N~gJ&Pen?d3hLJ5
zwMk!)7fABJlbliIq?UFwk=~v(2qDis3C)7iCqfB3ieW8B>BHa3<#T}=IW-@61b*zL
z&Y@vO_-32|oc}OUjPhKQFmqRpAYO^j&gUEGFkC1v?w$U<g63!Au7X+j)3jkA!(;R^
zK?30?L}9eH&5KJbJ9QBjCR$L8dC4=R%?*)Cjk16pIW<S%GH8NF6e{e&*t7`Zd=P{%
zM%6UX@Wz3R+av&#zZc8$<wr5W3k)w3^R(ngbD8&~X7YXP^|MRD#c1F}+oTrpiw7J&
z@URH&EnS3gCn0Dc7CXfJ&}uH0N;Sgtt2p$Ab{X6L?Wl;%j=002;M5jDdtO!ZH8g_)
zmI?)+l{9o}*n}}Y-S+pR$O%8)%7aAD*D%2jJ^By@3FvP+wbUQ!HHBzJ<#yz2N)|f0
z4^i}&3iO6B$W|@H%K5O3NKZEUUAOup%uIQY35EtlBBE%k7fEzP$ga4xTVJ<m{u^r?
zY&sL{{6)y!)B6<z8Xh|3R`h+sEIlTH`H%NAm{|TH979;|+Jz$}vx6np<RzTAFCbWF
zOd$2+?8#{7me2FFbncMRT^|@difQDi7-u3`un*^R6I=rFmD(JF6Wdh!<7q^^@zpXf
zCTt^|r6&0_jUOazogZdPrT@qCNXYBRm+b_VHu3GB31lb{N>qwR+Bgi!qIg<2iP)rw
zfz~e}4B0bUbR8#<%_YR`dIR|Y+#%s{l4NT*;mw))UXRP=QbS>cfL?_R<2Ey(O58mx
zyP-tBkie-A1l2_I;hO;;uKA;sX<Q_RV8~JGX09kN>RE;?XghD#`sDi*n;=h=eN%;B
z1GEeTH12)REz_{gEewzlz0AJvPv)M~7RTQ2AFpu+(*4H*s6^=z!<qtr)*2OpRYLUq
zYzo96E(>ugsfaKYXO5ccWNglICcIG$$k%?h(_qvkqEIIE&I?Y^SBAx@r7EHcef(}4
z$voV^-M4PmDE#`~$YL-N*#eWWW=AfkBjtp3DZz-^O5NhyD5R-?hB}xhge|jHXm(&j
z%hmzSh0G0CW(@FXyHKT}p;XAqP+97RJ$QO%^reY6F6YA9=NN?!vy3Rf6qJMex#g}~
zgdFY{FbiI9n^U9GAoYv15s|{_dQ#`&#%IoB6CPD^{J7XaS$Ebt!$!oV#m5Lq%!Q*m
z?y=t@stjbnh_))wfuu`!g0))w?dxS$k1H?)?E5#!-yeaHh~}4v1N&6vh~^g~ovVwz
z8Zwj=L&C&<AeU9;s@2qfD|T=}N39atk|?=If9+h|!`m}nAJ{?=9DbmFZwSF{eQuWT
zFDW7>;^HOcISePj%MBM(t_X|xLF+0Q%Kb8t>=}+fM{QRR<Sw{oc3V5?#{i`_o}NP!
zMlbHcbLy!qADv-c7J>raElIu_YxrMWy<>Q1!Se4L8^74LIk7zx+xEn^ZQHhO+qUhA
zo!soR|L5Lw&->NY&+4lFR<G{r&$5yQ+;Xp&P}kp#Qun#HiyRM7Y#W`@NBvwV?@<6o
zMilRUKzo6T1pE3pPN{eMw!_t%JTTzcXhc9w68E>=%E@Lx6w?2yanUYYPcrO`nbK!`
zM`8!Ul0)!$c@3&Z*&G4OWR>3z7z9}4Y6NbVd%$pvwhlzxKgaT<@)P(D$?^fvBc|iP
zZXt2PQ6P=C39Py4`A5z+9`=|#1rkXI_~l`ybrr}Lphg-gV`BOWWv%;;hc-wd_Hn3f
zs7;kQ<_i#4W22q9L*21ygF3fI%H)^#56^vMaHt1nkrqWHUX$@$1tXX27>knuwsqe8
zrh%Tpp80h&!h(W}i<Hxe$H-Vjb*cIalKwlXJ3?hn^oK7d1o)>X{|G&hIhgDQxpY#C
zWB($Uh+DcZcrGl9lt7fcF$IlO39dI~u4D*1e&bD)-WDmI$fSWPonf7&V4NoXX$Q6y
zMgrDGv46bWh`gH6F5r#k@<$ML5zzH*7nCY#t^9-U;q7OTwm>`x<V_Td8T^9aqdpsP
zUt%DQ)B9CHF~-Z$zx%uj{{<|9<P@t0NguBD!Q6}WhB9cRTVlkDB+NC!7SHdIBX<o)
z%ePol(DDFAySzq-Z76T^zSTty*6(mVmkC4<^v*c9023dm1WP#nQsQTaL=K$6>4M`Y
zT+M{&q$~zJzAOc4!uM|qR49>)_z1u&=<!n}xsT%pzg=nA7iU4A6UV>~o#}9@)d0|<
z3>$WH*)2sBk0;uFYAT|Yp(j|l7x;D<46>qE9=VZNeHciuHM`eu{5E*y<?(#?t(fla
z-5&OA9-x@P^U)>EE|H<m8oW=!Bvz4_%?3INCiXlpO%C`cilzxP0zKme2f7mTTo^vC
zryiA6ub^eBcfJm05LE&41rjAd4G&S%+W};|?5`&wR0^ywdi1L!yQKRzWR8=5KtSn4
zVDB}JjN=Jv{F5nmb#PB2naOsP+kq!4lIO_I);)WKNh8NvB2MqnMkgm7nRSbC3o1}@
ziZ)jF+ait!bQ%y9*1FulaK`}JuJAk{Ku%U6XZIyRSwWpP&$-b;7)r=@+IK&>dg}N&
zqm9fd`f(AVVed`o5!E|<=!=68R2`&C;A{Ll6U;Dn+ipv#2r&@?MSzQUA%S<`&5xzG
z=Pd!A5g0Wr5OZ{BO^>8JXaS*NGQjO`F2*r<g>!i@7Ie^XA0wJ6ri|I4w^=P3QcUsa
zTR}H758s8^ITF%Xakuk2qub?z6*8hcn0oqAEU==|$XFN^Gez<WT0#`pc0Za)vm9|@
zv~T_ZQYloX-xx=&$_<!P^UiQZfy%DY!lnTRy~-+vBvW4Pw_*3s$$rP*iMn5K-2Vyy
z@C*ASm?E!&9FUv7@KS|Q!WH-X`|5+xcnohs6oKBM>!8hu>|&Xu&-=6cJARbzlfzW|
zt_O!NkO1MG%NbvDHb-&5vb<(XimZz_MK)v~;w*J4(YLL4Xnks%@rS@#E4wru&#|Z<
z3XixWp8LL5#`CMtWn~KfbX-L)$B*p9sSz{cQy}V`RkaYbGVuYDkj%Q8pf_hY0T!tz
z^xg-Xzi;*+@5hTkye**`&ps~I>fpdtBc|b;aP1K&@u~bNllG;#_6oR!xE9e%7o~24
zNO)1Ew<5(`D7#NV(bQ7IP~ho?wIU$#@~>!yOy&P2HK3Y2M3wL<E=!PxLv1`0Bxrs;
zg@O5b$j%|L_iK;lUx7R<s^&(v7OoFLQO1S{PD<S-xMk_fb5z6h5rxIDax`q7;stOl
z!0t2ICz+k&!@$;4s_|Wij0@>va_3G^5>l{%A_~gwmw4mz`km-GkYMKEZXf{Hv?0jX
zrDxFb2hs%o+Sh*|P_-@M8`R)=ilDn&)n1Vx9n{`Q;}gQyY*ju+47}^8`sR{ad5X6}
z5A;s<bN}9N3%c86s8)$4eN78L==pjVw+A=?BciO#$2HG$<Ls;>e>-`2<6iJokRko?
ze83vmLI?w%cC_?NPq0@YvybWP`9p$Dj!u5B;h6wrJfZ95(tf8M2N6LRY>aF8&)$_0
z9^*(c0DdA%iqB|kihKQ-+K!1y6UXaS8pfzi*&eK&$swNDPUBMmZ53azGT_!!t|_xs
z=H2kO8ZION3!RofeN`7GSCSETx-5AwcDbB7<1`{jK~JQ(Cbq?gL;0y+=@oOl2~TFh
zewT(6jyrs3ldELI*%Tq%yz4F5&^N(`5h~w{v0}M9!rJ#<&L;A=z0pD5#6S;6Z9fy3
zG3$pEnLkS2un>jq2s|W3Z`UsB=TlISJ=ikk+ACqKjykcXU9Bz0>IZ4&!|18V{1$$q
zK?V>25K%{S3=#fj)}qZP$XsU@$Fb`<=oa~sTaywX_owG`UVb*}PW4E)nMzdb1xuW!
z*7k4W1~vLA;vD+17_!)*?LBSzqpdKbn;gOK{#!0EWUi802a4xOd;)>E^k+6dy{g)<
zd2vH=pNmjTsu7-4-{yHA!Bq}1-+NZ1d&Vw;gnNOQBPuhCb1S4%OBUE*+|5usdgE4m
z%fbBJz}wgF4tc)UcV7Fk+3vqO^RR8!WXcS?;kS!jf9eeRNo$4Vn~yePMhoQ1i?R=<
zK}QZfd_E<FYQ0L-vh}$#tVir`+T>`zfm^Ex<$4}m?#0HZH|>K=tIf4C%4bW2`k-2&
ztf`?knD9$wlOu0kUPQv~ZbcRz_6W<tGJKF59Fqi1Kp!cE35PJVEeEIQDC3kp=8Y9X
z4flgKyWxjw?ZN!Mr%_x+b#J;<f*&tPuxddH5ad|z9z<1N_jjRRK|WIjM6ZAu7ff^N
zbSad9Ao;a6#=ypcX6ie#KQZ|Z!xQtr7=FXe%~7!7nh<XYBAY&<$!r<DJq=u39-c+u
zO`dO292V*7l91_rex6k&olhni3b->t5SXAi9m^0Ojtv}q>|R<GPG)k5z|&40rGc=x
zzE!&dm*m&{nMy&e^$_<zFM?A>Au^h|@+~!2am<~}0Z^2k@`TLa*EZx@2jt<ZBRuUL
z_T{B6!nwT@r&1`qCZ<0P?1e4G{P9#nZPbBd5>c8Hxg!;^ySgPT{TR9TaunYa>f@TF
z7>v;q;yPl#8H*x$AAJYF@<B%+W`|e#J?g2w{msh>mm9TN@otdK#K9q@WL2w9Wz)dx
z$sN#Cg$3P;0=_1uYW7AVjwH}draQ>hd+lmF*excK+}?JEiy%{b#&kGjg!5~d81doK
zJ+tEdLZ93xTF<Khk8X+v8X|5a%|jZZi|Hwl+K}x{rvj)1;H|kilg3;_4V>HZ5CjW-
zkNiWt|1nuNa6@CW=}^S;yoY^6YlE?gD;GnDpq1ibLN*bzClY&*hOX<Q+X;@#df*DL
zjqgq3`CU#G4?O)W$$^{~OlwX1v7m>>>d+4;5>Crjq@`&t91qna>E^W#6J||=^C$HI
zXLA{&#9)uz>2QoJ>{~SiZ}muRWgKbu{k==<(*cv+PXU(zPQx~)X`yHYU^AVu;sOI<
zP<0zN(Yy&jzS;=c0|CD$9<p2dr})s3MnVeR?Gr6H_pE1<2R3ks$C{uqSb8A@RTx@)
zmuNXt5eo&-n2ZUmsVb+I(&Vqygc@Yiz4@JBLEt9c1{T`OD*fT0!?WY}i!iSZS6os%
zM0(hF)%JC-^R^yO=YicM#g_&w4Co&(w#X%c52H2`K5k5ofWKgWB4p6Fhe!J)b^?q)
zsT6r6E~!rkv!-{KQOMlzB^2Q@K@P8yiT)=k?!;u!qhtGI%%ke(#H@}&&LZLpOM0fN
z;pP0Gx0XWYVdiK`5Y<||KVKHYF*v$G8d5Zi*jx=1X`q7OAlWd9v?UA|45{mBLM@QU
zx|NR`K}gpDEt`a(S=?}bj-+kTkcjLVfNCEoky071SV%qMvU`9~DLg{5sIgV*wF(Lb
zL1{dLM?b4lofk+#4)7u+KacXfl`Esi4<nfoa4G^$SpHB52p&5<evwN9nwc{U8JuwO
zc@EA`pK2xF|9u(z*^crRaGDXI!$L6>Le=tbQWAwFa%9uo{$&G$KM8&Wh7_&?Q#?xC
z8f`71;O#k%|Ko+3?BEE~<kpFcX|_J+7cI7kUXoPkLvo9%Wdfv4R>jZY$U0=IK_EnO
z{!<#~hoyz9MXbv~d03T0y!yff<7~qP(}_ef)^bXJ8)w{9lL|3?9ohc)qtneVk#+sG
zy0tPkJJS=V#X)4u<ZrvYTa*y&_lQ?X`wd~x|ABq{x`(Nn#mNwDZfANCDJ=mWiIZsR
zs>!RKybUslk5QC@Vb#mCD2^nOVqiHukQ%ToYrMK?J3@eh1>prda7qlRllA@Zc7hze
zz)NMH-vv@Exa2JrqeVoWzz<}+FX@aMe_(5Wdb~%3VrR0sdg!YBi1)5=bW}BBWSvNW
znhk%O{-*b~_YTY<b{NL+JRvgap*o3Ku}%(W)reosJRYj5mJ1JD$BJgEYbTG7i$O11
z@<h|`KuwFB<HuiDa^0q}pWE^}*tIe?$j~BT3?7Z_mqb6ao(?fHc1h9*we6J;2ZlIV
z8pn`jXL5ul$(-pI902?EChWjelQO3Bl6VmI?`zd8y=%ke2gLVZ7QlOQ*=p5xd}(z}
zIkIkI124^<3d-3Y;xNyQ$`Gco?lGnlsep+t1Nh!OF_ifm+(pd&g-+|Y`|Ha@l>%as
z8%ImRZ$k(g7dk16*A)+2?0%#oR@u3IqnCSkmq+~HzDZ9ndC>MJE~bVFxYUq)_JJ1~
zw1u!M`>W`(0I@@n&(8yRX7G~-Td9iqJ@FZET0^{XE~-^c^nJA`A`6%CUo69;A7_S#
z!i`7OpXLg1C;5K6j^urJG27*1aht6dP@$OTGguZl6KnFjv&Cjz2nKpKgjK*+mE%iu
zVABe%&Wi*yLe-^BZ2ANsBMKiD@T+>!iBF*%_O{jH0S<p9z~w~=&_$SWQYt$|GE>Ax
zg@x(;iq;x!cZ$OTVS&q(d@g;p_0XE_4|INq+%vpsV#Q$wj1fvWnP|&!y*LO_XoB){
zYYGg#3zgM0`@!8U_<4}xOT40HQfzxok(w=pP#J_0{gTIsi1yf!a((o=g>7@!EB)|V
z!cSw-uayd{AqKh7FZf<;NSAn-|GCOE234@IxKnu%6aoBXg?zSMdq_N+9|0<W!e+Ik
zB|VwyYt}BE+X~6|g}O+hZLASPK@Hom)6j9t^86SCJ~ZBO%e&L21~Di)Hg!*dg=E#U
z31qpI0+E$-R1eApgqr0P)G+XYO3^1q+c;W?!5bT!>$?9`!WU1mS7OWo1(!WD%FiOl
z&&b^(@bxg9V*k&zn(HjX$;e~w1mGp{N=3g)m1j5{VJGm=#9=)EcZgoK-6{LksuwT`
z6Y^|Q$wykO0eWsa9d(<e+ufvM2U6@eAmYQmei9X}>f11dzK`3+{nepzY!IRgZilzQ
z3m&cU{nf*8^i)B9AU9*%hSQxl*=s1Vt={}QTdiI?em5Zao<Y=*LT+U#Ls1E@G{A8}
zIi=L>TeDH@s{uN2vln0tWgt`0<?+-vth0@Ac_FYbP+>N!4D`rDQ@fmc;xMew{|{2X
z>+cNH>%_&xQFH|bjaRzvCQpfIywbsH<3;TUeg?8GAPLMq!ptreoc^3Ych!@<mBuib
zbks==(QaE(@q^3O_7wPYC}z1ou?q-S6?en0m2}pOs?uqJl1!eJZTnSdae`(1bRh;O
zD-5u5I|BzktGnLJuH60o_BU-~q-No&e1RAN>O?`rBr*3DgP0|{noUg2Vb!{mMXoOk
zsX<j1o7<KAJsSQv6q6XZ*8bkxX%tsBh+N%(AL+~=dG3aGgVwOuy|B3(VqCq&G;u7#
zHYgjG?NjCDJ#Ug9KfJ(!BBmCc#d*<lx0m#i-%;yHD3~8V(NQx>EueDPy<@cG;(2VQ
zx=X|^uayv~G(#|}l!ya~3;9hxNslFFVEQs{r6<;B8}vk-6o8aGNO&>MKUCJA^jl7*
z23<@_2Q16_zDxd^+!47)Vq$dLb;5(x)FUPg>-i~n!3s-uq=ifmV+?A7`BzHC8QxD>
z=t8E<g3CtKv}(u_pYDUl!CzN8V`{F<HcE)-NcO2)OQ&V5bdpTS=Sma`jr6taKb*vX
z%+jn4!k0Y-3XDd12IR#^%}7z(djyV#z<6>B32Jc%B`|%1;)TXU;Sto75|9koXx=Bm
z;m3ZF&d*-EwA&FWx4U#`W+2myxLV?Cx8fzf7t}Y@Wy++`l)yT{9F<F5?I5=D`6beh
zU-<8ME-l-o2bC23ak^6Yq$vXvEHQxm6?c1x^IZ~CluU^)`&arjIP68lOjKUef9YUI
zdv>^W0u&`Y`TJ318Hq#Fh^A3;kWTIWsrl##?`$`+DIv+%v18q{NWjC&J`na{JLIT1
z17&5=j<xAfH6!fZ4{aaF#;uOHomawBzL2Jhx^bqpUR~_k+uPaXDUYzR%o##F8|wrH
z-q{|_ZvxF9=iyAqpfi2hgq?2wKwd*$5OwP-94B@h$BWoa;Rcl?Cw#M?YV{=2A79Tw
zT5MG6be)bEwFJ`^?+P|Utlw;CjiBsZT@0xez4Z_VQfPWnt6kqvi!^`9&_-%&tMFc@
ziMLBx?zh{$>VG{3ei&U-rY;TG(Q-suo+to>bA<iAp>g%NK{*QL{u~6rEHx4q%w$_+
zt5e4Gy1TLR@ZT?jy2F@$9|$ggzZtZ+E-z6Ugxa-QGG=j|5?igdBTf_U0daE6o>j%E
z<;&(`%1J$U)+u=VcC$N)bSlW-J_Ne)vH>TZ^5=MV>1J=)Vh#cj%#3%;&qGZt9WQlO
zN(}R6yeY~492$Ah3(!4f4Vn<C&GWmO2f>ZdKV;L4{2}15EadbsQu8%vYrx;knm2O6
z(dy`FH3$*O7fwg2Sx3YRks(s`Yjx-E5)l)k=f>Y8GF}T}ogBpcb?v4#G)=-ekN5_B
z$q{a`05gBiMD$wFK;PTv!r%60fEMmVW(I!S_i1?e><}_Gv%N;>@DB0Y$t{TIV;=c+
zYHGn4L?(ZEpG$^1ass%&l@y&5r+Bv#XE{Ly23t)AWXN~3scxE<#)V4kY1l<mK6mvx
zp99>e4_nvqkBszo!_{ps;9QCej$WIh+YoV{n?z&u><n8}MPO(GBJeNRg?7pBBRTj7
z3X$Avw1s_wi7{s6^aD&XV?3;pVIUR#mw<BvNNL1rG57R|6)jW8*W@It@Qn<c)nuav
zRiSO~35$wcR5>c-8=8f8-}|sXEy`r{y_O9H09f6plOS791rp&9aN$df)<UR2hlwDL
z$B(d;7APY^X6O;_S~@2JQ-ZqzQeNb=&A0VG_)XDh04|$NgaIlorPLC*VOP?XC#kT!
z?M;Z|daPEvcsGuHQ(gq?uaP@mM^vy292-vH0Z6|uDbjz;h?(Zm4AO8+@bprRmm2N&
zsXR@#?AXid#fVUGmM?m3nOC6uW6<crCCrk9-gk*q5&_w(Qwgcu&?*~+!`)Fe(!JdR
z3?ugjc^*)_nWiaBh`2StkfDzNhd#RI$RXg)gSt^_hnwQmVe70D1Q-O*t}lWK#x&w1
zMoLdbQ@9@t1PQQ;4{BGcA1~t%0;WRuGBJdI8)iq6k3+oT4>IVc5m0E!@&|U>0>{qH
z8iZ0iKh)3@62B)ntro@^#sP(0WluVTYz+}~k?YGwS>K1x)ItQ>$O`C*!?OQu?=2W}
zWlYLs)Ia4+!LBw#YD<UW-v@>A08QR*GnT<s#_6!Z)<N#m*ie?x{WL~rj<C9ld(#ws
zPK(@XrpLVJr0+7K0Fb05ww(sqyduGW?xQD~h!eW}K|089GEi@Xi1ESq>{tscvd5w?
zlxPVu^g9wiWJdeRReO%CBM^tiW=^k`tZ!o1`0E=8jAyhY=I=8yvrIr*B#TPCVE`Fe
zKC{eWo8FlfPa=uU4+20P$!Mpc4E|qm{+(&6*_Xq`kXmk*F~woQmt6c)Z}jBMj%>Kz
zr?G9dnp}XQFh8M1^JR)Omgqc2yRgwk3;4%)56|W3*c3LT7bUMD)jkRVRk<R}hD1bG
zEFL#vei%-UI%$j!r$#)=fgPm|Dyk;@E!2HMLY36zysOe!1A!NvFyVJhA8?d=uC3`G
zCYS*uG*#++N+53ZY;#mZe&j_P12yy<Fz`=3+(6yLJw2}r=nN4Vl1)Zj|IId6%Xo#%
z1u(3d2k*@Ah13BM>G3=PGzpnP)qI`;dkR5>oPNSPd$Ei}KNNIdnkv&jxi+>SnVdz3
z(e6yRZAgQ_F%Y)m!0IXp2Gln8Csi9FD{){peCy%dPSUd|C*6dB<4krrzOrb@NsR`J
zN2YHhxqyl-T*4PO@JfOURtkuYrx(2@$~gkG+ZFUv=iKj%2|bD3<V&y+Q}{nQK|35g
z#B~CQ>DU$M^u=ZGi83jJE}(bWI5?EmUhtjFhA9%X^=917Xls{HcU8dAnp|mx1gWpT
zbzn>{HA!|Wr_t^apq1Z3>VB{rBJ3cJoUx4II_+oSgS8qNIjF_`4Luz{6&&*d9stbf
zeOCtLmRh}gVLmWw7LW3}D*PqH48bJ$`;iZ$%%sp!OW~G6xkwwXCMzZMp6K)lt1)l3
z8Xu@?TAFFoz-btql)zYCrb34!TxMT-Ng*uAOj~~1OQ@PqB5|y<P>k6m3s9%Y>P*~%
zV<!z|lohKe*!@t8KH~tPCADJZk_MFJ5GaNt9p8gFBt~g#mD4>>Ferj&30#Bd#?>9I
z0R2z!^dxhK>BgBHYQp=up4I6~ibO3|;5SIohCIf#oE*5CljiP&{R<j;!r<03c|QMi
zVl58#<^t|?m-8*<Uu-aKsDF`~$;Lf2;+@d$sGfCNRIN13+HBSNGs9t*cmJfK@I623
zHxhFph;w&p#{^;irANp%9Qdnu&@p=wAJHKdY=8-QHP^|E1w|Z^<w}F=lXQS;lZ;nZ
zN^_9UJtpY71~*`|n3*oKben{i)Y041*`h(dUn_qcWdt0I4@I{gEwE#N>=N60!fsRB
z_+H@2@9tG46(Ji}#v#pxfX>5OMtUod>_qKMKofH;2{zrjhPZaS@clWNOs@zrEl6l|
znB@OU2lN5~w>(_*pASc1a>x&^C{7*%IodJuw@qK)Y|*|^nIC!T1RDX!M6&`sc|5ID
z25y>`>pCyo{U~WTk(Hg=6V!{BM#BQf;lgmK!dM(FamNRM_OoAac#7T@RfhHZVVrnK
zl!XCZEA?!u5pkXvY2ZOuvk{+5rvt68aNKWl^hyG}<$(0urrCse`mF28OeU=JWjm#I
z+AkXPJs{mg!bnibomJJ%R_yMCZZ-?-8!D>|0>d^v#A4RY?Z`kyYFZ4Zw|QS(6RbJr
z+>ZBjK+1R%)@N1rRXmb%Kf_aUq4S`0RD{4z=ZCX^eJU9mNWHKJqhj@!##6x{iY{nL
zPNh0dSBFgtZ>RUUjpJq(@gCHpo%gi<mUlwM@XrEY<?9;ZQ)GQv^D(Y5!t6Nj$*-so
z4S+&qLHi$?J%+}WN^Uz<18m81-i<QK6M9~@sJbO@g8AR|h_($<B>bQ&sWsesk3-$d
z=&`W}1cFt%dbpW?J;Kds+V1x=h?q&lI<Q(j@@jH1t)hZ-@|bC=Er?k;^75fKrqWQD
zxW^!A*d*CF2)+QCcFg9zhf;3l1TWNK!ywW%7?%JowcnSGgu%7Q0S%N9EHp-AUMW=9
zuq^nn_x&zU*|B#2yqrKvRDB!)CdIjH{k5mq`1<NX_(G?7mD{Up+%S~HTqaeWAqk;a
zGpDDnA<wzWr2c<gTIYVp|1llO2+-y*Zu-`80P2qG?FEC?Msk;X!UDG0{uJnilG2;l
zEjYN64pFyICSA@#_z&O}OaN^31Dc|5=~Zt6DWks}Nh6C2k_Vyyjw=%h`zkOHn<=fU
z?lu;g|CZMw_s)uvLq?Dmk);8+f#`N3Aqs<$;1gKY8#DypKoSw4G)Ow%SJ?JfH#kv$
zPS5L?90xi$u^0;Hhdm&01{)WmeBc)E0yDx})Cc{^xTH0b3#&qbxd`>ujDTt~prgh0
zWr|70@fZiTJsg;YXk&?$zR~q^W6KYtc!8B_HFmJOo3=`#`)%qMGu)<OHoZ;gFPtNX
zRGS4;r3meAy6o5arFthe9hbd6ttXoWFVkDA;i$UgQhXzCui@t`_2+4h28UGNeECS@
z3J*ypv@iecH+^2zN$MqoVW%2=*j+kREmC>L-(+SWc?Fz^L1VgviEpD+#37*(+9U`=
z1v-Cdv_w4(Pi*61UgT~4z^BGTYU0j{Sw_9Tw$jFLhO<f5{?46{3Rhr-r$q~O?)!PR
zp4!)+{VB;k!bWUx1e01g?VZw16aR&7e?A}SkGl;XvT?>(360_OCBK&XC<_*`j-LwQ
zf{UHmSC6%u3y14UN_*vJBjHP0*7&+8)yRmj&>R!A5>9!3Lr7383!*%t-y!ZF8r8pq
ze`zP=uq6Pndg^87_=|YlSATz*8C__TQ~hYEpUZCGn*mJ~WGIqJfdSED6o?&KtP2V0
z^gf4csUWk1`!MXTW?auWo58gEkTCM?QjQOLkvnFm?*V@7FAQO&5|Gg8w3B4JzN{Oj
z(g;!!Jp(SOF1e;tIs^l%dGqAdI;~}H-0*PWRquGf$Dui?x=-5<=F(W}fSh-ihvBT6
zqMb;(B83;0;0#})5Dp{G`w%|~o+030iaL#<t5d77{Q&~A_HX`oT08iEDQ+C9n7f(3
z=iEJAeeDm$8@?@FU$;E+l|DwToBxAy^kW(B#fq35#WI6O-7`|5G^f*}*j_L=Pd_6$
z8ZR3lW2phd*Sk;Z@ZsWTc@T{pl=wHRzG;g)yUtIploeFmpr3Ztrbrsd`cKDa1uWsq
zM4Rq^As}aeinWg8^A8s{71j{FctF5sy?6CA|3i-yc-HGBXTH!f_~V8lGSCO2W+Ygb
zG>fjk*tW=xo(@xQN9g*(Zm4B2LcAuV-*5zw5QziiOWxt0QopVb8Y6&eGW<^u0hqhE
z6C|v9EXBSHYB=xmnv@p?|FJL5q?fwYB1Y604+B|zN2I7lCQA0tLeMN|l#wsHOZOKM
z>vv{y-0?%^Q(hDX>V%gUhi2RFlHYazGhU}wn6)Ow+sni%ZqqJstA`?41RAXO8DJ?l
zHeOATCD-Uw2_|n9xvSxs$=Po#YKm1UJq1U*g4OA+>%RAaPbbNg-<;8?E;G+!E#o%-
zn{fCaS2PX+EqacwpYeEv{F!_h{@{}t(60Ymk*KmLK(r?6hH8?2vXNsS4<%)}oki`^
z-6lrf&ma5rIFD?+obdl)C~FyQ^Ynp;S<b&3r}fP%`gul-__Pvsn)D(LdpTD>s7Ute
zc_l#X$T6Yw>B%=#lDEF19`vNGctw1U>`%>-Ki;yOnBhWD=R)L9#s;k!vXgTEPusJg
zn7N4E<nr>S_lng_yXH<hi8Y<g*S?+qq|>!PZ^l1~LAX-Mp_y3L^uIUPkeygNr$^-S
z>4!LZxoriG>KA#^f(oF{cUMMjiB{(xDsBH8g8yZG_P#~}8ylOD|K`%fN?%S;Ohny>
zHT8?Cf0Qfs^c99ZYwTK^khLiL+b`nN;<J3iZEwX;{n}wS<KB>oWb2Q4bU^N4XG=75
zc1Ar?NmA6<|Nq00b|Hc`4`|N>k}|vUoWtP&#05F(4S5j6`Eq>odEI@iuK->5W%MfQ
z|BaphQcV4(4F&M7-ODo&%t%dxN;q1)jI>T*&4>OkG-;+Z9A$&Y!2G49iD8k||LIXR
z%+oGRIa3HOVea&jqzc8}8OVj&?FiWlqyOJ~s}BOnVie^gM)kKZXm?n6i&iNOTzX2&
zaK_NElT|0h;%TcZdUTOEaER}`PUBx5topRf419IGs+SD89DCr2^&BMW<urd;ds=-p
z`PAe*HgOuU+)Y*$-b|@F;BL1htEe6{CUs9s>Q3pu$^=Yj%)Di*`WLi5-8gA*MTeWc
z&6%H8oGB{4MR%XszTwn>WyQRzhcF3cer@Qe-Mipz$frN;;RZ2{tUR|*zO8+gFC2LU
zFU`Dd^LcB&rY~62;JvdtsyTRWUof9Ox6^WUdLO%po1fo2?Krwu4K3_Uy>65oQA&SC
ztNL?B-xj~(<v6*1O6%ect(Z5V$@&~DbzgExe@ch^Dw%Kr)20`<iv&#RJGy>$H+fFI
zo;o_IeO6UHb45;%;5Jveyk&eY@$uzcO&CTSep!3l=+b*H=s$KL)C{EGTVLsn%<a5Z
z9%S@59cOv9T^^h}y8R0I)x*BiqRi&N;Z-wm;pv1QUCo6sus(9Yjwc?{;M43=({oYr
z>2l9<lSR5dAbP$F%R~U74WV2(kXpmVE3S$+t)+{5&1Yy9S&xvB34kjJ=NZV3qx-*t
z-~k_w5*dyZ22ZeKch}Vi)2>W->zB4eu&9$iaib`377=pQ>Hq0;ff+qQ8g5-4-Yqgx
zj$BO^$0IDA@uEiLVNMB6hl~dbX+9@N(PPT1>SBwWWcr%!^q!2H$LDArCoQjEBP=}!
zym=LmOa?C3E15nPOx!rdBzsOe$F;{EpIrqj(}PWj7T=pH*;&vVDqK%H>yj;9H&#U}
zYpqY_w`t}8+(&8gGj4a&LfhjWt0JrKsjt^b2b*E=1^YlmaktFhoRfA}H&e!pJ`PF{
z-4=9_1<!AIHG$EK$|Fn$jvp-*x09Ty3yeD%1FJhOq?w#>H_#?pt3EbY8A$h&K2xt}
zi@042J6sM|Qe02^8y?mbxOh<(1l3inukd@ni(^9+m9=RKwIu*qgIMJVLnc|$1nL51
z*qpmF^{f^(zbbG3&td9q8w7$TE`L6~7kAsyeu%gecBH2<J^H_98OI8yoOdYguY89s
zIF+yetGzGRL?oEJOI_x)v2kVR|KtWuM!nPuxwt%b;3bmjP96;BEqBcf`HCVOZ1|~d
znvE!GZqseD4l;13WGrLb{}*g5@T}jfHsC&?wBz+?@aLxy{Ulq*>_!#0d+R>HNnA(;
z`+xUMsGzz+*!C(Kud7DAwDjwI*Q{$W9bWhHCX8ErPh+5rvzs&W(}T}p;^OR#h)D2j
zo`P7d({=}~w1(fjLNiQBc}b$6&)zI9(d&zj&-q_pX7KAaUwd^%NJs}*fpy#-(f-v|
zQ~NL0%*0NA<PS7SvWsP?i=rQv##ZS}w^Wv!vl9EK%*s@j6YRf)(NMsx-%eI_?^r@q
zd`$aMy>-&kxX?sq^t57+#f^H1gX5Ky7NQF~bmP+0%*uqkJ@4D}o$zA8X)|-f4?uNS
zXjnkrF71-n7H<37A_+~(C5)>b)Kn=d7lm6@6$6WhP$mB@(3yHIeja9#PMTWqaIU|E
zeR&F8Tn_#mgQRY5FRNVBO*H9pEr-05Ici&ly=s}6kWXX({pn0;OJehC%SY+YIJJk>
zmRg>-7fF$ikYk4v34Js^H&HgeH8LJr@#MdbiY{6N`Hs^TkpGH$t`l7BZy_XPm)#D9
z=u+r*26Q82+%IoFa(v+n^M}C{7}`iqw;+2S64fW)S|ag68!3?x^u+vl=Cw8oW$a$_
z&}g`%)KNxd_M_$^3YZ-k{G@-92^qSSBl8YqN3(WiHfFKjcJg@Tnp99hR~`tGUS3@y
zPteJ$rMA%jo|Co}TFTQk#wHlVw(JiD{<bgXWd^*BG@l2LN0!6b1~gysk^cJSgp7nw
zdYMw0!KTh0!i({|)Z~Q8J`^9^jwdrAw1rJ-F1Oi689u&nhU%IfRf3(Q{mn@elvMZM
zWIHVkXJ$}Z+4-m0aBpu;To@UJl!vu;WjQ$0zw13l!b!R-5_2BW7~Woj!)y+c6K=y9
z?}r0!Z;**B`M5lur0TzrVE<EiYGJgx3kKjILbxcN(1jP$->42y2ncff*V`RFyRhTF
zk(9}~90jJu913CI$9gg<uYPfUj>e>fkWYyOri2^1vkhYz(ghj)M_)dT)ZZfw$XedQ
zi8}+A*c3revaG$u8Kpw&KLP(>0vF37!i37nU<_!11DePg1W;HZqjtfoRSWnK(0<t|
zXsS|B*u(T;ah}PEh<K3)&y3Odw-$lmrbvjwJs!8ezPbhs01#!Ce~(Sm1@ftOmE%CG
zdhBwayQ3u~(ir$@F(|V`>R%l^J+Mri9~@DQh25U2mMCqFKIWB<%5SOhoeQJ+_J)df
zN&Lr}+a6}LQ6tV!62+|bgNW5)l_?IWmSENJ%7V1zk?H@+&wlq9pzh@=fuhz(i8=vf
zw1sIbi!`Px8=eH1yEJxnNb$N#)M(1e<w&i1>%zPum}`XT{R1Fm#I&Vn4mOn;Iujrt
zok`j7L!O75Shnt4u7{u(=-6<^mXx#>r%{sm^a(jJDa2A^WW;gn8e7<Qm7*##z^KVy
zq%g!X@LYJGn>f|&QheLl<<^I0Xa!f(;FKO7#4{lO8-#ue24M*XhM_`@3n`#Gih?dk
zO8c<C8Mf$7T6+A}+TJQ*o7+Q-d9IJPg8i?PaybgNj-3OwtIfI{A<;E3*ZK%;DIB(V
zXG6E`y3V>Xh2h+VZ!zkVnv_yNy-$8poFi+Ig~Ou~=bhyJ=v9t=Imk3YS#@QvCOPIO
zO!zX32#S=pG$C))%Nvp^{~L|%@Ss|j=edKD7jz&PrPKCuslnkE9p#W61iZ2r6<a4V
z{OuiWLJX&*BHmRtp~_pmWPi(X!pmG9qM40cwK2qZW)AT#wsf}A*auoWI;iW^Gn|C=
zOLH&J|Gw;zoNttGq$PH7@1Nh*ZBZgy2Kswg^lpn><BQ5|{Tz+1>u@{%l1<-BfKm;a
zW<gRZYzQc;NF&Lf8n1+O;0fs0kpJI`&NQ2*u7rZ%4!q)?iKlKh8PSO{wKKyelnRVd
z%qGB)O6wzjJ}ahR<!!L_t9l(S^sZU)@c5K#S6$r5A$iMv<c^!Nqdd9Fx(dv^0n<`3
z%I2MI$*Xo_V?$}14b~-@ZyhSXI(Nb@>_Ncg1I=d6)^X7)W>;lEli<G~d0Rg{fteVs
z#VH3pH_@QP<mB?6`g;2^N(R+USQ{Ig+sDVCu#TLU_jgGFUw&Lf_m*CW1=f<KeM1)>
z%4Lxa=(CR)d}+lal}z-F{bgsV5#1>o<fPCvZzZF|m)BQksgDC+0ozQJ?ep4WDNXoI
zSpL&HZfXt99o(Q1?k5TmyK9g+>bzP&_+t^7?e!T|9ud+0-rVI!z2>_v#&`wHDm;H>
zNJTMF2N7=)SX?QjxJ!|Fk>USL20YNeT}@LlYZNl0>rNMBB)oVL(tfc})Kqi{@$ty1
z_$j?_G_o?NDUv>^Dj`7-l5%=Ll>;AW@~ENj|3aa#IBavJvY5fa=G&hCWyGaX`Fy`S
z#K*+}qc{tH7jSP(Oif9@JTGv2(=L?AUSP^EW`UnhnLCjXm4xA(4|z2hM_6vw%G*2G
z&r(Fp@k{RQZKB}!1(4FxN+Cm1ls7}c!dvZ=KANyLsj|(}Re#J$m@x=x?)=h!?1Lm2
z4M(FvB`aI|8!7&Wg^>|ZJ>q3_JekI9y~z<_`xiEEnf*VLik=eA_C6ymiH@Q3CBN`e
zGA;?HS;9?6Y=VpH^^cyJ?@RwaIr*yUcrBE%NmlH5JaJ%!4HBETKzt+?r`GXI4#iH-
zna6AfCp*lR7SH#?3B_SjijKhR=D(9@{_~d9mUpGiWttWepI*3`0%oX>>I3HJhSq(x
zkl=6-^@k((wR-z7I6SUHf3-mMjcu?($odA^QU0&jPFn3|t*7gCYij(Bz$<+LIT777
z4(CFik6lpvF|vfmi~H+x%-qs-Zb^2mpB2n9As%=3_t$fe75Q3^k5Ajne#B9lX?EQ1
zu3j!C?OZYNtclV^!T%%>NjO{%TLF`q9vNm9S%Hj}pL9F&Tj`Xs2xUOp{9d<VwI59j
zNmtjkBN}c5Vjf^<JI4iWd<w%s^kLTbetz?E>*%)oeXY8gf4#cv4AD1vla%sB^IJH0
zV9k(@Hn%*eUAhzy&x9`TetBG+YWg=RNp-)=N?%mF)vh=OPc{QH_%VOPU^(SBts4h5
z>_D7+BKXmwPoCxw@=<3ibBG{0>NN*`cE7YC&RKPyRKMfzBX--3D&n8>Te#c%yI7(D
z@v^40YO?b3iXptuIan)E*_9--60{2T(R#A`qc94BIBx46X(2+Hi?gqlr1s`W!-s`}
zwV+@HCl?jp4%Gh3wT7d!lAK{6#!T-yI(I=qKg*47X+GC)P`869_CnblzPk|q55X%-
zN8qU}S%;bjcD{^0+~tpLKHQ$Pf#%1qDjTVit{b?5K6$mzDJ}e;j~8*fN&VNYuQlAA
z_LiSzQSP(8F9OJp=R4jQPdf3~fY=}2Y&S+~I=^-ptyG8rC@O0DI1C*x?PBQ+>V;w%
zP72s~U5VPer^~COpaH`H<*f(HDfi^W#D1`D9VDMyyScw{#$9cwx1o{Y<A2IZ3G+yi
z@$tid0cRGIr;q)18?)|Dl2Hrd<L1va<XqwVoNTz;wfQEVLz?<3nr0O*mh9ipYSB%B
zJ{ZX|x8Fj}xww~P=%Iezc4!%V#38lgAc-{I?D*MO*cqeH3Wh(A=vE;&_i!$Efd)k;
zgT}9=*^PZTGyS3>@NAUhdp{J;WLT~vQEV^T-AWDZ$cV@j9%RL%8`K_?WLQRxf+yhn
zXe2$J%Ag2<K#0e&>6Fj*y!-98>j#ONA_3XR5c1i8P{Lj5&89nMx9{Vib>CIcdVE7S
zUk?v=&+S#SaAv86CtG6J&GlxI)BV}N+3ob7eGq}00icmzVg9GxpJ*;6W0fy(;p41s
z_-TlVl?@RzwmQmDf1++Yu*YHVZM#)6H(hRcnGFUR6GF@aI_~diYQ|w_z7?;#PcZB^
zVyv5PqZp+FKo6ja|4t-V+24T1gr-z*w@QEabY1wyl#g#ypq>Q+<pt@$i-t=mUIr-x
zcT{&3<QljviMse$sEX9-X|MQSYXB~NCN$*r%t6A5(`P;4$sWF6rw<Vr1|}z@nA4<E
zZ+Z`tG`G8UJZ`pcvOKQap8p6p#jUroFp8*^DUhj`6yE4E^bmh%e0ar5k>y8gD#H@L
zp6}K=D=v5r9i;zSJieeHL&ITDj=Jx&bxP%QD2~euXveb@yUkeQ-0y62IPAP<X!Pcx
zsR(N{n-jVj;8M>m5P-GEpoDhU5$9ZinO`hd*EW%Q)zNX?%dy|6V$T?pYVD@oY)UxJ
z>}E^KPw!WYMD9qLw~7N_jFCfWw%O5vfWsur@w^NBc)O^XZ?Vzs0BQU!7h<ivgxe_Y
zij-U-h_Omjxq-uK2FSFBR;X3)p=M+;EO`U+>pev<*ZUX5KD`AvjPQ&l=jGkHOr;g<
zBS@SGV*gQF%)@yb>QrF=2UmG{NQ~gCA6>45Yeneyr5g9W3k;VG;o9F5+KPqf`Mb{8
zJ58<hZ=aCfByDkijhwMlBrTSlhK45ew;31y5A-FL7V478$}Q_bV;x~QrZ!jF->}b7
zI|c4aZEZ~E@o96G75{3zX{!X2F~QgIJe7{O-DQKqvjbslaiJM88q5RVv)0H6)f%#;
zl>Lgp`=xI_Z@P%?8e3J@E6H72ha!fb?N9q7#~|EJ#D=MmqDqf7UK*EiJkQe$iv4EY
zNTTzv{BfVAr?!%8uR6!e&80@y*~MR@l_kP@&*QN)3@zU5tRxSHpN%`-uSu##{V#U&
zO&+pma}6yYSJz1Pi*e%Pdm#iW5=2PpeCja=2Tfxo&Op<jo3OC+`}owcKoqBkA&3O@
zbeheH&?w}iCpkX!(iv<?DpeX|K^Que8$1md$!D}trrB=8P{64)-qK3S?3SyHX{_c7
zdBec3&exl3`|T+(hu}y4A5R-L=)n)Qe*T1$NzWTLJx%tRj`P38`T@}x5DaG_1m2Wg
z9?!`pQ|an$b>P3<E~;8ALjiVKgtCR29nMue-yiqrh)$x|S~vqCJ|DLsqAsa>yB9S*
z&7C>!=Tt0eJ?G^Wa0x&2ToX&{YZLj$Gnr7k2c_ToA?YSS6;Ufo2n1{_FQs8k9yM~n
z(U3G3<ws49Fpj}TYmIg!OPwtZ;~mpHa}ok9h#`J}#u_vJt&wsEVkl-zvkhkq7;#Uy
ztUX=EsA3l@#%Vt}QVnd@(ZnBB*RJl_6HDX#^x-<F$zG}|wco{e^(l2p2u>3V#>e6u
zZ)6fZiYxucWSFg((9Gj74_y)?iC!IxV}nUg^5q^9N8|uf_T2v%)~Xt-D2qpn$Ya}+
z={>x5caZ6JjMn+y7cz<@o=G^7Oed>!d*Gf0vmMQz&B@&#Q1#9kHCCzK07eQ5Vil(f
zz+jmjK9zzqiz7VAa>>>!ojPj!yF}ggyzOyxoMDr!)8#(aFvCYv)BRTdliU|Wp;%>7
zua2=HR)1|dt!O7>G;#tCgW830_j*~Ee;yj2CYsc?85$QzClU?@`()V711kH^%E{d7
zy7d6T?W`!}a2Us?@qzN*>v_vG9XC_Jn-Xz!?I4EVdhq69L6%*!Ts6_y5Xx?`RDQll
z665vtBqzXFT!S?o0BA{&<x}5wJHf-^ajjii2~r39A_5U1q(TzVv>)FUygMx&F`7q2
zX)^o}#Msd)Xc#O1EqvvOV{Up@yt1N_uc(MYHRSlF@mEe;+zWB3A|vniT$3lZ?CQ;q
z!*Ct-Re!(5{&?+V+`&*xa--QQQlQnDW=`O+Lhun`=|Mma;vKC~o7)Av@da}k766Wc
z|3bb~b#+GFB)gV-RglKxdRGhgID?Ki{JSxC3xcZslc8k{o_*U=*f|PEpJQe!ltzm<
zmTNNy;?K{i^)0Bm)k1rlXU+4uA0$EY-io#%X6sjpEkYP?|GyQI7=GjKD#k>1P1B?;
zmv7ypNfwzF|J<B`9|lQEtIcXVAEZ8{vl+t*Vvh=ifc2s)n&YZ-$KrS?*#Sjo$&A51
zwB_$PSeXt6bFsWLrc7|F5W|;MgH*HaPB$@~yT#kpj+<@^Vg2n!AS^pUDFNJQzBe-x
zB20Rax;|L&DL^9`p};JZAYMeRVGOSdf{GK3N!#b^j8F3Ar6u0X^<QCmaXhC)ZIksz
zbNj;bhuk4M<AKYV%}p)X5k4^eS);z1;RkcSvXIaBXGG-u*ZY%+#}!?h0k0Gt_p(gq
zb#t-E+)qv|uYg`NTrfyuuG>MBD}8^BmmghVlm<X;shehzRcW>~Ul7?$wt^ygzMYjE
zjZx&l#Z#)v07`JITl=bm^0)y~aAXRhKu8kSVE+&dn^)mi5K{&owR3n)qa%H8K+_nn
zt46_P6(J)%HunpI3XBOB6*uBM8ohY_a5<fu314BV%*YWiT_04~hAZ%u#}i2^(=hIJ
zJsW-9+)p8Z9|9Sd<>H+`oS6wP96~N__q;A|v=f}t&Y24-vROP?t`!tg@%vPCa$jqg
z<*4&ZaMfClLOjl~S}a>u3}*9&;b4P7L&fGp{KavIFs~Df_EdYrb8n?xK07-l$>it<
zs>hM}Nu+!Wa76IgkSQ(f^wVTQn=E%{rn;#SA?5AsACm+=aegJ4<Uax#{OCaFWj&TW
z%iPw!?|HM`)wtuXQr+zy>d4=kg47Fr)5V~wW0w{T!FMdYKyhJ51}W7E+p31=wB>e^
z)t7=oExQUkwG2sccg4Ols=v-C&}rN|05X5~-1DtX-*H**b?Mdpe$Bn`q__S>mZC+B
z$L-wsFbe4`j-l&WXRbgllSxS;9?fdtpK)RtkgLu4qo+{-zcc^FJS{@fpI`5ZttQi|
z8|;lb9E~T5ZPp^<kVB2blCVMrcgS$;fswG(LW0QqJ(=|RgBPFmEiWOi0OxV;hmuGg
zEHztcDl1+y{<4$A;|g#-<F%3_m(8|>mx#gVy~MsI18!@-8>czy1x0MU{}2WX6?hc@
zB5*g<^$~93fnQA9l7HJ<7XF0HqD16(&9Pj{bCFWkEx;~N=0b6KJXijk(yCCxd2$h%
zC6->Cx2PB;ES%M)EN(@3dkd*4v`Uq4n8oK6Y`&RCceC?dtLKp*Vf6O`=Kf{3%VJQM
zL<ha$V%tq}3+$93)A4k5Xxw{AS-2luGNpR!s*|k;8m+O%Y{2iE?tEP!Ei%&ckmziq
zrl*>+r=OLQa+XcovgvP9`Q32OHwj(?Vj~fsl&rY>13V_YUl`P#e=%9+rAoaiXh=Fa
z60>;NtHKhp(?y=McE{aet6_9<bGe>?&lQ=+-nhRz5kB7}cexcN*bK=zo7b@=3pS)6
zgKT}u_Hf&xE07+m6=Ka-S*782sxx9)O*S2cdC86he5xRfR!9t^3(DKWnV}Js2AT_k
zK+pHrd#FiazUfRhTXw|#^)VrR@rQ7Rzdk3X`GLEch;{oJImz!?9ZtWlIdK9nqZ9oU
zFje4LdVLO9|5id5OnYH`fL4WKiA*zM)XHL+ViaZ@ksz3_BN1Zjnz-lU!30B3BkM_~
zL$u=!zH1we>biw1JS_t6gB;HF`_C5&X(B*>Ih(}UOfSx+5MzRVkYB_XiWD5=l=5ec
z@*+L%;jyZpD7V`23)8Qf&#l_4%v<xM?fkLKFx`brLHj~*xD-}rcR{U!-0P;5dxU9J
zXj9A;ODf3S3y0qS6~tIYAh6HX+kKLomv_hGd%6}nUd^wqcQiKos)L|o;=K>!a7}$E
zbDnJ8A9*?vLklwHUHK(@49D<~Yd`Z)FIA{032&_|mSSM%3w+KM8wPLtY<p{lIGU(+
zq@2FxRl&#SXV}#D3o9;GxbWk=4f1L<=qGGCy#qKUf6-QJ4|g?sRGhV(okAp=)iK`i
z_E)uNCKr3@=&7S`THLV6Ydmh{w)XE)WXnQ{84#A*u<oCSsUJZ;b16|!&^37DJO&Tf
zY9SMEo|*xNLXZyn@glI|RUbI7015WRuF$n?8i;^3^AXa@Y)(Wv0(i_29C3v`K<m<s
znp>WaiRi(E%`mCoUk+lVK?6USJYbzAX0Zho1M+^wqL~E|&YtTPV?o8?@C{%fvP#7M
z<k@YL(lx&?;Ej=3yx<mm*Ii)clWFDwi`Z1_t#&kfGGA8iha(7l0HE|F+haO%u**q!
zD{G;yQ`!xE<sA|}U;zAV-)p9GWuFg;5X4SIfIGEV`T?}otC@%Id`@5(?R+d(P`uPc
z^OwLI8GMy2ymkw1SMzk>(%vt#gnxTr%wU=^@&))SN2tZ;DbM7uZq9m`1XxX$3p&(4
zXJ9K|Lv@RDrcDk3tV?BUpfVgf2ns@A%mGi(cyxTIOd>Ds$IFse!ru=iz+&{VZLl>}
z={4<6*(*gv2(c*9{L8FY(=w0)Y^mz+6P>!oAKW%c<{cqy>*nDC8e+U}p;LStsU_Bk
z%{Q}ekBwjF12KGaUne9L1oNjpINtrd%-1OXv@hb|WU=PvXvU=oykz6}mKV#tv9x@v
zM6M7KBv^kBob^JQnXSe}#+KLqayz!dKUa2!!Kb-#AGs<6Mf3z2hWs;vmWDTp^pooR
zdb_Zn`n7^e%<FCJE6+SAEsH1)V+)UgaD|{W78;_i4xpt2>A;sV&0#VO<^}s%D#IZp
z=&K<%3)HH<-S~W4nAg@4f-x}u^KU-=dcSFbfF00NES9RXHER|K&7Epf3%S{(<$BrZ
zg=52%?)lj!d1?Sd`l?)LG86)5P-%S&9zJ0D@zL*K-zR@UXw9Y5#tNC8U?iqxdJowW
zTJd-!mn}S8kbs7c|Lig7xH(mB+TTabQ&t2`xe94Ey4|Cz*V=2x8i|b8G|miUG-^Je
z5ZC}#T6z!I!1k_jqqn-(gwGQ_evB?$H|h4ZQ9~*T#xtX=JaH+2We@|>#KrlDvpSw)
zdAVIQUvG(cPdAC`JqG$QC&CfmwC5X4T|P@~tX6$_L`y2dZWX}iwm$7sZRSkNIO1EF
zWYM5uiv$zU-z*^;4G7<kr2kAI#wqsg?cKsm59F?`_4(QgEbQyR*=*XrtG#0FV_LOx
zFs?eYFL$MeLN?(C4{Xal(y<EG{y*(q^<UH9_eUf~ZXn&=rNEGhQWDbL4br0|1f)j@
zf`oJk2uh6{FiJs?ZbnE+#}E*tL%!3``{VojCwzbS?#H|HxUX~0J<oH`>v`^W_rui5
z7%-Q_J?E)x*@MtN3_w^pKZyDu5=hdZHc6zHxmPR`tR>7w+-W-s3Hs52f0#-aA%7b$
zQ_4S9Nb}w}LO~f{ozgX5@f8iLQkk_x)T-PLNoziCIFvjR01CUty@fmg5J$M`&#@%3
zdn;CF-yI6oD2_&BfjKfRq+B+<bDa!2`Cj|7adS`4!m{0)W$Pz<(5}TwYw<Nz%J2a7
zB5nJ24R!=vUCayl=+PC+j8gXI!b<B7bv5uH$~FUc`93w@ed;W*m_}iOw(uL=tim`H
z<KTD6XX`ur+%7jdll^W__3xqT44I7)c1;xnb8M;n`daco&Bv=Pno;AIv6<d+X>e47
zh39x6P<Z|;)U@||=ERZw!x0KRur;1hs84D#PE;>;@DC4y3P<KRWFT(Dub1C~OMNXK
z4xYdj<DJLV%s1Xh+$AC7qny3lQ^#gOzKrEPNYS8J6C>){O%jT{ntxP@Yns0f`AEwB
z>c{>n4h-ibOeRJ|Y&~kggLFH87`6ZekVS1IGKG8WS2GP4%p<|d6ijBsW3v1>@?J9>
z=7GEQ&ZF1D^#o{cLo?6FbrMVE)t=Ysq>PZ6?~<*0!ASNHVPB-sZ;u~FV=daAk(wYp
zO1*a$pFp30O+V08rufNQHZWxv9Ah@2se<~HV$+e2ho@wXbAyx97U$_X-YZ!CFOE{c
zlxET+-pJCdTe@JVB4r(Irqp`K6nG_qa$SZ#>h<`ykeh{muo9HrVK9T%wNd-V8L~jn
zg-?`Tk@RXd^=a8K8d`D3t`+>)aX)12wMI<iP~)AaXCKNSUn=0i#SNSA6ux6Zm&Y=p
z51#sI^<+BV6d%I`Cn1cACS_nNk%mWwRYD$>rtrk$+a<yVUzB0Hi4nvp$<EGA)*#Zb
zo*$7!)Z30KqWsUauTugIsD+JPw+~*~3N~-3*Y*1Xrd94-GEcZ%=tE8fh&}*<By+p*
zif~un=Td7>o&!3yL1*X=8qTQhoZRFVs;DZfs)+1(Rz3iea*1uOJ>kTPIqec^j39<&
zEl&7jV$-wD*+;I)9;->worFXa;bOS~=u)r?j&SLv^?lOyh+GQ$mN3xrtQ+qgnm~DZ
z9Q928mH}#E++oSjj<`$AY%)0g;@D>%kmENU_bzIbhB_=;NORS8h~a?6^M|wkpSf_M
zF%$TDW2_wBWpyE0wmzD3b*fNC{Jw+Rc>V0a1^&&PpfrYON7{$Iy*&us%3|N7u$Od|
zjA|TK^(eJlQ6tor-m)_T1{K=h5Z1zNC-0>mY?M}eh7yQzSIZM}F9aMRCi))7m}OUq
zaT(b~hg|wX*TLolOr)aL!MC#Y1@ZzW;2}v|Xyu=ih87J#XT+&dI;m*7^slYkoQX6R
z-kP!^bI3j9Jtp|b$om2b<zPi<?!Azh*26>9@kUK|MpjyzpxnlhpH%IW^yg|>V#Y$F
z+R355j@fI2Z@D|G;und#v)zsN@vlLWp)2MrfgMC2DSk|1h4#eLJ7^Gl3exaDNTVI9
zU*5-89Apv8cp6n8s8pNCRQFLt05=S($y3vwNKZ^@t%Q@!q_%(hzUR>kdTTKK$z261
zd1wJPeF=Bo^Utm@tNi#EZAINd3oP)!k|jQ@HKGKLWhwGbKNb}YD`s5aLUmxcxju5I
z8Tp&E(0T;&fU;0oTyM<nyEa8ozYTG7U*?}qQY1ldW!X(4+92%^B^-m2e2a>DOPH+`
z054gjD=p<`bdcFX@Ft*XFRS42M<=jXgV8ID<h6^7fGqZn>%`8xHmRHNI7GaQ8wW6m
z5I`D*!yPRBWMeRwyRF$Tt&?=e!Gw$gI1?(cv9ZxlZK;led~llc%SCBaL49O%2+NGa
z2)YKD9agImO>#?go@a3lZFv`I5fSQFEVMr3sgP|)*y3EXbIf<jvw{dKfS@*ZPi*5n
z#EdD}^_91yu5t4g`oyS`Lp8buFYiV2u~Wj;^8wgL(o?@*SKrnrr@QeY_)Na~4M=Y0
z7z-&$sL9*8o8;`>vLGa84Lc4lJ`sB^dthMeO6#l%BD>EGYo9oJ8A5np&^rdgzNXAU
zAa9t#i)RC~=1r`SjliQV4Oa(!4-;8nP5=rUytC&{_+bs$oqskW-jg5_90Bg>b|zvA
zhvj&7(^8SX^Ekuv>U0wVK2~4=wL~)o^opq?4ayDRgIe@;bNRC27#=25wh)I|!8VVH
zoxALYtjmv%3q>pc+z4-NuVo+Xj{1<}6-xqV1u7w0*9bOwe^<oP*p3pTOhS6xRnbRM
zMi<9B{F~+6m-F)slX5p~x*tZ~<S3}Fomvt?uEO~`)CtDrp5e&eAu+v!z<)@($9ekg
z5_sA1X{-h<-3>pEaZzxV7JR33Ru{CY;xzs)E;-X0^0N2?Nk{0sOlRclaSWGh`0*S~
zMC-AjWj=bz^@=>R9m%k}-}p`a&2)Fr`{1;)K6v9oq3BfYU=urA*cRNl&4B5}7TG!a
z(_2n&WnQiRmFtCyU&UT;w!%iC1K;c)`;Dz|`br<j#?uapfc<C$v<wMB4$=Cp<=uH`
z$mB-r{S!fc=BO43KQEow4?BNzbyd8Q*AI^(7C!<FXDYearH8My_X4-9X>U%l8`}Bp
zaeqlUyq7vY5=H0KSbWFjU8P7x4G*}+d{>XtwXPP!Lq&*)bPMN%!a}w3C#p(x`4*@t
zdM6~%)nqI7DUqrnv1NJIakt$kGisvV8ZL<fy2n@?G%BpeuI|D?V5z2ye7SiK+I}oq
zDTxX^Z2Z$(ECL1b#8IpH+hGn)j^$P_b}1bTtm0q=cL9e=^1g#LJv2#l4}2@W(syk1
z@{ej*Ka?<=4%(FzSYn(5yqCCj`VvD(1mNV~{kT2#ph&%Z!z<4@st)*_Wt67CyrWq&
z8|+@|L-2EQiH_Ny-p59{&R!k*N#{%3E)8ES*s6_g(Z*g^e^M^zLvWA=op<bf8Q!${
zWD$!wcOVihp45&i)1QdiTQaJyZD^a?c;7LW??_Mgqw4k@d{j?;V@rKoWPUt!L2N?I
z?uS`CV)PZOuwzEPWO=!&6%L1n<vwoHm%vr@$xhYJwV2M!Xgf>!S%iDRJ1o_~hp!~6
zbpp~D!;iRhvdY><T!f{H`(NJjIwMocjGtg_yX<ee$RTZV&LADivo0#BedN;e<|uUV
z+8vDu4Gi`D3f602bx#qLuw9?}=$8GcvpSbAZnGLWBWT+4<hy!jr=gCgf9O{Gj_5}%
zxlcMW01r}OTmWtt5sd|*<7+GWwa@aC(P3wlgYF>Z+YG7JP*GRwlnCC_>PgSKvDRa+
zr?4s($0V5qGb!q*v+7p-ySHm1SjD=WoWAET0jYc<pJ5KEe44j^)uBv(-eC(y$PNeh
zO^(?oZpq`eu;2IXs-_W>KkG;%bXr)cP9R>^p-H~o)J4tGUBJ3{I7{${M06r+znm>J
zPMiHD<@ibd^?k)*DQLC#!;&~sV6n@lws|fYxH^GZUYRmg3pMJ;XyQt<8kHi5UVvDN
z1KTbb$`;E)#2o4yznvR4U5%^OKXlSBfs&*@THMr9IweET22Z;+LzZX`%r4hI%Lb2X
ztVCbPn=#GwH09TL_O<Za8KbdnAl@_eDqQF-(2CH6x1brqC|x+y2Jc7X^*ZSUQ%5i{
z5^mh0*e!Kz2g=qF&bPpF#%lNfe9+S;?d_CA=C_DhrK5>Vn>p_^GfV&N<D1^Pk^9-g
zjzLpf!YnN6KdMP<vr0eJ?|?IWoo1@b;T9NnCrNN%<w81L=xf8CvD7}2$p-xRfQRLt
z!k64-4{iVE=x=Qx8kZ<E!cv;iQV7)5F&$<&?*qachcTbr6`xF^@9L2>)J|V4#`XLx
zoWsJXjIW%V;^EIqTvQx+0saiERnRYb?zun|?+r2}Md5D#sKWet-AU)&80y~qJHoV|
zn=svguOpGqRDV-Da#-pezCQDQRy`4@grbJEEswtA&MJPrmz@bxiqUjv73j6rz=ZJL
zvtfw5LtCDGr(Gml0O_bfg$cZ_?%uf1tub~Vz%CQJ60@X}8x|Jz_>;%7dLz=82&W9W
zIdaW$<Q|ij=*0Ut3=hIQMJhiKc|tnflSrG!7S^t2l{BktqFK=c=n)Vl=C-k(cAg`x
zw&r@F*G${XLbNjlH&mY`9AKBc!I=$sGgN=NWh>PD1N&JmU?nynxEyS!`(X%WJaFu7
zUguI#6`BUBn-rNKh4t=)lp=P}NY4IOJ|_^D5KN8rVe2U{QU3BYb$EBq@zea+3!;M8
zaGm;GLCtVh(Kjuz!+hD89u4Ikd8lc9o=ET~lla;KEadlO)$hNQ(DJG+!8L2&1Y4fU
z$Wy4YeL`YU0+H<4Nh@r5mpUGv`E=rC`L18vCk{5X?oqrd-)@`!oQ~5A8gIhGT3*K4
zG?#(}ev<QWT{a=VpB@fNo6w-TlFcX=7BkiejCcl8D<u}hJ?xQAC!NNp_38omanvl`
z`)Dmh+W324x{Eyv%6}3rswhUd?JPE5V(mUboWI)BgJL*#sI%yc*Q+S}bq-c}yBKX`
zs-+hgYtr(ybS8QPp)~{<PEX4pf^75#oBVpa7D;{M^lQ#{TMq8H$>KO2a{e^W-}{%_
z%Bj7ovur;rD2f&Fv{^;wXZNw-(AJoyN#NeBHX@qledhV9zyNSo3{Yu06%N4@GrUYI
zcCP0;S>AnBtZnd$K}O~<t7Oxws{Nb`r~BwB>!|W)hIQ^-*6WdwUjtJvE~CiI0JRal
zZ$_!RP2ul}DsMNGY}|7QZYTMC6Le7;gaR_X_=s@)s(k1}cq6+&nr3Zi2@MhyOJn&m
zRmI)$Fb*b|CqaL&Q^S#)fmd65Q#JXuHZCXCSZqt03+DYCMxNv0Pe}<}kKtlo+wBhx
zG9=xX%mH#Q-dEmyNE*LSO+}a9^V^NA*cS=5=S<!(5wXRlXG)`|M2qfMbP|K8?HLl+
z4C@P2UnHVCSiG!qHj>0ySIm8nf%dvf_i*#su)#!F`>W!|2u4SKrPp-4>1Lk#U6H13
z>o*qzBW=-_-$ydQPv1V<>uOo$-V#_2-AR3%{K)TmRB+bKQDwYrif~5VpAFOXnR@?K
zLYF=lTE<vmQXi`UztOhciisj$(v-ezUGfJwjs<7mWEU^i*alV$AJ`d|wQSvC1a4*I
z3Wl@<!g743GSRyGcW5v7{k%z<`Z{(_zb{y(^K5gn`}nd?EmmY}8}4XpcWXXZ*LZM4
z*cUFBZ|`IJc{Qs*UfaCss&<WA;kls-bUT41fMDiHlrXMd9dez=tr<sVKoxY04TO&)
zLkDqE`k8aFv^~?5?NgWr4Ktw6O%g5kc?%1!i?0|OMa-qzUEd9?Gz&NfHJx_@U2BXI
zD<2b0EnawhzQ3#I7uklmG<s}RbTa(qB}D>)hCrq#5*d5|Y81nr4S7=lZE3J?Io?Ay
zK8608U3%4CMq)Z(HW_=p%X~`7CV?CgNeX@c1MN}?q$2a_(Bi|P<2>UG=cr8}H8i8X
zZ)@Hll>1;?Yqs71KU#8SIXa1?YQ^eDd)U3b`ptNXNkh1UIb-)1(1Cbo6x~6~QL^e_
zLjQWi4o7y^P!!KszV1Vekuo^RxVI819Nk3hj`}t&`_rIk3FY`=(MeXOG_(wUTmiLr
zs7MLebFd_zyjrK`ewl)0O+c=zS)0m58TZv@w-j&B_ILeh$yEL5+nb3m6Kl)fHoEz`
zcvKzv!7sug8yWA`6&US5!x%u3!i$Xj@0bG3UhccGf8r7CN+Q7AdgqfBnO9YEB604u
z8PkHhV=dQTn3oXR<nm7FOo5zw1R77#cF~#>GzR+G<N_BPTUXC&bmlh1EcW-HOJ-lk
zOccM)x%|jn_9ovQx?Wq1IhYnq3=lgr^LTwd-6HYk@<_B}RMSl(VNF2qM*b77)Jn7k
z?l9F@d|^;jdxC8WX}y4D4*$b|lO&@3W^;!(=C!YH8%~!R7e2oxpy-g0n7M5n7G#?$
z0P^8ay(lnZ#SxoL4qx-$LuoSwt#w#^y*S>rWqRAWek;c+jf^jp#=-o09xP_Tme4ls
zJ7QU|<1CBm%L7e&*ztgLJnkPc4HPqv$iYl;^ZLg|f@~x9;q0%g&zlC{Js&nhjn5>5
zQt`?LQ!vZ|N{*#JiotU3!`31FnV@m4-gT2&eWa<x22{*_@ci6#=ycRoT&vq8cFTKo
zS?;}B77t@BF!`rjlX?_dfJqIm`NlECu*is;S)r9pG}aKtv;X9WR|4j$=dOm;-Y`|l
z00yb5Q?VSFG`-OK2Zma*Z()yQg;LlWlh9;Yqx9~h`6=tU(-w)Fmd~{pZ?^bpeTO`@
z4XOpwBrF`6$nw8(n>gi)$gNo*$D08^Ik7Rh<ohRp6}ckrSN;6Hm+$X<HuN$uxN}WH
zNJR9a#u|zHxTwmRzP80X{Z<d7AopAES|Q?~qGC_WHD9e)(nd-oi$&KEo<xT7Y`Spy
zLRQ5uJSy`kSPum9(UuaqqaQr2)<~b6G&dc74Vs7$^Kn_?HfW^Dd-AC@_72!%=}B{|
z0kBDhr0;U;!qI1PRXopF`eTjmK7CZ=ZPC-CvawdRFT7?jF%(DvE9wKLB4)w<1;8<J
z@s<*I(VNJWKX;a>8ITfq$Lz&ugp?Z9ZYj9k=yL$V+pO0JIE6e;S2}y${!YX!uw8`O
z^9mA}4xXPf542sRGL;@0*(b60njCk!@<273NB^+e*VAF6s#H6GIQUEqf;XTB4(a;g
zkCs2LzebAtfGOU;w56hXf#!I&V8#e`ov%n>EZ>4;+`>;=zJEK$6`nPTuy`;Dc53OC
zW?A;Rofbdoc{e!Gv3jA}Geu*ps^XNby4wNSEXkl^YkDiP=nr~hWLyD`A<p3mrP}sU
z0+vk%Q_$YJXVrIj%bXOVUon5oXp`PSiPyMf*F;%gp6rI(0X)e*++R7w@i%StE=G-%
z6rbbSi$x9qRXxO<6IsirDhxHd(DF}kkG;-es=5Z7W|>P29?Qw8$w?LyG0sJY?SMAV
zh-Q;2sdDBO&cFqkc`6}`g5d|{bHX|c`R6W0KDYf%3U=BhJ!zU&$LE_jX>gdP<BtZL
z?{x@%!G@cX1Tjsx?6>3xIHgUlLnrp)blRGFfAa+x<jPp%<Xbz<SLX>>G?;i%3Fr<z
z)-Tl-fzri4gnV5gjG?>-@a0i~&4V;6{F|5WItKhQs@BVubxQ#Y)~U^b2BkT4iPOd1
zj4TPd`TEQeY9z?=(rzA+osuFSq9(lqU@CnxZNTX0y5qtj7@BIoOK-GESL)V&`;;X2
zN4Ua({yQD>aTi?3N>OQc;mRI;RKLeJ8L!!TH|O<uJ&8mhO3-hN@EH5!XLM>3QwDCv
zS+guXom^qZ=5bCrJ(b9?G14se(Z-W<`*`o9Z=vtjl{w1JfN>%HVz~I^Np0uc4m_C1
z!ypAKO!^J+&^0s+Rh2Cym@O_QEs&Zjz!{e>Z(c=Lfg5MoUrXtNcoo0a?mIM;fR{6*
zxrqbs%CUT=zB69y&tCfBk-f-^Gy&}77+iPiQhPub!f91)8zq}=qjeQmHb)*Wy|ejE
ze^p0bOJZJ{_$_B#sDLY~ph!X0(D*w4d^>povNWMYwC(pTzdlFO;UoFivhgy1TXQ<D
z1u7hkwC3eSSJYEyDwhQ+^fP14n*G^Qb*r;`atrN-zk1EzldAEn8l()iF%x-~P!MP{
z$k<U~Oezw>-isigGn*8<l5!6V5Ug~Jf8Z*S-zL*(nHFA)!N28FHh5jN1#CQCsXu{b
zJzA}7xl-xI^FVn_^OKO)+b1?fw|oUC^#^p)d_)x@sM^u*?SQ`8P!n(xDKv|68%L`g
zeoQ)_$~j=rmt*M#y@n44_zZ4zkDN&)os#=RK!=)-vr|zx%B}(@8Z4hm=17kd5}G?2
z_>9p}$JgMJHtHzBYzOf--%o~u#M9atM>qgvuJKuXtX?U=6;I7^)GqQ7m6rLrX+_Vf
z&0quo1FdRlwk1wd7u1yf_Tgl$&1Aq=guiM{G;-zT9RM)ukPfApUZHsG<MjF{)V?>G
zxM?SF2T!iv`<%}Bqcfbm9F7gwH6}vid8L*5^p78pR!0UUHqIyYZ^hRIcXCbS2<pOB
z7T*g_jVY?6m;5X-)vw@s-Mk$%P+|E&nS7^zgY$*RJ^Z^S4L0y3MPk9U`p{Q4@pTvI
z9EwwT*c9B0Lh-U>dcR5a)r`2d+6u2zS;E}v2d}uzFB#OogUl*Kp?$7trJORCH0@ip
z@bJA#vDxP{v7fnmhxmS`HI}USKQK&W5je~=^N9!yjr~$iU(Jh!h1dR|!mWCd@A3gP
z()~+S_UT8wsnIznoQJgNsM@d}%bBo)M;uuW<enm8gr;TbTraq{Aq+IaHWqyk0S0ux
zUt2>lJC_Y>X!imEo&Qy`aqGHZSx#PArhVzktxN3%snj0jC#lyZZkVB4b=hV658tX?
zjy+0=!C!%(ubZ5$@`O|ydX!f6MFw2=<8suNss(<}_$N1Dk@3Jn`SxXE`NZM8yZ6de
zMLCrYK=r4cV#B?w?FA~GqpQgjY+_ZTt44<joKOKz_Egp^slu0ccyGob%r2QWFZbhj
z7KGu=EZ>sNK5#gx>U=P&qIbC}?2o!y$#u}4enqiom@ryBx~l9?wfVwnV^>hKXy-9x
zU)?l0C|$b2?GwlOd2zhbuP=S<Sz?R#7q2~z2}pnsNz>oA=J5l4o;~gQ0Z(x*8wfkO
zXYq+GeGf3n7|GNUPU%3OWw_-j;NP7LPD3X3gVdSEx?a8samsyNuU6A_+I_s2ZeX71
z{-jbj8NpeqTQMCk9<2Q|&M#QOd_;J@N}#~HpeOjeo6aE1KX8D28<I2}IFV-eZGFFi
zv#-1aae!3xJdELrmq_rFHp`Xklz-h>%v-hDFTY?$yW9dGk#>D~NVV2C-%rVjFK^GH
zB1G;6JDo}5p=Me}j)Q$n-AveocloOPQrEfuEZ=WulShZLQ@=#o+#;KO7yMxff2Yd9
zFU4fCylbcgBIvh#_^`!yKN&jb%hTj_)MqLxJmj_6nfuK8X}w^XnnI+KsayK%ImK)t
zvV#?UF84=^*M(@1>U`m0EVz|pTHwj7;{f&R=LbUEhY_&AZ?{=rUec>B*u127AyE-^
zcQ<aGCRk8v9dG8|GntW7*@1-3t748CH?B!i4zs4ckY9~rq8@H~uC#ne>{t1`N$G7_
z#x$x2K$seYxVzXh@N~DKQfqGpx^S*++7;or$Rdvvx(aGqbEA(zG%D}4`k5xi$2t2i
z<?G~nBl&<cWX4~@WpO>tg>a)A2>gcWnRbI69~JbBZQOBbO*ZQ(_L(!PGM_rI74#E0
zuzg7{%%I{mlw1^Vcs{_!jG|wGBCs9EZ>IN|U{R4wJ#~oU%*Mu?#U0olyM@!j9X~-=
z)-lW^1Vzf<zpa=(_$O}a`T3;GvYzMgm+xGpK18Vb=GbRt<~HLQdjsEm!?hupW6ze@
z%--)RL)($h7MA2~@(5}3w)qb66y7EL&kphj5+`g}H`4yujZ^|R*l9)NX;KRJ-3g9>
zfB;7bENrKQ%dx6fk-f|xm=pf_t-(VdG>zuncg{52+L!|Q&o+da1Vn;;E16BlybY%G
z&f^uAraMD5xj<k<vFg$qDyb05vLn3a*5XRTBI3(}gxngR!Ms{V!e2Zp3*zvVv8!IG
z=*mR3s>a{{xWZ|@XZB=3yIGvqX*(nDUqMNn`S#Q~E^I9F!pHf8E`PNDqlGqmXrIeV
zD$FqZ@DABOILCB|qh+jKel6msB6|G0od1uuVP~w>F4JzJ-HUfR+CT)_SJn0!f3t&3
zGHYn2Gru7`g>zuK_kzT~HVFR(_bxxj<4c>*qJPEOgG1Z7j#I<}-4ZHH>MZV|QEvt>
ze2R3w{Fsu%h<1=TQ2zV8&j8o2$-)y3Ln$xJvntGY1p1uKES;yj&<x9wFdiu(DGW{Y
zk8*Exah4PUhlM3;IYYAT8eN10v%s}k?Mb#AhA585>qqu=Gk<l!6ge`!BDNvNXp-9C
zReL8R>31O7@H;)qq8FXOBFf>nN`FN$+-)!pp_F8$S>15jrQ;%^AeHt*+@Yho+?%V$
zbWV=HfVGjqI+3SgdPX#(w7Qi9<G~B1P5syX!8l9L0OU@J#z?wEP^5h1=6}`3^e^LN
zIOJL1(j|e;Lpxb8(Era@`3!6zC%#NgedU-J?be{b@sdafNCXvk2iXh$siOZV%8c{>
zLjUiA|9eqTM2hWHW0(r#@g2+v{|knh5fBUO?1&prIp+M{Kj`gBz#`E8o^coV-#G6A
z=vC_Vsic1jQbHATu*TByDgKML{@d8~&IaiSgqU%iZv>^ECPgF{Yb-X0;(rRD-)StF
z`Box}@;f}A<9((+W2Bnz_j%s28KV>st@rPPga17EyD$Ltq>9%#9<93g9)8bn5&LUp
zQ3($LaV;ff-17fQ13XFqyGD1`^SOqB<aHN2`9*uDg~A%tfO0zKkPE449O5CLwfyts
zzgDtfKaFXhy4tM`>LIPe_xfT~@7$&b*D<cmvLobqMbGtYc~S6l0jo)~P5hUIdQ)Ca
zoLPC2Bx=b$%+CP+$pM!n*et4y4-juEx-&7=uL-@}TxqAnvY0F;PYyvH6#i=iD9i&;
zG+oJhc1}Q$#0(*3|C^Lfh;U+SL2RtE!fvAcvVV;}V_kA^fqCcn?ng6q{yWPXnNS!H
zCr0wg|B`HH6_xg;QT#i?A&wnpeB`!B^Fk-^)O^fy_`LjNk6jA%7S?P1Mey(PX_11o
zuyxy^C$qScwGk^AQJ>b$*2}=v6p&;E@()`9`m;)Ow;Ut*^h#JB_<n!$Mb!}Z&4Yp~
zJaK?Nwt_Z4c_ELC4aI-m@tDOQgmrhefrP1IA=FU$YpiU{FXlzIcneCqO$sc`=ZS*G
K<4QTJ@c#j4GvEOL

literal 38057
zcmZ^J19T?c(r#?qd1JrPOl;e>ZQD*J=ETm#n%H(GwryK?zH|Qn{^zcHZ?Dz8cJHdE
zs`gX6S9k5+kqUC+h;VptARr)!k`f|HARu5Of7>}QP=Bv;tC(CMAPC}?!omuY!omOr
zCwntX8&ePviO3XnXbt62tQ>76NsB-j3E0j^r6OtAd{LBm+GQ9?K>k2HipV)I8m?Mb
zq$jL8iu&>tZbYjtO|<qYyuPfmG8z(})?Ud#_hZw0i+hXx>66oW%3tbmlN&rh4pE+V
zQq&c6Bne|=mrO__Noh`_2p9lDps-_b^Xx>!4Fuu|;I@4!Z>|R{Dpa>ow{~TJ)f7;n
zjJ<#W98t_+_TPCT{6Rq&cce`rK~Q}2HoeRORU%6TYyiQqLiDP;^xuJsy9nQ_RaVG{
zoB^BQAQ?k@qxB$v?83a%NciDzEw+M|RY_5#LH>{k6O3TrK%j^V@z65bhoK2`Z^z$2
z$}jSBu!eDZc2pWxR*O>XE7a-y9M634Z`$*h)~hz64kIM^mO#&<r^$N0R+WXTC?ylz
zqMnF~4qwMNa5Vsy!aG2%S`;Cpv{qQ+!wLO}z(nGPc`Z~3U<>8YNyJC5nlU$t>TgBq
z#|*-Xgl~z&+oBNi)CdY|5Mv|bbAvG-<FNT*4=!I4Rnf>_JR)gi{cIl@vQF~3G*~cz
z;W~x$TOo@8ypC-^##2rxc@?UG2FuYX%*G_j!}OC4<qehsmBh-=MyrILN6(mXJPCOr
zngKPkl^IV*6(AKee|^4lr}Ba?xK5v3n-t~|aw|C_{2L}D-|%#`&Mlu@Qkij)h5;sW
z>A5TUaLDr9v7Cur=vQ;lvWi}M-pwF5{C1Ga-5&F7P>YCbj)xeVy-yYwaR-bDI1&sb
zeO>?=_yov`!206aJiPxe^FC1I5dka|Fzg>@BV?lA$pV)k6c9c`Bw+UY{Yc6+NvK0!
z<@>cB79dT^&EQpuIJcPxJOOa~eOquTX(k+6EYE~i16v|T{W{J&3RAun#=^3VVud)n
zrY8uRX#ElS0}@6YGpOvn;Ew)0czVG*4#U0<TlqF$O;kLTE+|B()#zNX&85-Uqh00U
zkdy&(I3zmC&O>S6_uS$a(2;w=0sQ+z87;65y~BMHHasvxk0DyIl+LCP`p#d4VT^6n
zb%iZT3S%%*OoKbt^0rjA(}q~4^4;h0TuU)KT~1-<U9r<I1#@5?aj&ar+ChXpQ$|#^
zcgu#Au(h?u8mw-x+yw*u702!iw0KciHDgrJw-Mcu!*c^FZc3M0SF3xkioEIodZjL6
zQ1dXCRGBOaT7$ZsO#P8vspmrRx^>+RA5aB9@%frx>M{#YpoV(S+G+j-AX_YD6R+CC
z4N%*Ej6rbhKNmH-L*j;|Kw=y3FzbbWBdP1bT%Q$z=TaLRAXNr}R}K?;fcm2#^!0e4
zz@rJ$rbD&U2c2m`nFVngkWfP&7*J?Hm-m>}BA$bJ_xk;TKnh0RMreUq?R9m)uFkQ$
zMz{}THvkbtK@$?kiC{JgTqd20;NA^}AT^Zuh89;udLn^EDu^*cu+LpYp!q|EL_2|N
z-+Uj%35+w&1<;%jE`fZD_7Y%3jrd()Qi0nA;WW5@hWZ<7c9dEEiv_b*5Kx?MM#}|x
zH6llVv0!ON?jCnF4pau-*eEp}{xI0FR)ZdKe86OxrxKx}$Epsh67q9ey-uzY+dB^3
z5o)SWcN;EtAjyF*CvLhwZAbMP*n!F)sy|4)>-%gDmTe&AK>3W?5+WHw-zOtPlOI$Y
z>=5sO$0xfH!Y)FZAlXRe)nCe-k}jJit0T59u`bRdcMfnveUl_lWFF1H5Qw6<k$@~x
znuVGrnq{8FRAN6N)Qq+fbfXGSnj1m8C3S-IWPhQ4fqQ}V3@DJUD}Giqq5&JDAA=in
zlY&2BDb8dOSSVao1}}@8w>cHEqWB%?_0ucvRZ3cVTxwk1x*%1<I#8{6QC{n)k;tmE
z^kgo}f?yTnXHZjCQ<7VjTjpbwT<O|O@QLL;*sGHl;RpE#=tnl2uy-Syx^^C~e!Et?
z;#<_CGhtM06_U33Pq{j|&?(UDajwob3|(&BSfIRnj@|D|l8wx^4=)5>_D+pXo=#J*
z_J^r6-UX_YwUh7@_<QO5=9Ap{D<cC0YpC#EbD!bmDUQiwHUQo-z5`-C;uzv1UL)>3
z?kRrkcNsQ%mP$4rqvg?obT=6wYg%hiYp!STi($wL%p=TBL@^njm=5mEqD7HnZNi_j
z35(nr*FxkW`aPySf<4tC*`X&{2Xv~WNJ>^&wu~&c6GBU-S$}eWla-MVva9rh61kF_
zk_Or43_X?$c2@Rirlg;?Ox%`>)>Ge**{0d_t^MXZhJy@IEl8R)tQ{wIkyA;cC&x@x
z>*eZR>17$n7%)?{8P@2bE6=MEE3q^$8rtk-e?QhuHR@S!SZ$aa8?yGA#maV05^6_P
z#Z`^CbzW$$HM>2!(YQrl{5;QD#b0s0h`u<xxZ?an7({SOXhm4fiALy4;7q{I)x@1I
zmm^17YE?QuRo0N!u<TjrJWSn3y``9__`A@q?T^kfFckOzL>6Zi7mw5X)@FHs$INCt
zJ5-71>^5PpF2AI+bW!cTalbLt&fsM2=zVgzKjmKI)_o}W1oM=BHFJJrRC%Ydvn*?D
z@5#bL<pF%Od3fJHxS+VRx<0*Wx{-UTzUewK-bO!am^jK}>}4Nt@47PFdh*lrgY<j*
z_`G$$nZDV&_;Shm;Mi%o*lPo;1oHsZ2Im6T3_J<c2ICH<5B3oJEf^P66%5(S9h6&3
zxUzE2dwxVxO;R5pOk&UJm(`lJm#<+VVxeiFo$jZhq@lVT>`-xCdHs6b1v4G7f;vnF
zo1mCbL2B<b+2UhI*lgeN^xV29FFI3zR#09*B+4y1UZ72xhdv~)!MdXtV;e(WLW4En
zWV|%68P^au9{1)->S(k+a2gr6x3POPkSl9IE+fC3eND+s?kKvuK^{&ns$^X+cbmN5
zw%<&XPg9}HMfD@&oBQmbN|K7Bl`|d<1E;OH*4KXR=ozKE{7se;*TIm=+b>b&X?fO+
zRPKurm+X^{6X;pk6PlCuIsRKC&)*%N2zFw!V#K-q`qTcDFj$qC_b}ig6`}Gh;4JFq
ze3O5_S&|mW;LubfyaovzQ=UcLOdb!<n>p(^xt*b$m7Sgr67FX2kR<OZI1`mwC(JP>
zkK?(drHiv){9ev(-%J$i37tgvR5x`DK-kaIFp#3IFp=TG;Va;`CS`Iw^CW5{lw2%R
z=PHXEaxlWNzc}!7Cv!KrhMlJRIFXO)kL<F;C&ts4xVF6fM&B<XQQ_SfihvWE&ugSh
zq7~SkpTL9mRJ4XfNDAF8aUXsCa$Q=w&emoBn?s6cw421HVj^jF`VSpS>UM=oEj`6g
zM_m7vP~vsJvUfuV&%@g$Og%cbD)Q>&%8oi(i-qb1uZn1O_o|HA5=RDW+m+R&vyvKa
zedZ>kJFio(!Plv=<FP|THheX^XAO$-Ha$Y6&YGb{Gt0@fA3;CV*&yw$mTj6^eeS{;
zb{U$R#B6LUe^*p3i><4*T--eFUzq#fztq`<kH+2-=DJC_xm`wWxt340SKBq8Tw*?0
zbQW}(Pbc$Ucnd$VvA2A)*%)3||3rV5yqP2BFa7c{_MiV;1m}as^Q-$PJ_PI;Xp+rx
zRMgc-&d;x8t*$#-yyq`seWeC>$9}pV8IJcah$F;Ra!B!NIk{YG+|+&U&F*zl)yuj3
zmb35lcA6cvE~U(|;wE%`UC+2?rJAmvCgR3+xV-l4z6%FF>sYiMyVl(#9u)_7dw#mr
zPF7Ui)IS{@x@|qC#yS#;*FflUI)1-D&9Gj##;zIGxoSyp*;|~XVdu7owd3u~_I?}8
z?&Ah`$6hB}r)#hA?%oYN310Q*{Iu3DRX<7y&qrqDmGW?Dj^27WcYnDeZkHySBUb0B
z^H6%4|2Wynxz2gyr~I1vka@MqYrdE7<hRb@=J`6P+3p5D$ey10k$5vdJFU>|sdMYc
z`EINdFMVyxZe|8Hn_k6iU3gvHeV&IWBg;dX`H}lpzVAQ(I&hvp@(%V44pz#EDP4s#
zaLCKZ0O?qV1>wcKBwPi}lT*vRQwb`YE}@0^L|4m&RNaN_nKA%L!~#J<e4@_Wt_@9x
zx*DtUGGY?o<p~QH+s`1nv;yMs+@NeCB6YEV2h4-@P_1ll_YC#+%C8yLH-mEI)bQ!k
zhQdrkX%A5=dOtNBZPUH5pJfFw1m1gl{jDru9V9fJK|ru5{y9M<mB_FE79J3mDjF^t
zvNBx8_O?Jn6MG|5pogu)Uu_T&9uKa+O<PkJLx6{^jh!=>2QTTrG`Rk@|LJBV1^i3J
z#hRB?LskJGZ0}?W_zwIAWFqB*0{{R#P9|ntN+M$a1^;`;OKRcb;=sko=<e<gbY}(H
zJDD>wb8>PrGO;kSurU19U~u-db20Q_uyZE+w~_z0BVy`o>}2WSVrg#&_{XlHk-e)6
zFDdCij{f)Y?>J38EdR%oo%4SU>+b*=|B)~<1DP2AUoaO-v;Pn5AIZOA{~Fi7-SPZm
zj7!1N!_-Do#M0K(&iQX>d@Rf?JpXd@e@Xr)(EmVc{11|ygXuq!{~`Gg<Uf&c$vat^
z{w3)jD)^Xr82_)n|I+7S{D-Ii;O*Z@`B(4Xtnk6{F#hih^TELYVje(11VAK31XVmh
z&vl^<R8?nl1iWfOLP9|DpRfS;lu8&FgTTj4*9}$oCw*5{mkV3hL0}XhC~x_=^9jq#
z0#wLL0(t+d%X!PQ)zi~59%PJgr2Q$!@34`R)%mbx{q=S~G5OwxGx;Y2QT0PnkqCV)
zlYwDRUqC1*JUA8<J%Wx3P8rp15Zs<Ts*q3fe+V>iYMC4y4SN>yLIe=AK^au02Ss^$
zRh=r_p%TterUy%<$-m|;IYUb!|1tBA_P^~0mNS6_MdWdcERX?k#t20e3~y*OU3j#~
z8~zL#Dn({*5zm_W+09bSYj>>c7LSldP1$>Ev}*qko*x8C0LAhWX_TN#T@GVrslktT
zB|d|ylQd{QNzrkZltrV5o~7V)|JqZoSIy^CfKXy8nTF17tYE<8<oJpP5)d_|UN=R9
zR5|f~gvHtyAZw!5*;2$gf~)m2hl){eR`If{J{JP|6%Hc-NPQeWtHYKTE%WMG%=67S
z<sR`d2xgKriq?u8t>NJY97FI|PL)mIf77Oc)6&9Zu#2Lq>v#%RypK5wuA4bx%#MJ`
zh|DfRn=rTC<AA%MgVR}btKH4&dNJ+Jddy_@b=txiw!=Q>(7Q`?d`98^<APC>%K0Go
zu1Vrbz@8>RF9Fh&xrdDcH91?KyzBCzSg+Gdh>-rrT77;M<G<7O56{;}0|8v-HL3jV
z6BWBrUV?#MOEXDMXV;feI9#r;->~Gce@8413ylpX`}-_yz3Td(F&&m7DJ!!NdvGD6
zi42y?^~MPJ;;yuJW&xd0)fJ@5qcGKL<b2mj%<dg47&m+Jo4tabIdUO|Y)3J*knFZ1
z=N^ijZHo3=TE|z<!9)QWk#k(4F)1zoK?Vp@UUIqah`J&@C@^@+6I`b~dejj10h8ZB
zA11~<ADBg64WqZIH`}ZjU~;q{rTy{hG^WD8I9dlqj%2NDC1SHE&KJ4z;zZur^PESv
zz8daDLwe$K?AsuN?*w<SXZ<#E44OUIzabkH9c_BB_;Gujc1MmP0Wdu2U`J`d`j6?y
zj|`>rLlk+O2y0|4AOt+F4%(|V5ME`=QelnDUSDKVvOIJ_&Jyswp>%HEYIp{mYVw^|
zhk~wMWL@HOMa@GLVdvxiMENo1_yA5$4t7jUTLca^?tFKSrNlSc#U86#?l6H>MCY^X
zB;Y(yP{wKVysR#*<Wf(Egi;!W>i8f*cR!Y{%uyAN?9D}C{kJ3W2jxb7yj}Jz-QbT0
zv;Thb{Phs1krZXip^3yp^DGHIOax9#<Byf><jMdS`i2Fxi2X~F_hSXPetAwK56o$i
zCm2BzoEMis(5_2b0$4P41xE4u+kqpMy82b$CK1%T330xi&CA>OPGj<ctx_3JUoiDi
z!Y%ql4t``Bu5b+0@s!xHhtognYVL_aHguqMXQbd<&GCK8-8rlUs-~aNUxv9{;j+)+
zLs)Ob&_$s&{4T6HsynL00&qhU&T5jH3E2icKjX3h#dvbnQvM@EwWpWAxa)c0^f>A;
zF|cS4thf(A#o5`}9ZXN94HfJ5u`wk3dQC>@=o3d!{39)K=r0XcsF5)HZY`nEq)KnZ
zd9g3V+27Tpn;zMR4dJv@%-k6>E2YLE+vNTH_-<eJ)TM$A{Aq%CDZnBFvpR%4Pdjnz
z_YKOw-MjRUR+Kv$O^@${s*Zv0pu$z-Mdr_qr1g-W1*0FFU6AO(xL|2=>}xbkEB|RA
zMVW@Pr=ZV`&YEaW=rq@JO}Wgy5qGEhfycM;CoBh0a_1m(W%D{tOsKC#75njv6z~~A
z_c>nGO9CBRER|SA%{~4BHW+~Y3gQhr90U0~8Z=L>qqghMx(vzZeU@r_>pQ1%!wJgC
z7^>^{lRSho(ieco=gVl#?Maj_8oV9!pdh|ew8<fFnp8uCfv4xKkS2JhfGCV!3_q>0
zdo)7g*=uv!&dmk+@)mxQE{$T*mLvk|ZFEfN8v57>8<ps?g+FFlA~C+dROq#11r_|G
z=~y%JkaR;C)PWJ?v)4F9=jw>NH?}l{YOz%iQusVh%1@brVH%lF@*tQ>;=s$(suBzJ
zy6Jc56)EK`>dY>Sq=Dbol$R(gs5&-Y>iqPZ^gBIsgASB&z7gm!YrV&|aG0m!?Wp>L
z=ebQxK4|Rkh4r6xeMT#}s^kps8x+fg9>xRF5Vhe7nOJIRVOpB5L}q|^j&FNG9%Mw=
z<~{LrVJ=Ss?%(-ng|R;XOX``hXcsA{+7k_Ifd^HUHor5}b&HDE!XC;HG{nP5Y@L8G
zUWdP_5i@}@+`RAWUw=5N5o%WDpA4s1&%X|t^ZSoWbK=V3O8dF_BG+OH=IU7}^zmNX
zB$cOMtu~6=Ayth*AQEs@&H3IrpWpxNjs<;BJc*3u^L}yDO!WYRn|wh#ILqhaiws0_
zOd&s>T7MqpX|+0#^Zd9(MMFm|;E>s$jVEhlq)|nCBuFM3#Z5#AHL*i36#gjE9mhFY
zY^x*S%K_3YUiBF1=@*X|er@vUv3%<ao&|SOb9HN44>CHLCD&*RM)^y@9JjU~>y@-u
zW5S;+^)j9lH9~=JHz2+JJR`71T<_zdBQew^-DJzz0X45>?1*|l1I@t7`h~NJUvUo+
zdnOHuU^D_6CmDu#G@wcfTKHUg^hsuS6ul6$?)!Lk58e>pC~Ri!S==1dVUZD&V=4(U
znyoT@uGgR}5txbht~L1POl(rqUJi|S_V!1eX!t|+_;YTJS3|FP(%{pomoj*gZlezX
zYZ3m`?TXSr=;m?kssT=ILXA?)*1*&Bz(F3c^t_CqA5`!M`oi2J%YwQlV;zVrjx&o5
zhx9p;yi=|OMkC;RycOHYHlvV%!Qk+neebGU+BsRFu})fC9_^9*4g=Y=!=gxRa+5;u
z`#-#)qWD`%{9hcJiU7d3rlFQrA{R2|Mr=bNrY8BrLuoQb^@XQp>@&1<zDV82Cw@Hi
zV2{1sOhpeZw?mAbXkaC34o(AbUUT24hpz_2@A!yBgU5IVh@gwza}x2A>d`V@ZVqH;
zn@z%!K$0nJDfoI<JdF9d9oAx^O>Vfs2_sZY=y0wq=x+{R3|P<UQ=UcoSjWB?Fe?W-
z#1MwRB;WXIjmxGDjb>qLAADw<71`%O%S_D!@=wj4sSu!pM#9Rpda$`W^xjwEotuc2
zURe=?I|L&zdg0-zTX;CPpW{Jr2yg+?j|3@in_rTY{H}=io(2M_Nr%Z>OCtlVnI<c}
z2(f_cFATEicU9D{-?x`#)oAFrv`Zb&6%z5`GxRvm8|`AFc{vvdK@kszo-#dyzM5uT
z9X^(Hkw5GLID0e(WCiD~JsbjfI2#LjSe(DdaJ{Nnbw^m2L305|>j$ZvATZ*$bvkY9
zX%bSm@mdT)R3OUJsm-CdZpV^&lvu<RTD}iIkj((dSx?*{q7g3m99;}iv8TOQKuqaG
zKqUgM<v6jott4s3;*qlgw*$kq(z(JsBtZuJJ<~zHOL6d#q8^?wrj5_BE{+FK2G&O$
zY-N(@a);tU5K1}0P|YCK=~RM6hp84QgX`xJMxDNd*0a!HFLEgYx3O*&suO3aAPD$<
z^vlk*uvAggP*(h$w@hbSJ;_wRqq&fuf2;NPD6rFhB1~!D%!aKqij?u)hqFY*q-^eD
z5k-qDmPCRHq68co7xrT+=0->|qGb*8-@W$($AUq)>l9BGnG|x`Y2={Xt!eafhDu6n
z^ArxN)+o^ZHR&>AOQg|>-C07C9aZ$@-A~rrA|V2{DVb%1a&;F%+<y4o4C>Tf3xrMh
zxU?W#ZK;-gc1hWN`sCjWe-+y4>4FZ!h;FnCD2NnxhsSGctuma_u4zf9mGENiNfo;f
zKPGECS_C<xM^7W-u?K{1TijkpWL8w%Dt-`%j72fL?LQ*>r5a${G@_(BYukbyeW6V#
zmO4<EYPXjp276W!4FT@djq6kIDkkf5Ew%iP`{B`8O=kFOk}nCh$FTVslHN+IlDkMu
zmoOK<G(KrOzhVtpD$Vg<w%qRyNKjZmgnZ{avld2k&#q7_s}y&7X9@0RKKn<52G!Ps
z9JGTQK-IEE80(qXq=J<N7(loie<_PUdyQE-P#qGEC8s<15At%vgm$X8#Az`_F>@s8
zo{lcJXow;tSa|K+>6`X-T%d)E`Y0rKOT|h$@lv9uMEAa*pS!Z;IYuCyY%07Y87D$N
zu_3-+z;`vQ#w*VvB;5%(1ki#_YVJTVvM!eE8kt7z>)^1N?@N_LSG;>$a9iRLQR{V;
z=_@7>$WJCtt6e6L;d)xJIHgkI2V~{NDw5m|jNl0Sgu({FpYB#c?>GF0Hg%{7yPc_(
zL&HKVgNYM5ezw_km(kOy*VgiAktoV7wUM7rpqH0_@!nFKZ51VN!6R~NYmtZzN@6n~
zM$KqFYPpAfR1<+4@0BcrK%cX29*`EsshSv`+DAgz<UuIAQol@1PI`%2ZmYB<J6S71
zy{`n^f`2*(9ObHAq~<;rjcljxusCX%!@?sfQQbK;IGcRkAb9#O=s7adgQ%l`qq<fU
zZyq4{nja5EW<-ZXLqI-9A-5olE3@REK^0^-L{%ZPBFNK}<W49<U{E!CEstXLZQ(=Y
zug-u`%_opupJ?K3=&>#8J0jeeRQneVF6hC|!N0vXRr<8n85?^ZKBA(bqUAZb?0evy
z!pha<*64sLBXx2QjLm($DPmp8B}$+O{B+I;|2%^g68>Q=@`pg{mOJpa9^@VE=(*Pq
zB%~RAe*vRg0*zr>Lt=_VeieQVS?H?iS&ao@_x-{fX*9Ujjra?i<-A-W!fQW(Np_Uu
zR|KM}`b2ZrW)2$OaVcBQ=<yvyVJ@~5<q!`O0*GCF1ex9nTkK?EP^RBEJKR{`P91OB
zi8Kj2y}*6Lt|icklX~Pj-*o<suaPXWOMStaGS4CWOi=!b@B0&|@@CuSpz)Y6y2|V*
zkv3H4SXp5eHo$y2s{~s<+8&)r#BYux_mS!wVLroHS}(ZH`K{luuecYD3!?I7%r1Y1
zO=rA2CDIA>WAra?#l<0{HBI9EGGU`6NbZ)=q(ns#E(*f*^K_}z+3aq(&17+}A`OEQ
zeGZyYBBiS1NMgtps)K4F%u+D!39>)BB6+L5wwi*!<AVJH%XDgNxUC0g>fB^Doc-+@
z16P2>-=UZm9?dIgOvXkj^vRr8+)>NXn>U+%E}_{(VcB{c_i4MIs@O@6r$bl8pO4l*
zjVZiqGSv4V6+W_1qMiTod@t7ZmT&(sTb8qo+xXo(uvUwV@Td6b@BUqKmT!46TNd+A
zQGwz6ombf7*!W1JTVahUnPE=~S#Ww*)?swaHxFO7DLglKVkd+kLa;gFy`y+I=zzEl
z7Nwm90zT%4A|J$pqi^wU;|HC^=4+H@_Pt$lVo#QIY55zZ1Y?7QU&n#s`&GZ9P27YM
zzl9$spKJYCVu8(Wj+^C^1J4OL>dqn~2Ck9C2d_|B9t7rn+5w{$eCaC`axysZ#UwXO
z-x5?{K^4g<LZMJYd(P#>tY}N{6!(K1u%y6yCD)&W*97{r=8Fp@>S;U5{6=df`ZYBc
zLyRcA)Tnq1P0T+l*eM7BU4FYI(iqH*CjCIqy*Ja_{v34L9n?vo1AFy{1keqw(L49p
zWPJTsF()VZ^Ca%UU4jOgad7`uoHS2B7I*+QV+<<VOeHqwC@<dYh;mZeSTe<$$w&UT
zlU~9GTY8oll6qbS%k+1e>IZS3-L!Sd;n3t~GOF*`##G?W==ExzO6-aUkr1r`6ulaj
zXG4fZ{zr$$NGRa`Edn~d2h}#l15wH$HcRkD!RQ7!7*#qeSrEL&R8B$OP+p^H<L+b1
zckVdK+^5vg4f_k3d;5&dG4Ye_$kNkC-Fvz+Vtmx-NBcv^XXpKGTV{D%hlM?UJ@}k%
zS=?EUek(ay$gPG2Nbssu%S*fh6IcN#dqO&JVa!`z%Lv?HYvGwSGL6W0`O6VT>ap0d
z#7%~xJ@gU!ZaHHv`5J0SxJ|0M!DFDNv`tmA^Ax6sQ%;m@_dX(WIh+Lj__j`3N;8xM
zX9Rx>b7q{3$Ik)U6W1RP^SF-m@pN)P4$*lXy14-3DZ;>>8u-<q3l&_yNV-?&b(XI&
zfgh0jnoS#Y(T;}Cj$-1H7+BU-A|iOhE9FV02hG~hBei<P@V*UVhPz121DNRk!#&Ok
z-S;*$JAz$KDDC5E{yKCwhMNE#j`NtQ&TnM;)q@b;RQF*ccDn6!umz16k&i*K(yp~X
z%6}1}aP`qfjO!81kIG5Z1v@zDb-FUf$a+b?nI)97Dndtyh<;UXqcN;aLa2x{xr4fu
zQ~YYZo%!8q`flo*OdW4(CVsdX)=uU&Qg#h!eL59%3yL-*2z-as`!1va4kb@(fE=D;
zYtM+Rs+YQ8K}TjQ@3MOdQ2D$(V))=XPsSG;s$i-3MldE|bb5myE(swwzj1vagbS0P
zhBSL8NXQA3QHsYs67=F_M5Px%2{T}D*JmeMJQ|3Q_a!?L%}od-ial@w&ygJHd>K*Q
zy_<=<9WN1qg>>K6k>M*3Sa>x=UZ@&%|0B4q(fC-yh}db^q3lgVybXOJUuS}1!adC5
ze3MP**TcWIjLRg-hRsO>Er&Hil4mC(%>NygqVID~$pNALwS{)KwLmh5MtNWyJ^tKR
z#fOp9&=N!4R2vV9l3YOycs_+iXKu=)%<hh1KmpS)Y3xm>xRcr`ZZe|XP{f=%CYZmx
z0ER>;n-XaML2jLUlWb>ev`?hb)O}Y0iB@4^+?17o^zgFSuR+7vD~JMp1-WEt>s5UZ
zd$00fAQ4*vQhA__R4NHrjkw6uj*Gqob#O*9W+7hak!J`SU}vY{1@B1+YR{nFC6}#p
zD@D;i0dZuddf?TBtf!<<-z8Do=1_r#7r0LJmZgSJgo4wMOOie?Q66Bjfkt!F-1c}b
zB(ecF?|E;PEb2lyf_kJ=cIJw960<A+A}JxhJv)kaBEv?*a}Ls302>p@@Tcm2MeFgi
zp#vT%1FLyF>fvo25ujFph)>E};v`<0aE?B7GUtXk(=S=9=_mn~t$@qjeVr4$L%M8X
z9!%zT$h(V#N}c0c51Pwx)VB8;EBRzWTPEgGvE6&yGy{EAGd;}TFuUDun_;}IaKrGs
z?Z!f+;h7$XJO>;{wLj+@Xav`=cBa9dwM9=-7!OujEl39?2E!bvB=LNhgRlQ=dI49W
zyL>ThS>SB@+MGJ*L2rn{WlKpemzc-+GVs~=9#*al-0dZ`a=r=R4+$T|J?J~^7KIpR
z;vekg&(j8U!3DNVHa*-$0cFk8eNcwxuS`29jcfZt7*UXoe>Y&4?1t4t{~Cfvtw%(k
z1h*wC=68#P5WOMwberGIHY%3y2NVyi{gOpL;P=0f<AfnhR>)G?gE=s&1xNgxjdyc;
zS_b84x~%F`^tpLVhP>^ag|Gy@Q5Q{$gPS1!R!xUx38df1ze3q!R`aY&hz||=uKhUX
zNUy@U$*qMd|JtaET>D;Qi$`i5S0tT&0>ejz?N)xocmjeXrT<$ap=_H5XMtIDb?7qu
zVKIxItogQ^KCB)rwp5MQTw0+tDler`6W7?lP=O3t2>w{;CN3}bp%5HT{8*E}5aH)F
zK5J3?db4Twd)r6Evys3_>=+w!@DSqD30F*~&WIYi{h^a%u^PR`bCScu(@nDX(0!^q
zJ3$B-%UGDyYLv~?DNiSU3#++YHY^MqGlN68&FvB0donPyBD2F|4#kvZmyviP5&dN4
z{u@<cmxerr)Z|2x^_s|->-M!Pq@lpn><;=#y`Oi1OnR44y+M%Bg<m#(9ywc5uiy`a
zhqTw@c1gg1goe`jIDsZT8U$6Xfe6I2z>kV98_=ajT$icx)y@<e2SmOIC@0OmejkAt
zc2(xmNnI+U?RwF`U?KighV?D!CQ8%M_k}e~!Ed#6=UToE1JsRCkOYN935Z~(o6q^P
zU80T8LC4Fv$)wUtSIOR`HELNhmm+Bd<Ee3W$8^EF++*vQ+WTEsse<=sg|Gffa)B`x
z_!N8L!;;WNg4Soyam8b+Rd4&hPUt8)avTkUiV$VVZ2AlMZrV0yo2{)a;p~9Jho59L
z^%fUM8P{)=zv3P}@CMe*x94At6)797XEYw=JBWAWMs%;H6BQ_ERrOB8FM66*K@VO7
zW&2EK@>MKNxmT3&#+KKM4g8`lQHlnlJyCF90zGE;#tE95HZ`xnv@#$CK4f=tkr6$g
zuY~}aX?VF(Uoawnm%5Gi%X@V(^gildI8%SpaHGeKm3CKxQeCIJ1kb1eBgn%>79?nX
zQR&BCG4gUXDYQ(6w#0I1*V~oy-0pcrLI+wM=A5!zk6ung`blyfzU5z-QnLjy;IW5j
ztjfk_jU+R)BaM9dX;MXU80;aK(|6<VUiA@dRv8BDDwysBz&ubsXeb!|$sOsv4XD;;
zT6IUBhwZzmr0bj45&xKC4uRD|wbh~eUW@E`+dePp{p&0zHK3)VS(mKUQ3QE`a^6<O
z*LTg&)ANv)Ca{Gc<e9cvvR}&;Co{|&ctT(J>aI8&l~CK@PC<^XcpS}n91d%-B-ve^
z8mWye&5u&EzsN-shUXl98&&M>QZ~UKPkP}yhW<s)AvwS{`07WGct>W(zg^M>d}}3C
z{C&Oa(9w^JH+Hz&;tf2r_NkkhtIf2+LoITv(utR(c2J~f2?n1bgNka`;2a?&CE)Nt
zaIzIP8xs_h>ek;=XniUVjKU!mdclSu-C=CeaMPG$k_=NK!p~y?R3x@%JdASQQs3(e
z<*^os@rlFi5(RUd6k>XtjBk=l%JEy0ao|AEOVXdFJ=jsvltoX4nU42PH4(cBvHv(W
zMG;QdkW@KlBG+PZtdHeVtaNu37+x^cq{B)O01LOo8;DnA`<P@pMLsa)_^lnBiDW$h
zeG|-f4J94{=dB47{e>CCX+JDLUm9x-OtXW0P0AzxTosggy-BaGhlnm@cZ0`9I-X5U
zjTj)5PjJi!-a)$;lKlA+FldTFN>W29b#VXXmWL#XT9uV0ACP{6+*xaWh074Ur!~IW
zPi4Z4<t;ye&yEp&S*Tv7Y{f%!93NuUZxi9VYm7fuL^V8G@f3qb>>$$0s$7bg0Gn%x
zLJ|J#IqFYLL`KZ#RgBOVB!eohYFyB`_}!bVH#5rVH{4y48uLyf7^y9lO|)pxc#ju~
zhJRGsZjWO|DD0z$Rw@Ma^JuymB7kk*gDJvu72tiBPe;+^EG;?E*Lv2&Y`OGJ=(5-2
zYiBCIo<IjbXSYzv0{!^l`>@Vz3+TX5dVDJhC)B%Jv?YLXlU?k!FaG#4c-Zu&4MMbX
zE5MQSB4ON=0m;z8STvKKuIKyfm8<W;6diO~r~w6=V1*#Z_a6ueZ#B5|S6e&^NJWMd
zhk>k#i6kqn91<WS;l96(X-*PTJ(W;Z$7b$@3tZqM@{b(;>=kzFkX`9-$*1N9II1Tn
z7$-af96Qi-dQr1~j;Z^%tLe46md*DE4KW*KqRG-MUeewD@h52USrQNm*ve9WDUvWl
zWXqqvx237!@kv2A-PB5)@f)z_gUON>pzeA*R&`QuHcN~Vjcch2pOg=i_I-H`9N#x{
z7$Y+<wp%ILsQ<ei&~ojY5>eOR-4?e!4w?zzLLtier{~3{2AUDM#oI0&uA0~{XBTOb
z1Z<;`02Ot?QEvJ_*y`}EipD*dOH78O4bu&6L>O--1zX5bunEmX9YS3m=Tfi(Jk!Cn
zl}UmQJF`}mkTle1Ya9#jC;CI9*KR+U!=f-83+Bqts0IUrChtGbg;rp|<i0L?-nu5h
zzCWdp3lv29e&AKQGp_rGo}LlVNi(H6^!t2V=iDNl3WG)J$U4!EgLFL^O|bP1mD}zy
zwYtmbdmg_^CyN;S3Kdwzed=nBgg{rvL;u~(<Ax$H^-Y};H8^i8lFfgoeDn4uX=%(~
zY<QHV@>kb3rIo@50l_BzTVp~^Zkt?AyI+7wFyM&VfjTADsh8J!f`qopZ_stdSMTrZ
zmkB9ADcQk1HE=_TLoO~9`sJ5oFg=^yZzkY^ouMi%^)Bkhz}67O&c4ug-(~b*zN$*u
z#A+t}{w%AUC(|vD!+y)eil<JSaji=)FuMm<ptKoMDrqg&Oaje~$GZ6{DZ!VkyfFV~
z-nNn2^M;f6N$>A8)%2p=tKRH*Ls|jnP#h`-ZgsxwI*mmN0x-jE(%@R|E=v`AS6tw@
zWrf(wE|;U>kH|FQG@C?O?^p>s`XL>el^4!HngSTZdv5n-{+=e3R*SSJODe}EU7n=H
z2TS5L3A}*J_(0J!nLt;-ng8Y~VZGNID7^=t6J~5SI~;stTIhg~Z=<<!1Okn}GeN2O
zPxp%f=UKzNMsE!N{AboHT2G{5z{*N6iBeCI6kux7SBrCZ7<`1pQ2?nwq+OhLqo$d1
zI%PPodr%Goyy<=(T1+zTadJN_knn)GVNt^Sc;JL*<xpWS{^HMij^|l%kACgz8;r>G
z#?^#Mk`FaU;cyRM>GEyE@UYYw<$iA@5367Lz2~L%F$4#K^?^1we`DDtGBd-Dh*&DY
zAdSeWXF9XgyaJ~uFA_dR(3ukPfP-;_K-ciVgkRYZF_#EeM2zFKFU6Ze8pi!Fl_OxA
zxcNuCv{&$5n@{*TNFC%UT7gjTvXYL<{$Lk&WauqF0HgoUQ_h=76Hhx#8%u!3_R~>m
zHI$$6!H=En{R90)WAJU#8vRApYUum{-3Q;RcK|=JoO)%XB1hKEN|Jho=u>NU_`yx?
zB5bm~$u4j3zFgLy)!+^1EAQ^)$L#(*^!~yfTKos$sVi8AU)BA+!8h9&4U;v5i^8a5
z?0#(mP$8Z>wSvBy*{Nj6E^#Se?Y>2;>)#RV$l?T`FMv+%U;rW&-(TN0?rw%|GD2HR
z7$bDiBKQ<Qa-RFq2-ftB9cpIm^!3mg*^Pm3;}5|H6;=9@#`FF}113pV1mwPX_P^2L
zAION`$-60TTxv&JmZ5H^gpEx&4(FGih?A%S);=+o*36U(67QJU0kR~ZIIOi5yG^_w
zTNx~tAAH5^^9ayld|n=nt2&(yt{pLcA5<uxf>HRIQB=pr`G!Qe><U`J3RFIzh3)KJ
ze7dteG;qSXBcRNF2s)L&koD}+(0F3KCOrJ=LqNawQ5y6Yze5Cjd->`lhZJ;a(f05}
z`kywTUbzL}zwxzRFm8F{Vl?>f|E}>%qVnIUBpui*TJ^uervMlD6BE5fH61*Tdu&qh
zAiB}`gUO%3<;7wZ%+ujf47RuB9Alq?aosC&Kp2nZGVzkd^G%V$Qeg3sd9qGs=Dt(o
zu9|RDI=j4UZ|pM)#Cy9vg{2l036<o1H<{q&C?4r{;73~7_t&UE-TAPS6wb_|@8tYm
zu?<UCU_ODrEK=e47tY~(Y*Tt9$zYQAdiP~y^b}&$&|wK~a&LY?cEeR3q#9TzHuPOT
z>tmrztqU%Ig^X~0c}1veDvoq=z`AYkhib<^Teg;KEB`iD8~}fZk@?De$t-5abK%rT
z#0QMEK)A)U+|9rfF=+C$w`9Lx96dy-PKzBdueTsgs^GQpcoq2XWwzdua@m|22(N#C
znG@XwRXg;MA?K=$(in`Rr6Tp=x35~i?<F`1V6n@9yMZ|Moh;_PsB>*m89B{;yT_*1
zAP(6~$eh@$mG|@c#QF_z&N}O8RnALU#>k52$A7k2RBFAt8=M6@SpBiF(KKLuyBcgf
zh#VaRM4xl-A7#HTUFb3MPO&~}pb=ph^1UwqbQ(78oQIfXsYlv3B9N6!>b0Lr)>CLw
z<DyjEA5}IBuTAoDaIh{;YJ%Zz9q!U*;1%M*2)8p-YV-Mc(>htE6{{v%mLz(ygTw+o
zt-(p(VNCl{An?_zHEaI{CMe?Dbjbm8jf$1_wv|bt-Fp!M8E8lu=41f2Q);SR6bSC9
zB<g5=K3R9#kIod31b{-?5fI=QO3H__B^O_B%_nHxzQs^BhuWioKxZ}+!3>B7u(QP(
z-spsJ7MKU5eG??i%?*TXFlNP_Ev(X+tEr0ddIB_+tQ+FxZT|U63rf0M_^}cC8qr;~
zPC5NqE9bQhfTFrA-hS?ag}g#0>c)E<&>G+4pjjn~S{C;Ht$gCcWc=&B<EaIqhhl*M
zy}_M0W!hg4k+41g)TQLTOB5{Fz>wGy6+@kSUbZivJ1G=$9AQ0S4(?-j03(0dH{wEJ
z0CD+uA^7MIefmU+KPAoX(JAIv1g6+;#By?J#oK<3VR9*fsLtg_N7=UZ$OOYT!CGZM
zCTSy#E_1r1b`3WB@gX>{uWpDLljRr+ij2pHZg0zgPK>AQcvh&L?KoDb_A;8(-Ga%p
z#CzFfAMF?66mF+N86dz-riflGhP7XEPK&HHFC%GE4^@D$hXJ0^B*i&LS~do5c`rdm
z8@_>_+>b^jJG@2N`g*ybY?aSPkf}~Riw#bc88<u3st7nD?%a^czDfIucwx&7r65m>
z+u*_?<oWL~^VyoQ{UEqF?7%<0hW?eT0{nBo^f}8iuWM)(@ZIivgO};wU0viYqq@3G
zHjq4T8xCe`RPz#{=vUo^x-uKET<s8m-(pW0*P+&wvx>*Sbm#E`j>2r;_Iuf}M)F!5
zC}^|dUXJ~7&@b|zR@#l7af#3?7Y|XQws2qtd@CfjeK)7bTWLuYy^L7J<rrO!VUc~h
zrNDY8KHjz;Z<jK|VP&mRMt<woedLKW<gU#s5n*4)F`usJSS>2@o9pVhHN`H!bTr>Y
zOlZYqGY246ikfxPZ_#S^q>P5XGr*$bL~0SEh+B|+m%JGeCosv_`dirF$Kd2<=M?X;
zQm~4%UGSD`JfuAAZ7kRM)SGoThN5ZN*B-)_N80{q@YPTB={m_f?<?9QXaoI9@BI6-
zn~1HC1ON?t;ffHh<N+%ep`@5~^HB>Dk6$3@o<%;=j%_2C+~UwLhiv=c5__LCddL1t
zw+cyrLD^Mro)uAKDj6~pgBb&CO{@z4ZLCA~je;-<@}|efb#u*~VhnryalCj2v?sf?
zvb2v7ibpWC!E~$<6Uk=lyXW#BDBmFZ7o$(C$mn}@F3dC$=rM74_wmuB^jd;|^^n6q
z);n_0qFn-cK7wWaXdtoh4;0k22i#xpwa<meL)T?uCz2&|VY2S{?6=fd{KV<O76{px
z-2i{wg*H?hZcIt6m>Fh9{&S2`=I?u9d!?8TZcj_&`*Xxt6|#^GW<Rg^9a>$2sV`Y0
zAXk?;gn7E&SC^a*GFHxt^OGP8@dm3EQGW2onmftNz-JGee>J`wQ}Ju6pJr$E-Mlpc
z@)jbwAtG$I8M<rM3XLG1gBioKJB7M%-?sk@24&)JjQq)5YkW$-w_H)c6Cx%B$xKU_
zB-_VvYv@QF>Ia8Lt0lXNx*>+`OY{mk>w!Ftc;?|8tPu7xNc$LH)xAB3<{v>GZ<6G(
zA(+WC#03c-?G^QO=7|@93%mN$Y(7qaVh)uIGw7zjIWG^qSQh#8Ro65+-f1=;*$*k)
zwo5y0StiYChF-fTcMvLU4(WVjLN+Sgi({E>p>OpGa<w}-^d0M_yG9tK8T6#WPG3Kf
zjU1+sJHg6Udll8~_0_1q03256Sk419yhNY-9RTuAxV#bFS;n4*&x{)DafX$DCI;_^
zheoP8wIsj>3VWB6JG!U^+t$A#*F$dp;5V%}*@oMx2wwNgT45wt=Vmsj>h+W;5FUkl
zM-T1XVseNoA`0(Ezllq2$xW(agnbzuqP0FWh|Xr08r<lX8c6xUi$u;HRwoeG0jIPY
z^Cz~D;TMC0GfJWg3JmtV01XOIu51x4zT$J_O|I$RK!D&(X$Y2tBqzreI>?y<=EL|q
z&JX0eB|;@&e~2OYaZ!0V=8)U`8<2`d*(yVI&V&-G_kJ0qkS}(i#VqO7OovcA*GOfb
zJ^JoJjcOY^SQNNhdwRVW7Z3c&-*Y-U+Zu<ey!)oEv_uV5-e`F4`8=4w9vQnWHc}(N
zIMI9Y3q8%_UHh&Gll$8wy5pOB^!-rmHi*fUxB$uxhKh>|gdESga)dE>t>feN^V3=S
zF);zVK#)OhpojqFfZ*4l;vFZnQZd7_gG%`#_(UDg9F|?*Wm}HR5ZLVa(2SvmtcZhw
zOq*}SSagy%TP&2fz)gw)e#2>}q)H3VW^=2IPJ=v`alEpPlw1Uq8#~fvc3uRsagR8u
ze2FZ(QWllqZ(;#)drMX**izaa31;|IPggD;!y=P|c+a!K44DuT*wQ)>0X5;DN{XNB
zKd_DR=X>h2cySI^U8!-~$kQvCKxps^W3iG$079b)5l|$i^*f_bPDKtag1_}GBgY}Q
zuZU}eE5G{+7l;I0i=@nx%A;j*XXc<-9)Ndipp`?&p+QCv6GHi7gS2|?g#{Yt;RjGd
zIE0I?X$CulPUaWVSdrw(g+o1_fuj1|ZqKKToyZZ;=ShZhWYK4Ro_plWqJzzOT%2*<
z(l5_`)TQ5zxaxwPiAT>stV%_KJpsTWxa4~+Z^QSJA!@NHwO3UPiRD6n;74`eFOzX`
z9D3A8e#r$NZ%2&w>`DT#%khVvxU@PKTlUcBmC2~nocRDepmoq+=Z4E}5=rQOfQWKF
zYVZ_mPu@SM^etKE4+MF2*^qKe@X_uP^lVHsC^O4k0aE%OwYo0bO6u*{tuwyh>n6+X
z{Nn`4juz8yV{xQy6^xO}yG~pLVM^D9R}=9E;YvkRhp52wfg?z8i&Bd<F-BbD3@Lu{
zDOj6nGl0(H-$fdP?E^@j@3(5D1}~GIJm|LQJ+g&}>RE3d>MJDFjP4;fa}vu=tH?lY
zVX<1!H9lg)ww?e6S$!Vwx8hkKo7SecO;$(Xi#0CR*5H}@=sE**%5%yA^YkPa;UO!?
z`e|C)xx(jHh{r6v4icIuKR>(P$u={6`0x=R?DA)$3Y6H3plDSGQm$MBTW(v1x~+6_
zyWX2@Q6#@6W3gsgXo1Ax*BPE=j5pr`2g&8klIIb{PDw&%%4;Yu+6{t<ftTt=1Ig<p
zmP7Jb@YKd(unT7mGjeRNOGM|LjWHKN>VB)H0!PztGGk_X`MSqG!B9Q>sl=4HIK?c|
z5+D8u(h~7bDKJi9_byIdrP_S^m>-0bCLGqRn9pEuir=Y4(_q2PH5HmD<lPk=Us0C{
z$2dAwigAJ>%OM-*R#4XREm}Bt0tO7#3+OlcK=4qfZ)^A11JjLWS36m(*HCe&VpI@W
z%!duXgErTr3b&<~+iwdm86c-<7%np*gI||Ow;A*Sb*DHC(Yb;@#`(?j`W>Dwp|gug
zHnhj^>7H<h=MyA}V9*iq{F5JUUlUmZ<cU-%mwG{7&y-SOH7|qPB<ahs#2ua;NES?4
z#TD!h^}^kEHG+rYKKYVL<$|GLSZ79s1C=i?XH2BNqNPqCQbiFhI_@Ox!KJnu$6q{C
z8O1?ebYlYmNDefL(TzZC#Z%aVYRbIIzSUKurB8Cn@M^@kPFfxk626mc$icT=(h(qL
z*VvK3Zi&CJKEC2USm^er)Vq!p0_JE%(&0$=p-t*13jD%%<^i<ZMm5TN7MOev6jUUz
zTNo_)h7X3tA8@C<dBn$;v2&svmQEn*4<a-{5~8a72uCpITM&;V%1^EcW>?DEj$n~g
zO=I`2fOHXgmgKJJKh-?tHOZO@QAE;*5RwxQ;H43nNE>2iU*(&vI2eVszV93RXlSD8
zy<tK=L$ZWlFi_0jbk%xHB&;12odR;lPSsU&To0z}CT9ehBaJ~d<)egPPsxFDb1N5T
z23>3udC6?Fb0p9S5M+TKY6B&&v>!VqQDJgV0zO>(gTI`xW$I#rx}?Byd@eSAg(8GG
zJ;fuoAAEKFq*_@<K`*6`#!aVllu9B+7g$I8_P6SRg+M#hpZJ^dvBm62fFjB1XE=vL
z<ZUX6!Y`(^$vwe{y+6MwNUmVQY((<P{3LFjoG|$&e;;u(%2P>Y{h)F7YML>1S2_VC
z>M4)xRKv7TD${R(7gB%z$f)lV!=SmTXV}vv58F%!j;53K2~PY%x5lK>R8%{fB!obf
zj^<|#v(D!zf_LgEFgrELc2e5i9Rb307#Ttv^;W+Vxo0Sz#M&&S)kG-UOpw${_f1Vg
zS%ggKC^<>_t+dGdii3>Ga^x%IOb^)hsFze-9``1_VoMw9=bNk4ZlDyBHvMt1N@zl)
z9=5`ltPierc2r{HvZ#?`I5=JYT@TJ;J2W~(ZUe1tZV^jINLq(3+vg~(6-TMCRfyjB
z*55lt#Z=a>p>{dtCm~fPXLo0^LK{=TBlEl0J=8GUR1MzlQFJu9E^t~)q9ZoRz#jqf
zEN-c`Wp!M>8uCk(c)9swX2d)Ho3!cCR^HOx@w2{&Sh$k_j&CZxSj41*h;W-g(HQKY
zV~~05L~}B=R=&<<4-L)byhqT@cTt2uR+rca5;SxYj+c~pCnYxl^GeyIFe!Pf(@&KX
z<QptkK@LjG9(&;VN5^6_;%jFvxgfIj(5J~sgsA*dk}KKFz?>5V8gyeK0hp<!kepmj
zWuRWJ(eNqMHaZ>sMO_hf5;W=6d#w;(HWbAiQw;lM%gW9-KgTM0>4>-_1-2Zw=mA*j
z!!+x&WSLklPZdhaG$CBHMuz8W+E6P6pw7JINF)2|eWE*n&%0${iiQhfYTkGofg!|C
zmb(ni!L9)_|682%dx@geRBAZDZO=s=f7#f2#4Ug$%x%z#xuHIe(rC&SOc@qJZyGGR
zRf=H9vl+GJ9aQK1W{T}FNrc80Pc%^bC$tb9=7rdYbat~J3&Eh%$+E6!kN;3PL<W;J
z@9Mn#r8PE9oDQqNtDxiaOpHzI?&Jy+HGY{K3u!dV-&Kq?Q1U1&TXjE`*(0c+f%slr
zEz*x(Pt%q=&@3$}1^J)T2Dx)R4=mAJ#d1SNf&Jnq03e=d$e8;b`xrbU5aT2$n6`s7
z3e!ygh`U<mbb(&sm-F#A>D=PTa`y8p4A7A0teT%et=qP9@H}v?FhpO?@`1&XW#=uF
z&ebu_;H5AkGh@SI((=?M=n@DUH$zWO1o#PIKXF(FzsNekGDT27BXstTD#s^_mU}Z5
zG|}i=UWVnRU`3D`zxNh;UM`0chi3Ud%n;}-kDYO<u<j(z*xmM-{x7!9Il8lE+50gj
zwryL#WMbR4ZD(TJ$;5Uhwr$(CZM^f`bI(2ZuJ!)Edv&i}T~*)OyX(_gCiquAWsn0E
z707XzWv05I$S^51^XgFCSS5^MQDqC1RoUiczs24m?{k%-oW>jpP&-R8W%McZWg}(;
z3LKC7hS<JmqhY)()b$}dNic^qLI)dzL^hNXqS|ai1pon(a-9OKFy3k1G3ONPGknJv
zlF3|Na|0-Nm*M9SSO!^-%v#!J2#cg+1rL)NEoUuR-ak~14I7C2fTySOh~19!&ZibV
zxJEAbz!cuh5R<2bxEb)mA!I4N++z`Q-I|w(ImE`HHqbcQoP=6Cgg`C8&&LbA2F2wv
zQw+B2_a{9PA`W@{GV`fu7T{BtnQji&y6wvkw2_2pvD+EKvs4IOmv%+~yJti?MbPSR
z(3}dQco23`izGGOU>^TOJ68Ya^jD(~A?jkk(-}?!O7zV~4G+uAdE`6U2}q%K%tR|q
za_iqaElh|(oaC@X8%Q-TN{Vo^lXR(q0*xL(&h>(ajyrD3?+|mmb87UlvGG+%z;k|M
zxudHI>G1S;cNbgKl1oNkP(k@-j9)1R^Q;j2o|D|q<9bymCL70MM!`)y(ZmHZ@zrIh
zq9V9HTyplh`7aj<&8FjmD;)VCk4D$&VR=rZ`3{ttt#ZS>lWn)G$b(-&s*^Z@Y-jLO
znoO_>g2zF)1={xd)^D^{d68t%JSO+E(p*qNnH#XKR@n434*4-{i38WzJ5316WFSlo
z<N-!}d`P>5hKu<IDgI!mnhnD*J~qaK6>j-(o>Cy}Fa?@<KOGQv1IeK8mZA>Jr6(Q6
z&}kJHk!Ugv5fza{R!F7QTXb~4_S9VFtdXw}+s`Y=5Eb6DP-M%g?SuK++|ocf9r}eA
zfWV&Keo9!HbagNY*Z%A~xI5})E|v;9JHPBX#oi*(gaFnnEWur09O*rf95Cqv1Ht$2
zIpnSE@3b#5$N4Ru8?y;*jmyInla(~2tKLMge4uOo;|%rBdY9f4e{{eABHS|d6ylP&
zQq@xn##<zE8Wn5#tnOl5wXTbKsEG@9Oo6K%wHrT5=OM?v@l(})UEnZN9tWv{e+|#3
z_!r8uHpD<<;3eXQN61i#d4$-LX8+AR%64@MXv+!{W}QhyX6ekYxOU4G#&mZZ2Ha7Z
zcnzGV{SZ@iEr_FerrCkM8)AR!2PzzWNKowiEG-TNxPmAs!&?KASxhvvs!hrvd*;bx
z{iB!w+*B}l3Ol&e$5TSzoJP^U+`pYP6mwO_NW!#;umzBm8izQwG+WKzP*r;66o0e^
z#A!xqp(Ci5!!@Sw!+@0v*4FeI4cH`&V>Ga}+YOIHm&x_LziWsEs&H2{PCuk^`1q^7
zjEOE{`4_-!2Zd(D-q$BnM=UcBuwWuDZ+EcmA+?ZZLNoKX<d=Mbmo~O@y5S7-c}}CV
zZdwr&)5b+Mi#fHw@3!n1n;^*+Rhi&S#*EZP*0&jwCAeeD1}&ZI8DGt<2~GnN9Tu|Q
z5k((MNweW(VTYjyXEvNaaF#s}KJA(&1{Cz_+$c6?V3u~Z41S@HVZb!)B<M3}K;Wnr
z0ZHpG#X=s3eszqr`lhDb-9CCBOpWg3_CoxSH5=gzZH)I~yru<9eaW^%r<uCjP+2dM
zsu=2<5Aw3#y=XuS7jF_49b!v)A9@Nd@?_A6=3dq;xO@`AU_jYZ5@fvkOyI$IC8N^X
zQ^+1$3*T*J5~9n~z94t|yjFX>3Vh9HdzfjFIM8+>^4m+v_|fNhU;JJ+?mD8rA+!t{
zG;yHy_j@}51K2spJv)5sFYj%63%GSdv0RwPtB%PUMtmTX6Vx;q6UPXrZ_j>2E?^M1
zp)*kNRS{df6>WUXb-6=99PRa94cwj#D9)7|vyVWI79Wb5I8gy#i;bD8I+t$+50_Vb
z+6}_WS_6E4CC?z~vs8caDm8=<uG-T|s0CaE?fZn&vI;jNI`JTUtGtJy;=K=tkcs{F
zJ=xr45;Sb>LiE4AI#l!kg1@6#$!;fg0uMu`(W$jWa{-6pUv!5KJKnwNU>-o;n>Z5n
zHqZdNqvGZ4Cpx2pBCq#RmhEbhZu$g%Onjdk$p_!cPS%3E$uHDXxKTJRfn?y%QMQXC
zAIT~&t765OqoSS-KT4V-G_~3~<LUMs8RH>GMBqx1!!Z4ka{gTqlAJs9H7w7knD{$H
z*4@Y-xjO!%GiaXRU*_hHI#Aa9vT?XcsF2#=kz);%o$oyk8tuoFF@}Qim~b=9%$U!X
zgW~h05O)jQ+fu|~xr_{;_X}0e{Z*`>o>=p#wxGKQ#QT6@%8KlXKxVs5(R!kxmM1>G
z{WiCnU?%%9AlCrKDq@ywY$~-KchW!fR^y9#JFGw1bN@(ZHcM=6dn(fp!{5xkJP{tj
z_D2D-WNXsL`QS*OS`bfU%QnwH%4oEYu|8*+2@Russ;*NDt|Gz%bp(R7QITZi3h3e?
z-tf?dp?{g?{TUTmh2J|~tUey?zV4E)!p5c$<L8lwJ%9+{4WP&-)Ln~B#GD+7E**+9
zLX;JpRes}DfodE3GbSO0R-WS9!d<9x@u~iz`+CRm3Ynzl5j+8jST9Ye2Dx*-U%<{K
zLBV`*8f#h+8Gw_&fyGW$PXSL)>4dw(|Lb)EE&&*i20qR_419%oUf<FXTh;(B)Le+F
ztW4R4&zw}xp4O)~F9M-kFX(+CWE9WHJ{@NG>|S4b7Ie76V~>_#xa`?)T_8h?Y2>}y
zsfiL?Yfbd^;`H1EWWYVs4tsAPhOeb1XG)v;Tc=silix00O`LYkNBnAFsEmu2oWlDZ
zv4xPzaeTdgp;OL0MADx#AFfVbnyeDRl&6T<ek+uu7~n_>eeryh7VB~s@Nx)*I-%Dq
zkOKXzOTTQ;zl;G!aeD?{5Y{2`6V&_V57oWH8%79AZG1H3>@A3N!VT%Ny>`eu*V;Yb
zXqn|N;h<1KZEzGqDUR{Z`lY_1_-Mc34QUfEjs~)KXCBmTKJ|JvY#FUm*xN2Yqc?=u
z@wi`@qYqEFDdLEdrz6(|s})5q?vL!i18m{Xglh+VxG}+p9Z?vIN0g8p+h9c`17CSv
zV_!8tM+QkLH(3S>p!ksXc9$up6T7zo+E|7M$%@t}YAXd+V7SM756iM)H6CoT#9^6p
zta0dfhLHu_<yf(=+n{@o#Ri*skQuRokUo+DeTn@!eILTK$zA2Zu!C%Arvg~~`nE8i
z(Cqy?s-39i@uMD4eOroVtCrvr*csGD_G2jpdu#f{2YdNp#5^8&AZ~H-1_EbxK&WRU
zWBUh1jVmbpl#{C-$^Zebj6{S-kUB#Ab6gyv&{~pDpyoef{Pbg1LMuqlyqV4x$9wIA
zT19F~dPPtX<aA2D)X{jz2x;9uv9PQT)s#PoM0h&PtUQi}qid8esjFr6s>n6ggl0Wz
z=t=z+_;ORSgy2AUE|a)7cLgTSrvfc0<q<OY5*$FpSJBmfS{p>w0N8|$-T=5#1#_%7
z6T)fT5O^`$<#aC%9%sa*CGlZDb+qE<Lg^Ui_xXwqX##{Sixj4YamGz|y20{OrAI-;
z7%*Tc<@&im3p6XoEx7z|cp@fv%aD76lH;=iM~i^C)iM2ruovLWV}c(!C?5$jZ=!kN
zZ6(ZBY@r9pbAeJ~)%qbOkGm^V<d(@Kd0Kc?9PlPg4AmEh$B3733#Ya%-0P?~dAqLx
z<n6j?#BT8C5e~Bu5P;fVpt=^E99S=2g6}rjCxKs+N(MZegGvdngkV%x0KdVjwCUq9
zzA7BTEKSjh;J1-m<yX@wz$=chzjvu~1YRAmX!}YVhHzL(AwvtBouG#+hI8Xpdw#5Q
zShVtMJzh%R#=y6aHkFba>F)2Q*i2!MeI~Vy@4;VW$ZhzMz_GhdnRmbMIcg5?h=o~h
zSFn_zlh8Mhg^o|>HO3D@q`WAl)|LH^CCCFIb=V?SdD<R^)Jp-fIwA6#;MT6$+GH`5
zf`tJcLsa*sIBcR?lTw_-`xL)u<a9SNv>VNX)u!yEIIdEjebnh`{4>lOe2F$VyV-j>
z3EkvAWbgx##vNL&NQila8_gU&i>0%g1->9{b>(!;K!Qp?5U*FlSzS``CP{8qytEMi
zAWUo1h32YzZ_d!4y~PqfP+$b<w6F_oWwZ*a3Q!}$#cRo+>xg9LM;&oh(cfPDW|#jV
zIgbXg(@20bRCH+Nch4U)@yp3Jk7YfPz;c3aF(N!FJCQ?LcwlQc`M#C*I2hX+Lr0a<
zVBSc8<2E6N8nkQ1gXj%si{6m={g6B8g3W7!&DByK2(ZN!Id8s-U#)N*D_DjL>B5g9
z2JLQu;x!l}UJa;41%^jh@5gj7i8y)K7d$_fh0y>NLkTT~sLh0M2@upOaAI6lB_tsa
zU~b^`)|ZW`yu>lBjBjm5NT9sHBoPF?eE#9UTvU4gX%R_^<OycO=&zumh16KXH3y<b
zEu8@=Rlja*@AhvNfO%0bqYJNJYCYhf9_<Nz2~RfJex%icVF<~6-;Tt-YD=e9?y8d*
zoO_dUu#;Ibsy&)e>-#-7<?btDa}EsUa-ZOXlHsnDQhgK~_Ha+}*G2y#Sfy1W)V??X
z!ze(pc(5L7Fc*m*1P#{3t`MjD@0nsg<Y1oG5;vTqUzBY^)oKbVcj8Lds1H?fr%rBi
zzGvf@x2vp8AWT4h?I>(<x3<$#$>UJRN0vz{;7fe8ID1IHv%7fv;9koBSiCQEu}+6B
z@V=a3s|4o;26%UG2#T;u&{;J=9Q-*uU}sPR+-@Ia^2S%MbIL{5Yj7~k=Zh%bH+(fc
zUe|>tbGWn@#lKh5Aa2FDS>74L;eMF_5-KSs4PfmN1|T+SoBW}Q5W<MA46T01MySt|
zPEqr;gM=p!sb|*J_G~d*<c*lY6f)7v9IBvu$@(dQ(eqQhh$Udw$<%Zprj|@<em=6e
zI-df4cQF9vteg(<Z{P4svXdLDAu`}o$8hx7+b1HDo%jUNB@t_{1)ONdiYONOJIsQ-
zULP@eJNLT|Fi3luXHb{KDZ`>4ava;Hl;~H^;)T$8P@g#i9x#bOE~0Nd^A79b&_6It
ztAkZ`qIVcQM(D$w_j0Ed5|7F~#>*|2MiHPpbx-zl7`Ex;J{z!9r#6-GCQS}bOnnRK
zD*AUYVc%kB?biGFiL0G~iYlbDgww;2pG2l?;;+c=kU2$S`=y1&OLOXUeSl1r1amK>
zI*DR90y%qI0t*R`X62N*T|!%a<A@%uqhzeu5$$<;Y^fH}EZ|?ZqIrWPRW$T-8u=P=
zrqq+$^A1a~FIB#X`Y?ZV>J<?_i<P!}h|8Vyr85kh=&V#@1F5<B)$rUN#m<31#;@p}
zC82-x6V9!<VtRiTUHdh^&C!mCJt1-YmRqm?4!AK(KOpplg&s<rSCv9tkb&6ykrgZ^
zH8`aWqx+%X+R<VkDh%#EZh$BcVwmF!+HWNeTe|_~M8K^5)zaOP=C{~OVAje~g&o_P
zfXE(`R&IjCZNl9f*sy4<Dj;_hAoOi)A4)#8O`S!EjQK_l0H;60!NQ@gZAngr`4WJw
z3D1BJ=N2}%VZ=HzQbFh;X6J)mvKV&m2RkN)=~=ai@gHorexfKcsKLU;VMiKgG1`TY
zpCH7QM_=cWV&IN@k&i@09rDp^6WQnuF!PQQEitd|B9>(4hXpt6mEuewSL^u5`f%ZV
z5CO2J#<XAu20^%ydN~-95HU%70oQ|a3^ylP86*a|fgp)rT!58CrbKtv8mWV370QQU
zSPW%5oOXLW8*u%2r|XCe&jjYX(01eh_J<%F?J5>mL}DqOh`<ZAuPA1kX~9hV?8FFC
z->Y@Tjb`g}U@YuktHAzsBR53a40q?L3mD^B<!R{hLUa`hm`$m?cYS&H*O6TpgYAc5
z^}r(J-5JLWk%{D|b@j^AUd0^h7YC}BNwWpn%kh&HM_FNY5Va=szyI-*5vc_tzCx%&
zO#xN88G)SoNo8$`5OEo91|c6CYoN6?#+oI&?ldq9XLK!pkJtip>>O9$7t*IZM<xC+
z_-r!8>~&P(67CauuMm@40T(J5b4;v}&mk`yb}8_LEN=rNkz;#x`K`yC7)kF}n|i*1
zShzzNP6#(xRW)g!U(w}TcH)T`Yg;}ClypYw{*wSt@=zJ^Db7@b&5Ou>O(s|qT|_Z`
zw@o-o?nK6CGjCKRGhgvvKU9xVM-*YjaV*DtqfpnLFmPVs8%uQABM)m{f3{QZnrg#`
z9rkpjU;b=DEGF{wG9o#&vS$frU@3(I#nsf`vI#`#Y0yvxA<Hoj8{y;~$(p&3j2Pwx
zGE9~q182P>V-j6gh1FA5_qz?554_M44?LW^EF=B~_Ce)UNVO$w(Wy1qgUI$C*Z3Kx
zQl(?VNWp{)?TQ!kcpMU7(>J9Z)rAi&R19k{1lN&N=j=NnHh^(Y4H>`146=9P991%;
z%PD-YA6ZkP0swS7I?y9SrfN}0)9;og3sGsXgBwslfiZLL-s+aH%~)-{`7YBaAYt$#
zW3j?NKYaTnG#j8+uuzBv>G=|?W#g|1>UtVyrsHCDQ@^~Ws?><KsY4i0Oo~nq2XsS5
zEKul6XhzdwexFBA2@?Bp^U=TY_;k=$3%hpNgVML(r-a1Hq58rWlINDT-sc81LvmtI
zWaEWC6RN178~R;*qHrn<X<d~m`IUx+${<5<$HKJlXDLy;4UihDnj8d<@6i2G@MQ>t
zI&DJmBptVRZXpQ+_C5I}KdNbzy0T-EmHG1OgZv2HZ_KYxP~5_ljDbKLVro+luN~&$
z#VFVLdwf9Zr-#mugjxjRE-ypGTKb99S9=gZG#|)*d#-dx*ql0kltehEVJl`R4~1^s
zs2j*SJB|kv-ChAKA-qe^$;8b7i(RTI->eBG$`|pwe)pm9w;8xHg1xB=>wd^*gyC>6
zT^|{2leukY2M6aM@EuPj;<sC`X*jsReiSEDi2_<obRD+QpSqe#<oUyV-&&Airgs|`
zCVTcz{{5A{_MxDAGnaS3ayZ#={b6DT<j7^g`&fB2chT}Td4H82)K%bqrJUiS2R=pt
z%@P&;ub!~<32HImKuoE!p<JZ!wx2@nLt_e<<^>;FRkQKIb45Bz$+<}7cMTqDQ*Yj!
zcWH1SBNhB~l~;sKYyLg<gH@TRa3)_H$!AuCDaA+PQuZoKJj{ZcYqE}XKJKVj6ziqv
zHuPt#``KYiNF5t7+Z}2Wsa^TVwH<|1{e(^w7~}-ZbP04(VgdY{E+G{C4u<5%MFbit
zBSv_DoHeH2d4dRM@18TVDe*AWG9`8h_AsZlmzf=ee42IRi+B`7E};pL)Kt7wyv&Vs
z=_ILUJPAZG!?06g3H!naIt}N%06Z=?QLL9-t{`d0xFm-2P@Ve89NWiU(ebg8pHw99
z<01+<EV(>y#$8M!%B@H##JrK1%r%c@<RR)pPjXMSEWj+b?x<d9D<4kZPFyiZfq`Hv
z9q)0!+AULA{W&MGm<AY+SYLFoFirl@2JH^7Es$=OD}C$-mr^mg|FwwG@V_lWx(s!d
z&?pIkz^V^aHfiZHZ?7A`S5h%<!{Dp+7v50aA9p#wW-TJVNAJH80XIlrcbl`k$|;OW
zgat#UF~jO#Z7KrD6Ps`7u9MY-+i(DquXTZoA@&8wIuYH7$&3o&hNX`-G&y07(^Imi
zEzNOIsaAEojH8$22n|$q@^Lp#!5B%9Ur$Y<mXpi;V~rB;B|xtr(^HCPc!D8ZO$iQR
z@IBuX-iy0*B_<Z+l$mt-^#nFHv^+%(^R+U!JD(W~KV0&&($yJCYiK(qjO!2cR}(Al
z_@BfhrC^S3&I2=et4=LU`w(DTZN=L7)=oJq>q<dV(6PL2K{E!FHh5HqWqT;@@jl0T
zMtcQ)KPzIm*ry2SWPCajQY31)L=L<mfl!!Z{7#rMBJFWz!AYsSdqYLo{U~!{3VwnD
zH~e}>HTpuHaCStB{<oblW(M!WN1V`@5(!{(F~zn6L<Nav@R+`)fJZZIZDXDkF%+R+
z2=Z>-?xnDS)?)7xj4C?qcP0(PwcSYw1v;38%!YYUIf)NrFXzHpJSxg~dVE<y1xjf(
zvVEC<x{VT^_Ez+8h19pvA*hFeTI+jf;C^90r6j>(ZY<i)klhZgR8uwQ-(}M3!GQYO
z!pet^5GZC0zRQi6og;+PINR;J`vJjtw8FjQ;Giv*X94Jqw-<2^g6G3XSxZ;6frKo`
zI?7P=<1j_7jSO7W!ToRN8nVc>h7?dVc~((D`@=peeqf5#g4+PU%5osfEf9_MDGbxK
zu+U*!XmXF2*I2x2VRC+B?qv2xs}Y>QV8fbgqeu3hD+@e)U@TMn2m8aIgAS<&yg?%P
z2xCPoDRb9`5gp4wm>{x@?(xt3-kS+6K_%o!TwF(>B&chWaHkZ65Eke1!}%<KFWILF
z7!qBOCrWh<pYWYfa`<KKks?RXSf^sO-D|{{gW!<c*uHSmn2ioW?+$DK;<#7r$R-D*
zIWPmhZLA8+AP;L#>+mt72;e|(D!K)syL_cXAHhLp=8s459I7?<kjIW0Mp_>3)+?LX
zX|{vM`RNj*lWct&YotK^$sR_uF%Fs`@}1tK?YZN=*V?t0I|riqcdGw@uzJ9Qfho|R
zs2K<<XT?#ifnt1}LU`O{^ej+t$Qsfu(6v;u1vlRkw1lOyy!c@|Up5t~0+^T(M&#)>
z1KS4MliU8oe0m}I2f$)_yTU1=QWHU0v}e&U&pF8UmZewdwohn*b5s&jU`3uNJB!3L
z_2E(#WANxE@)dLSmNDH~^UcD?1Q+oezb4NJNeDZ2Y5qSzGIdP*7~qT%SmPkoHV6Ew
zD4N4~Wp#YaT^fqKh7Yf`(H|p}2^3&5#A&1Gm!?6bTh&IMhek|`h`8efD{;jW<C^cZ
z1Z$49|Ce$`iDtoq&Dv|=O7kt7A4pt^Yp!wMRY{pshf$ak>tL&s%MntCMNT>$bOC5C
zYW(YB|BI0}#Q|Y%H4F4e`kISZuEy#Z=`Oqk@*f)4KTq}$pn+CZwQT!iu-+j{a%jT{
z6dA+(=cW4v`$xinCRN4JDT2bK^PvT3BbXkI%5MBUxNDEzP(<{`Oe(WjT9{^EF3wog
zZ|>`3MW5taA*%XB7<0P%Q<@>hz&X2^P*#ry#_Wlun}x{7YR1J8UG)95<`*Dj-UlFq
zS5jwx#27Vg=k#m1#gs3LASdQ3=GIxg-b=(`!XUHg&-|Rv5#Z!`tZzmxbl!u@E4`mf
zYP$9V5LM9rs?~j7WBMy&^MN}D5W`hT-wkgDucUz6cJ2=7h^gLuY<^n4`dGS74$dR!
zKYe-2kgLyF&AJA=tiCU^$VMy5LvH>&X=uzyE*T1P`j}VSpFmQ3a5@ro3s{Z42H+i9
zyv_OmcsiZcFU@}FlIzrSZ@XYeUDH;<+dZ)i&sv;(Ozys3omBN(@j10QvjnbQPyePk
zJAiI9T>0GdHjALHV-aWFn&6yiaTo}8J)XZf{yWs_|37qkWS)$Ru0AN$Q8SZ>CBM?`
zKUT7L(C;Cn(I&mUae%(LPl+S+<r3)|!RoxF5DmA&q_+KEV7Gs;cSeK^-TVO{9|Hu!
zvx87o9oT`DwUJSX9hmED<@Nt@fl?sQ7M7Y5)USwSzUq;-73Xk!iJw(0_5TN>*HX&F
z4<e2tF!Vk+NL_Zjh=<`~S4(a8UnnqtJ|c*Vw)&?wi$PU@y#gyu?iv4@3|}L6PRwoA
zD^}zmUB5}9a!<9gjCy&b3HTV8)~AY*ENEp_IUV94rZ1~dOFpUb%JII^#ff@p`k33v
z?6ug_l)ki`7S^Z1ds8G~3^^?=w#I*LXC>GqJ;rhR(xJXfOqI}Cx%zGvj?3$fSgBSg
z0z3p`bV`n`jIzFD811P%R>NQ_?jeT{Q{<@)b@Ug`XXZn#xAK6LuOv@SneMuv>4j=k
z-{OfsYA6u20V6@M=ZpVxU<@1x=6c72ky=!VX`V7!bcc9`X{Pd@l_wA9LOLWs7=auS
zP{G92)x<E=B+RT#!kx?e6mw*!?&$}6cUMjxg6SB+p}}C1#{G!55BAL{<|+mh2#2IG
zN^^CEhyVaKq{<+-mM?N_7jHH)7CteYASfDB*{yq%#W&Vp>FAWKP06wNjfG^rIQrkq
zp@w+E<D_19BS7`lv%9^2L`J4M{^9;PKbq)~031+hQZG8k%r0qi8KqQ+aU0M_yxL+@
zO-w5o_$iRo;vZKYWu(~NNJY&{W`VUzJxq_6Ua^1LW_{>br$Wj_Cd6*N8EI8@CLy0&
z-F8*3y#jEg^gm%{sFqipt0&DDsByMlM}_$9AOLQEZN0gj@w+f=UO$t!no=4M?J+=n
zX%S12J}f~a_<z8OfPOy#SiA&PLQ!mv9~cOT7{}NnbX=Lvg02@_g$*&9{*;cScCb}Q
za{OrHZ**R$YLrz<QqXYlah{L3Ld)K8b#h0NeOvu?uJg91v#n%dxO|8RCWB^g@4}WL
zm75(n1LBBbU6i-CPnGW=fCGLn!BNWLlptZm#P>q0cXjP4AA?Q4Gx>x2r&CWRMgL>C
zb=9GNrH&RL#<=9Him<qpN#Y`KbW4!s04KOB+p0NQazO{0rYq?nPHO%D0sY_pdt`!p
zdHV?|*>v7s4NCd!ZCUTk?S6?zbUJGssVe7glvkS7RW|(kNr#oS6Qny$mjKE<0iU@t
zoyvv4{Z@wR(z<wVVQmJzb{%*!aPh<w`}}DTNZ2GB5lFf7|H%<wJeV^uj>r!hzk2_e
zZ<P9%<8D&XaW4C|@hHrY5ED7SoIsb1kUKaWxKoFfghXH(@{q*?j!oFZ7$dqhS#3xu
zobL0yl5K{G^qjL4=a`FXYShz7GRZ@x*nHA*=n?+N4GRa;;O69i3c!pR09`6a)Hrsf
z1peFWKTa9>JMpO3mxP&qi^~T=g(H0^w5Iu*Hm4IyR`c2J=*|EfMNMVXNLi;N3<;=x
zLjwW}d(&zrv{UN6mtQ$~HB1E=Ir(TY(Au*E;KRru;DY)%1%{o_o9H)LW6~fWtLFTT
znliu-nQ~>*vZ_O<^>D`r|D7Grut5(H-CLCZuoQ;>NC`a;^7zBpeSVkTzr1k5fY!G7
zsR3Z(MZ*b;Mc&}@)TAQM=$yRPKCntJ;qqy9L%}G|B*0C=kBR1VK9VbP0BIG%_z_oM
z)FPBV*CGEyHS|zkn0u~z%HLmemS~T#6gCqsbF5Fx=il-{-VL*K3VG6FGaibXlCr0)
zh-Y*-OAQ?Sz;7Xtxhd4$b8mWFif3bU98m@keYQ9-3Q#Q0eX&OtE|D>$WZ)w(8RrmI
zUfYMwo?s^=<fn31QxBzH>SP&dnkuLn`B7wYqxrrHupvJj0m&S9@+bUzh|IB0^#V}?
zOzzT+l1AiTv3vmyB9mUdX@V8F$Kxjjh1gP+9>Z`#j9?y@P7DRb`0f5^LXxxe6Dhvm
z$Ry~GHU(rPBzm~MKGF_>-(aCZ;`>9<MN-GId+;D-Z#%}xrUH{wM{c1($5R;$PDfM8
z7Z=uu!jGtGW!8wIuBuM;UZ;ke<t{X>Z{@Yfvo(3hFiS@OG2HuV_MUk2Khdny>~JNM
zg}878o5NG=Ipup8{LdH7CK+Tnp1S*@PYMx-$%6{RSJQ>|=|5ZTcLiTx_G1U9r{!FP
z*<&&?GJ^Ew8*J89L*Q`8qp{h_D`8V|{=LVvfiP#R1QZnFrE{2+ihZ85q;uFCwMRPw
zaU?loI&&rfbQw()BV`v!%my0)B(*?r$zIo8Qg2U}N+DLt<oeOPV<?Di9njF+hY5K?
z%9gqUaAXWLsddzWUsO{KhXJ46+z%f17F4aManrk-@?jyNVUV`&eBgXx$=K{rNk-S5
z1?IKy*WJ@Qoc?}gbonQOq=uFYsInk5S12=W*CWs#`{!JH5Ff_}7*u_%Kos}H2A=xz
z%_(#AP4O-5OVuvK^V+03DfxTzcVC&4ckgGPj)z5^r~(7J#&IS`m_zRxkrQ*ZRxfYo
z)g}w23UgID+~$iIdo2d>l^XS;x?Y!T$>ZfJ6@_B4_^x0zC@3pb5A9#7_%8}(P*M78
zW!h#74tU%aB3II-#C(@kEKbr&?HThkwo`q~onvPu`<in9+AG@Tm@j+d)dyAF*Kspp
zm=>E=1?~d4qLd*9ee)%9R5}E<5t}u24N<*R<({*WC8FnxnP6t884`N?*HUTS`u?!k
zoQTfi;l#9-%FE0&YH0|`QQ2m0ms`<xYT=f1!tfMVOm#q=LSeQ`AVUzK#`hsI#KBl0
z1((el<4t>)hg4b|e=w*hS+yNj-)n_V_h9nv`iEo^(&DKE1pH0*vMxh=O}G_pWhx}v
zD!J1TCezta?Ck8`-!v0hEjcO$EDz97N8iVvM|+Bi<_a`8AG)*;#6_z*c<m}i21M=#
zR;KPw8Ux9GfF;=SIdQ?>^)$Q$%2ICMiAI(8C0yCy@6oK%1xPtWivwJS8{hwSm86q-
zj?*=dv^ebRdps0UQ<+R^HQOfpV?upD`+igKeZ3S|@_3#Jatc9wUS7eg*R-=B@|PI>
zO8!zkxT1}boo9mI#Oqf>RdpJdl#<tEA9kKJ__xB+ro^1N*YflXsno4UA9Nf>LxW3N
zsmx`p=rcs;y3N}XU2eIm^O>Y3dJX|YB6pRIk`>HpP0ZGV`x$T8`juW$=>7g=X(Y=r
zHF<x;kYv~WDw*xOD-s?Pp(u>^`2z;V_-VR(?CcTea1gp$+}Jn>RcJuaD0X9^`|F5X
zp1(;!#Y}gAnTai?JBwKb-}@ks*~jdy*5e-ibSBUHw9TU!dQp+5sN>>{Scsb=IkXCk
z7~l4h3<F@su(Pn4-w5qE|L$~P?pf9GIid~?cSEIQ8%^Mx#9Tz>!r(&hLW7eM)O>{j
zt22NS5nNIjlqul18oTYhNR`PZFaQRvTuJis@=^-x?d@HpR;}xJ-T6EgO5j5o3Xi9l
zL`x&k%F3-RFCTYsbX3kaRI(zYmhc7Z_QP7{3Lp;6Vgq+^qM@NN7VD8lBT)pP{$lcG
ziSrs{l^9^6%TjZ2s6~Fh&EWSfmY6YkP&%#%Crrs`r?{NvoXGI~`uZyWprz=)UH|W5
zM0*93kOGqYj8Kr8SEZ7Zn~jd)SZw1*QU0k%W3k1;-w=ox9)<7S`fxc9DU1M(vjE)F
znhG|%>9z@tR{~)vd*s>MtvxY6uJ$K&-4+YsXK9GZ$I-N2Zqo2&g^A1$WswyJwb<lA
zsg$v?MXMqaYZMjudu&w&XZj888}C{ly5AgPTVCJYbLA>hXdQrC8p-CRO(M@qgb&a5
zWi<-WpZ0Xph+nq2SPWH&sXEUa(ya~S5Lmt*dcnFfNu}(-q2cG>RQ4q20>4hrFN@|F
zt83q~HcCP4pWGc|f_}%wrnV5pq){?^5-qv>cI6D_P0LCQZHQEWSA+H|gOq_qf)tG{
z1GlyZLKN>gaYJ95UakR@%LLC~J}&E}?(FDm0I8ns$MVq|$PZ;O8U#eh1r-(-k7d|(
zl|iM?$ZLN<_8rA=U&Te^aFjEC5K)}XNiig!SGCI$$$2q;PxHP@7j?T`>mEvT^sO~o
zCBMt@eHM15sYyykj71*iZJ~URTxxcDHkL#7n;#_3q;optQzP`(YRB@vm0qlNiowzA
zTyOil%M`H~4Z(W69;OxnL+na1{KZ2XYyLO9ct>y$=(zES&X7oO%&#hxhCR$y(qk=>
zVw7L|Cga(_LDo$rLq*M{EsA0ia|kpwyUhsH3oK$e2%Szdv%b8o6}uR$WhI_)FDJ#Y
z<^n7w<0^Cgr?Spj1vB?sYd(DAPrdU;Qf6kwEsu8@i}|)9T1`fTjdEfM-gs&X#ksMM
zqT(W>`s~2Rsh9D-cME$SaabAmLq11}f%M88-2!Fs>HApS-4{{=!5yXQ*wm*}%4K+K
za)Q4<WQG-cJr1y~NV1o0<&r|T-gH6iyu<`UWa4rm`I4HuvM7d;WcOv4U2v-8JU%wD
zke&N+kO9aB*WdiQIS=i)14Z4YN|3PE2=t3r{iAn#CG|*OGSHoW`;&a%SY9n0sAPH_
zm#{;{mG&>fu#u6G4;GholPjv)B=ZXj8teD6-CMjyc6tMg%%-#NCbqxnz4yFme6tY=
zkpw<Tctc^ah)J!#KCgYHQt5S!Pv?r}Ai06$<m6g+LvT<993M^;!o$NAZbzeEKkla&
z-xJ8BNZHv{i4x$s-L90cjLVQm20hNoN)8g`c;k<Ae03pUF@c_J19)zFK$*SYoM+qQ
ztf7!q4xE2Jtr$h*;&9sMl3qy1;n=k(@V=dpsECd^Lc_}Cmfm2F4RKcfo0Q%n&y<US
z%X{5^Y>UWtbvM$F0HC6GT{753J~<{CT!A8xn@rlfxI-@vg(o1J_T>Xl05Q6nw+c!G
zqjBBywA}8)iLBsaY!sNlCO^eGRSeqXBSSdAv?t=twobYfS4?OLq$Ga!H_3Cq01Jyl
zMa1Iyc?|v&_fiaAP}MZ$1$=>5E$4;IVFrr0je+-F-L~_SKJ9&ddale0H;P>F%)bsP
z%ATyw$ZAz2!{^)ciOb`q7ZR0dtigHx)csdBLk&kNwcqXF-6=CfAE9}wssi(&uM{Z<
z<k&UQmpKAPTDN68?CUaXYn@io$HNU2^wV<+L5fW(1qEGdKLzt)u$Ne5HAT`kFm(8E
z;pewZN(+$N>szl>k%W8hN0)6X&rk2@%55*@E$<6U=+IqhWFgX+yIz~N%geMmB4T+T
zZ_|bg-UMnT47=oUy>|uG9ee)jCmEHM`mPNXCGSWK28i=={#C!+^>`97<Fy8hT>a~$
z<7_Wk7k(9#k2paFzmKO?vz%m#oL`FJ{o>-aH%cY4Dg!e~R7wZwR#gfLZEn}}n{6&i
z07+7M)5&x)I0sZ_US8c-C4Vgx;o(>UwGBMai?v267arHIh6dI&E~jF}FWbfP<cMaE
zdsA+vhXE8h%E5-O&v%-=BB$fOn#B2HMFB~#-fUVmXp&?57s;}oZ)e1Iqm`QTnJ6>j
z!0dJRH~sU5Q*0Kdp&t^7=*afh69-YM6exG_f0OlFW*Bqbwopk-OiYBz-dtNRmu~9}
z52=d~(qZ$7*w|zedR6#bX*HUzev;10M_q2@{p8#eki<p9#U+i8&L^$%;$Wk23T(Go
zcRhJ*;AWv0O*^fd2o=mB4{1Q%xuwWqhN8qF8U!339Z1ci+ZYcV8eOJVIN~3<5C$VQ
z*T5GHMFpP)mh36d#Aa4c;t)!LLPCI7KNjz$8zYLu-@TTg9Hy*aC3$pz6XUfzhl*TT
zH;O7=9PcUW;k(}$h?9UMhlN@aXusQH`PS>iuf@+8x5d~t>iT1omuksY`|c733=|0~
zGRyr~g#ss3KN9Rdd3(Y1IQ(Kl#xtd?b+g_S-jKr>g>iBn{X-Hfb({iWWU}un?h9`^
z3RA7i(C^u(;>q9H-jJjkEqD-u;hVS~LJ)`4S*AAFA3|Tp#G=RBNh@oMH7^%FNH3DD
zlfjX|D<_k}*21_#7}i5H7nmFJSP!`jh9n|^8qC#a)4XZAJUr{uR!a%NVl|u?Mhxuo
zxTrQh5>KLHUo1z;Znve4@AG2N`uVhO^8NK$t|UJpveM<<?s*p)G@h)cTXvxz*V1-7
zgtK_c;TR~67=K?l=$4)=sqovDvRHuF{Ppfok|Qj$bYepK^=aKMIm~wAHxsNOq+_ye
z*Q;q7t3^T-9=B@vaF|lx&2B##&qkZ@bPVnJKP8|)3_d8hykF;g7bIDeM%0G$KHOZL
zh|}qEb2Txh`b$U0uOcUj#^8CflEsjCL-vS@lcCqUgHh|(t9A=V8fT|1pZ84`iZJV-
zX#a-0pm5#phmTE)E{d`BzMThtgos0}F2m%BFOx2wyPYgaxiDf1N75f(-JLA{)#YtV
zFF%6#1qDH%4aEKYChlpOm4$7x26I4uyl9GuJZRur(#Tg#t5yC%2ak^cRk0qFRI&WC
z6BI^#W`rmo0Be9x%t9K+*!6gs;lkCrF~Rb@{$V@S@Hee~OdnocS9LzEQPZQ-erPZK
zZ4Jo?(Jr~Rd}Npl;gXIOh`QKx;}?;t`jK>2e;+}t9%1`6Ncs9u;312e7p(VsiR^J(
zgypzisx{R{zb2yI_v_h4TiMloegCqE>s)x<pk&3Biaro6+M7JWzKrv6bJpRtj*nzq
z2aCOyNeHqG)U}0l==H<RA=h;hdrpR8C|NB<s;Ox=MH<S?LX9LL+1p}!s_ujVuCOdZ
zyIBvRM{)&FTnziZ`YH>X)~z6vb)$+sC|;}yMR%R{Mb}($;w!B!oz5yjh`!Tctv6L9
zl?sRl^3AlEFXk$-xJJ9^-Q5LL#B2VJTWhj87e?*6c$xd%<F^Q5kp*8H<U&bCCNdOD
zzyO0z8&_*I+%}T`w@`80)IU+p;PI%-<%Zh@BFvAYZ#_Wv{j4G2<-fTWP}AD(^8Pyw
z{XbPy_apT2#a5@*KY>e4&%3dQVWec^5-ALVS}Ii}61_DZZp7~KaVsaBAJ>c+7@5$2
zOgh)XF+tkLGvQraI3Nn2Z6SI_Qans;c+vcsez+&G$<jtn(z5a=2zO@Sb@vyGoZ_-A
z%BbY?wr(L{5S=^AW6~0-mHn5<(M8?!dDt$;DF0`Cg!tNTfBfsc<*%={kK=8p1ONBy
zMB`3|mver^U3Hny-gf6f)JyD+VZ3^`c6`O0MYO7Ak`<FkZ$4lOPmx(GUvCW`rm<!3
zrA9G^)OxjQ{Hpis*Hea4{`F&8wG;9IkE*Q4QUq&)`KumPOP-e7A%iMzx*bO|_P|^o
zry66c-U#>&H+8X0q9Y~g!s%)lrHCGCXWW#0J4KWECjv65V7K4AVFa!h7-bpjITdEd
zs&ggp&CCx)2#2>a+=bp1<a2*)Se9i{W}w+A^qA=sg;v$^tYzFJ=F=C+q$qY8mG|gb
z+6gDzPq6P?5r{OY+J5hxv$)^rA4?e<0;AnjX$99rMc${4S6Xw2$e)R0)`nbhMd6<;
zlqI6DX0Y2h68|uS_7OTk5A@UQaId}R>O+Q}vKB`)s6qUBH$qay4X>kHN-@W_ti9jX
zji`*A5AiJ#*JQm)Od=NJe7?nps6okb<73Tz!`pG}m<1;82S$wsY(uGyp)6eaa6T{N
z^WhLH{XO20tD;@5P)QVq%qIBQY2-`QSYS2Yk1}M1p`vB6RarLi{nB5*6)6BieI#qO
zaq&<p-pFGf5ZGMwI}@qj!2y64+7w{_)`VK{7_B&b_WQRv1#{&x(C{p`J&zfG%ppT$
zksd15FcyPM>i5@SXPtHHv>m1PA6v|52qv|ppxlv@CSh(f!&=JYRMKj(g4f7iUMOU(
zJ_*e_If+ls?fX8bSA%={*T?(o(e`zOu@hG~Qg*Yu-6(4tUztgBtl!sH9S3iBLoEi(
zW?#&&#)G0BJKGhc<mKs6SBrw8dh2?c>=F-pI5fRyL7&6Uw3tEhWXmQY(FyEpC+ori
z?meJAzLc=ZcAIUD>)k?lYjM(~Ezy2_PdhW$Q9&JBo(2zC$RWpCy7!O)Y3TV-&;d}V
zRqa;^+*d9A-YE=vS05hMoSn%qx8U(C)+>z1(_phKE@#TeRu4;Bc3d#2pA`O!7FQds
zvQewAE%0aI2%_Ue8k-vs-*G_Dar|h+en@;Ztje)a%T-L#G$nANp;McgXav{n9p^Vb
z-v;xp%aaXS-VtB7N7knWy>0|=kJX3i71fF*+uzAtcGIqIHhh$k!9AKYJhJf4<-EC<
zKmlTa63a$FZaY{CTA_~RXmuW6K&+Kk@H_u9bTP@OJYW7#uO|Qo^b1<AXHXS0SZdT=
zkmqQ@kD@x9M}K#LOj6DUJ)hO-h7IxMuija1b<67M13y`bTBG|nme2|jsea?=g+EKl
zWAToKP;26U5Z5M20LovGE)gj);nV={rGC(}<HwS2Z(=XDzL&XMp+c|q;;*yr_gBf+
z^X{dS<(U%gn_qG1Y*DGT{S3)^uv00I8E%qiA(wYE+<N1XW!wjUDT2vM)Dbs2lMEh%
zh<B~@EOz_Z+oP{|^~^N`{ezIuI_Bc?>*6WXHeetAH$C=G3k%A}nbA%+1PI4F^_Gj&
zZV+vagiUdbhOh;T`n&!o0g0}4K4o$Gtpa`KEY2PVoIHjQdD70ac{FzGO*YK-JNz8D
z1WV+<W=tRyf~h1B{c%3`Pw1tjq?}YsMWeA>9q-=~w|^eFz&|JcV>A;&AjmEF%k{BQ
z*iT?jfXJS6AzEA7jX;5oP-!fI^zyTL3qZz~;d#S5wc<@^-<QVdszb=Mi&=;llUF*V
zl+XNpi44>A`t=b%Dw-|9y@W(2?XL1(r_L1=ZtuB_PyDkG^>s0@JN|7g(m)mEBTTR8
ztHi~Hb>41BCeGajYS_cRZ}6n`neSCw6jmW;76f}y|B-r%*SCGQI~y8EPwS22^6fk~
zg#fCs|Ez*-w>fr11mh`nU2O9RjL`6$ZlUQ4AJ04Fs&6dm<GDClvxZbf_suv<8hcR=
z`+!r<ZoO5_ly;L^DfGeKaO9b%f5RJBDgFoDL83BoXsq%0GJvN$<qZe!WKGeqz)~{S
zmFg<6bbtB#2~Q&}U6u0h-KM1jI;N_*(1cohAv2A^M5p5H3wY<coLe@|+y<qem(AN(
zxD`mRYrm5IDkNGKvnl7jfl9#_Lm^B9^Di*Gw%DL}n-oIhs<ty~ii8@3P0y_$1=E(L
z4v+iH{sufDAQ5d)J)Vye0WQp2h+_**%WcPTI-lOqs&+1?BTgbSkV--o%jMmK{|a|7
zz#XZ#SAC8XSp}Qz&s|=_7LPG6<(TMn;nDj=F|I6&a|G22x4ay{USfKzC&(Uqx7+R0
zG}Ti{6_1;dWm)>cVy#Q;sHZ+KHHhFTDl)z&stDCr*zy~YYf$%O0q>wO!C7~oJwu)@
zc!R-hDhSm_cX_*m9=qv~P7W&0cT2gcF-`0a;kE_pXywO^=6OEVS)YqR477^1>hDri
zs}YM>Q>X6u;=|6ewbp10dgozP@eDqtx2ed7YmuJfLC_qTsA%+MTF!SnpIB!w2Tqk+
zrGlqQk5mci)HjYnhQG13wsdO*x4wKTe%%i%%vJhN`(rPM&yOr4V_g}t8LTJp&gD|c
zv!}QxrOAzk>#zJA02Q?+G8n)V{t+XW#yogk7{!1ioxBy~{X~ES0-=fp757g8#CU+O
zV}e2<>l`zV$b`uLlE2SWD1d>0tnf1_Az|+$xCY^HmycL9&EPjr$hnqUy0->n0vtgU
zgpmFSFen7)vE|E8B2%QQ@GCCT1!!O#rXTPrlwph;*B`I<I#HzRiG;a?Gxj#*$b`Vi
zrIKJ5cu`2L762%diQn9dCOd%D8lTR}w<|A=F2ka(_c@cvH&%`AvE%)K=Nc|^<1-Ju
z_6K`<a7>-0_W<C#(C}{(jEB~qXnB~wO^T=)JlJ(TPBKZGZr2Ql`Tn3fcr%#$*}5Kw
zDp=mbmv;+^Fxof<I;Ip2HtDRVSRN0t(<3<#q3)8B^(>nf)SOQiVZh7T!Dw~J{>jwA
zHg-~V#;43&=`IV6EKm#X;yO}ubL?Z1mt0()2c@ppBBMWS2;w)KsDjTiN}$vc*|Zxf
zW!K5-kLj0MBn|3JriorHH)a2VG#VWxzENNAZBiv7hiaAtC_~HS<Uu`dKG5$DHdGt|
zAKtA^ayYB4*EJsoSB_kNbaIh{Px*e?axujtF`wP(-hHUy9HdZeCvh`eo(azm>AV}S
zZ4@DI^QgADJhV=}JcNYka_*9O998)&9ADr_oUE%E!o-KeyezqgZuXbK^q=jPZs>(t
zdnSs&vIztlkw*}^noj)Q-2)}!&nFvr5XcpFw%C=5IX4VnD0aay%k%%u%!j|t5O`)g
zfPJ^a^Bc8xdn#DuM=!d;AT|elchE2B+u$8OW1$NN_)1~Sx>%sd8yUeFk;1=skhOMT
zp4mMc6^utkS1W&!{g-f*19Au(l5rRQ)WGJVk#mC!TW_}Gdn}tZc%mlO&*}lIzJZgR
zb30kf^lL^GO~Xb+Dib=ss?!mB(XG6KEg0UoH0`|pTSm{?;a9tN<3n$i=E-|K6Gy=y
zLu{zm2>@=fi@`<G<S4i1YaLujc>$7!=L2B4^X%&5g3B5r6jsNgu-!~*D(Ow;B$27V
zD3o%t60EuhSZ|u6TM?3`(J`MZF{m=;pT}>~U^4ZuwD>gF*d*e7za7G~XIhH}hDDDX
z_IZuOjVJA27sI4n@^#=EUPQ{J-<_j*OYL9ZZ7?i;RkSf5r1?smE&XK9ZGQSurc!1$
zj9&L~8-F)(5zKs%Ea!6e<5CrdkFJ2hoNRjg2E}4=0OJZ`Gv_xiX<1X-%1gHxFZ|1t
zb4-N2k|$=Gp;lOBZK%9JGg8x~RCwPdQ95T2dkhJ|03--{Ize1kDA}DsIgD`JPy>Dq
zYwtB=!Scl0-ej!RE==t1qbl#yDg(p-Y5>{rnUz#KI<Yy4{Xsth-vupS3q+Nji;%ZH
zd`fBmZziM6WT@qSU(5l)I_69K=<vnfvq(>-`2R|9<bL9#lj)@6PD&Kxdf6G}@VU^A
z{fnvMlJ}<cT{s^+1rJ%U2Ee{!`qvy#1#9UgV%59=!Aq{^G_HF#7j8_A04)Ub*#=Ut
zV@)~m%(D1jvWvVh@iLt7p;jN1Aq=Q(PI1hOb0D*z#||x$giQ$83gQf$DH+M5CiKmG
zt=CEw`*Rg6-{dyyjk8ee!z!8h4l(Cyx~}0vN9`il%VtEH4}-)UYYZzaROe^wZ0m)r
zNenrQP{*1MH4hXzjg%WT#H&o1p~t_~8AS21T#};}-Gw2YyJ|%r&rXz?c=dK4x|^H>
z$a#)i^Cqfn(#N81NsP+@gC!MgRJ`nxXXas$>X{c_NM-SVC^nt&x+vF*xl=9NaF00_
ztC|LVyZXOBMSlL`vTyhe9o@zD(Hp@(7zc~KBtvTOlMxG-Ht$Z$oS=-%%<&Oqip#Hq
zT%Wd@j!0FyW`$R4t<fI$yH!b1@ghzOTiIG&w;f&ZhkGK2oq%-5vBSRvItp+{9aEXr
z<8QFjxg#ElWhC|Q%+Ds(*=3X6KQs_UU|!$*Kf~$EXl*Lno=)ht=|4q}e4A=c0!HSu
zJ*%zGTi_F9;Mk0YXs|60t<c!1O%Z=93{DB6L5s(pM?H;>N=%IfyZNMi#eKgd%9+H<
z{=7TLp=iyG-cp#W|7MaR=ly~#Ln%;59%p-9ljazcuEr^T_FrgMle@e%-(O<FwpGkB
zW7WU)m{T%ysBtDWLsZhW$v&hRCkv8o#Jxqj0GQLrz^*#jz5k$a`_(Zz5apIbBQ_}4
zFvJ`o3ot@@Xc~NRUGS6Bh(oQ+Cc9#Wam><gzktcGG6Tlha<X?4Uoj*3@q@EdJoLUT
zMQ2`1UE$7idLID&S1kYS`o?UFse%qmPk%G2HCb1^!ix%7VrzQSl$F^$aZ7*P!r5Al
z2MA)``Va=i6?fkxY}j{xDKc30o%0bW7+)XA0@y|>IlhPx_};uUZd&Dl(!7Kd3q_gj
zXNmytJ%+1)5{ufnrj#l3{(`3aKZ8Hp#sk1}M)9MiqtjM)gQB5Enq%68yyZjNy|+Z0
zN}J_ZK3t<M7b}66GnQQuy2`}$Xy4|7;r+}5!QtPR|7;WH(0y#c)yFEHk8pf94;<1l
zF8Eh#xOj}e$NsGEIrn_ViR|Ioy6m{~diJ`<FzsB?F%72bVEucU^HGH7XTEj?rAMSD
z!V$$kA@q)1|C$xH{rV45f}YQ<$0ymgG-3zh5-Jqz3qqdP7*~Ea4`xF|E%t%^VLB_9
zw{uR^yuk~{HjkhfS|eO~b5GW57}0erq6G&$PI>=F^)oc3Twv@F+Fz=+m#)un+;(_3
z&(vdz685=jcT5&w<od648OHY({(rSy`9G9x7e^yo55tg%#@1shgcd>!#=b=MWl)SP
z;jtTAMq*?s+l+0<Ruhu!*~*qNM3GV1X^cpUtV!=pc%MJuedlvN_Yc=xbD!&+>zs3)
z`<(A*ZjC+}*PP_3yPYFG7}xDiC~0{hr@Ol0M(%chsVk(mkKB_+fBep;U<#UACE6EE
z^Zu1T(^rt59GF2hlitmhfo(HnKv&1Cc8AX1KkjE8m+3=0^dhBnG|R_RO;jnS<X-e9
z>YZtfg_t<ZR9<L91fGlI>Bf`%)uTU;Tnp6u9Ug|nTZgx{5p3V9oXCTGNp%<vY*{jU
z73T7;<?*vk)a9jy7;3QKBtAR!)0QdzRzvG+4h!THt)urkHP<rgR5@7N-ST_84&&KF
zaB1J|&bSk7@q8_2l+L!`-B9-#LejIaEQrUP{$1ofRQBe+*l{_}{;!!D72)cch9kk+
zF(J@?7MXLOveE_#jMTz_NujXq4;KBO8l9ImOXWV@?LO=4t9SiY>_=YHcTdOs+Fm3k
z_cb|fO^)|lX=#dL>@BX8=CzLa+x6rjM=Sg0*^JU#`zDnPXYjb^p9N;xZA5qW*EgC@
zbE+;#M)fO+A0@&03Y0t66aqZ=bSEZtg!qvYqyOS3DHHgoBexHszExXvmFKBfHN29W
z03mO}3d$Ga`e@?t@9T15qZZ;9JPlAfiT28CHxk>3&wgKIHAZ*ZFB4Y39m;AIYry%h
zFy>5WeMY*Qq_Q#|^<nq22!`hSreF3-*v*%t;DQNFm5cCbc1e}VsdA7tw|={W3Rg{2
zf`nS$ds5k|!r<G6#VwO5$P`l1offoA^G^vt%6ma68>QDBeeOwB1RPK7_0Jc*u(Wbb
zhiEfa(CjlbHWxbK5bgV>jG7@q$vSscOND+sPd$U5Mhr-jK-GC6oN7#u;c#;Qd`2WI
zs}%m)?3sr-#=mq_$fA3k{W>ZHs9R`HWQ#edJ@Re?T?&#nxh?)RVC{1$*T>+3XKUd{
z7)phoE4w|$47RSGBpz!;+v!EuW;arvC^v+UJSu2ppCg_f2Ym=Y+Gx&7e|;6Z;&j_^
zDg!On?d4A{8L1fYDy4XRoMd33BrLync38XK9aaB~t4vMGU_Rc7mWCRQO!LU+>I<31
z`RPz@aA3OpF47O74r5oreZ8%h#o!D8(YP@6{HN+rx{g*&y}Vk?3@izOc3u2tzrAZk
z*X)KgQXONz(atz9BIUvAC0FJ2?rQRuL7^cOK8kYDc~{tH{&OxFy)lE&k-j(lA7ca9
zo~2P9df=Pfp3HrCo)+g@U_h+NyHT9DkjZaa?$PaJwT;X)^la9!KJQ-GJKGGueZvR$
zi(dlqlS2T<Q!+4OYj2RuHL7uF{^kYMZ6kwg#j{r|+VQ7NG0V+5fG!_YfVGje8WfKa
z;n>rNxmOxLMOpA#za}{Rz8OV-`4|SzEIBs!=5LJ#s&xP9+B!H=pSwk&>gJ#VVd1h~
zGCyVD1A|*yiQ<v^V*}OAQWJ%}_(AO_<}Gvc)LQ>ePpjv_1&E=tld&w`=)<f(a!jn}
zk0s&qkV%SuIcJr|fj5{H%g23NKGN8GxH@>yBo1%Y#BeWne)!s^1{+E>s7%Fv47wBV
zvo&50V;9X!*!VpxISpO1g)J4x6~+<5j6+(r2HBgG^RBkzER6G4$@5J0u_D-H!G=}R
zDl(+{r-aSCHLiLkuTr6HZUC-fP!X`uLA+ve4N_lHb7~rzw(`tToE-Da+)(^o^6aej
z=@XDb@7wDPxApTwI9es8F23r>Ub1dt4S8yI2`Y&&+xYzK>&`A4=`+|FoA!w4uAGM`
zZSYv9D{T<$GdqRal$xB1to$<4(x57!;Vthz`i;;oH@?lOM?S_rrA{Y?GG^3aX+ctz
z;OiYWy9u#xG#vGFB^Qq(u{BDg8#lUrnu=qE%VF5u-#LakxRm1b?<_^10*l#;vSyl+
zfrM<AvV|kcw6=VEzb8#zRa86VWqxrm^kF@!!h9yB0jKlC3br@zKKwB!v22Qoff+JP
zmJ307dPyoMR@L{kt}dt)YRX(lXvrueuV8T>12K#{A#f+*qy9ayIB@!xTYlgd7xS9J
z66jl;V2GF+twb?_G*S2PlKzMO5cC)Iih8S@MqKj<8gKOmE&n3EjISn)mNS6m3Z81$
z$)z<QNvB_*JXppZF8Csk8jpPEtSm8hgLm+aP&#uI-}SHRiLjVad<$=!#-40&R|uR0
z9HWku^s9|@WP|Z0dpDPFB$9RY`MEl4E%JmyktOx&*}DZjx`L<J#DIXg6Epk8>ADkA
zjmzEr@EfI9npx17O&+IhCz$qgEhi4z>740t+mnutC6%3ip1+{>2!oaE!B~_S27KHq
zck$dqAu=xq$AOxo80cB^je^LHTDxp^IEAtpfvIsZOgp}_OKKQ8Mq`)~YE1M%*k%w6
zyVTKk`%gRou6gi?NEmmH>|)a1kF<sC8IJU%pFMG6PXc-_m;~nK1Z8Yp^Uh^w8fd0g
zfqPYci3xX&cKAeFIID=!wVlHIF2OkI5%tQbq!W6kS39!xRZV3^&}Mtz5tl&Hr@rVA
zgp?H(Z7S{w;!PC9t<4O$5oRl0&&Ku^WP||;MH^<z3-j@56>0`uaJ76<W?Isk^1v8u
zHi3`D|NVy(rdXE_mlq$eA6tgh<AThwg07kw0(aVXf*n6l1p!P<x{drFL!q>Ga45Dn
zz_IKBnP<9!8_^N*%H)rZw1wWWINgAzY_42K%JH=unbm@2*o}#|3edmzmvn^Tks+aY
zNrV(K%#E<)x7|r~c8OVsfg2&b@g6;JpiVnr<bOYfD9wPq@rmu5<+hoF!>gqmy=V4K
zQX9g|t;{^<0*#O{HcfW8hfQ&!nm)B_f{$?{7)7ohJ}{1Ct_XR|%Ptb>KCfMnYDGmw
zp|#}&<E;B}0fg*q36GCeNi(mr^g=@$8?p%|+3vjl`Btp?Q${nF4n*q^`A44y51GI)
zEh*Ik-I=A?f_r2h3tM4MPR?F3#O0K1_dTAe%bp^0B~P1^4>7UJKf3^wEG=-<+M-$k
zR*{0%|N2}8BqGRlytxT}?843WMhbynCA1O+k^sn5*HlLws^cz?&#3=U*T5AO$-wcj
zS^!YjcJ{82!#9?y?f2(JV8iWit6T>@RS((uuH9Zb1nK>bQ&;8I#tt8>6{Sn3=JacG
z#b>}kuFLV><-f(R<oK!4=AXX6#X`i%s|&-_=AU0v3<(Nd9lZ8m5Q$ddLP4_U&QWLI
z7L+9#8yiR7D*_5jbrqTCT}1!@O+YSyqZBWl&~u7p@sEHh27P+~(d0&G-q$-&u+PZ}
z9&yXXp{Kd}xys1HfANb|yAR<W<pk@7FQw$l%Q&jJyv^5;y|o=`)e!ImBKyR;Iyray
z$0I4|>EAP1UgU=cz*|-;P=+oG<1g$TBwIIX$AU}FyS#xXLRF;na1u#(*m%i!`|wj2
z+$r3w`95Jk8jl^gwGe&f_JiYWI6}zR=UT541?Lfcfa1h~uD|a#{F`K^6540t^Aga<
zCmr`{6dtnmP3XzFY%|l7A?iO*NsEdC;R9QvSUg$cxVb?6O>1NGlm!mPq@;=6>g0~2
zJWyjv?;rx`#j+EwuC9?Bptm+&P1JTHpe~JS$8z=qy??o@e}$`+SUkl6ER1VBN9Uq?
z0Tc^$G;rJ>S9p#q`6V44<Ae@E)iiizt}CAJoS2f5ZTa@Ewebcef`WhQa^Iq;g&n%6
z@&w@Ovjwz{gD@5!VRcvf#~7F9UE#dABP`~*0FHBfQ7%e&bN0HrnjBv#0x;>k?%zP~
zS<la}YHN$8vZiQs>w5>Ul$Y}ir+B=A-|R%qDXhTZZQ*^_CAu&;3r9*<IL!n2Sx6|m
zpn{k?r8LQ7xaJbgP2Qm(>n}<k(0_RE%0P1yON}*l25Z9DC?_pb%DooHnwBPGpt`}q
z3Sro-PjzZLnbi&%onjVH4t;OWaa{E%FRwUOGHP=DpX}AYk4$su+j&z3?KrMQae4wB
z;?l<L&G~Rn4K`yTRnMJL{Vtip=>5X1BF8!UW1yizDh*#`hZpKwq`5q3y#$8N`BpJ(
zA<#hJW$IeuIDWCmzs(rT$0>E7Byw7Wf6RwQM=T^t_&WgD%PC>n3Q-97GE4cry#3RY
zMcl<QaBk@7;#MTk43hfwbFHs(46F(p?+5DDBW`P7N2x`;_Q~c?Y@Sa8c8&d)T?;#m
zT4B`^qBtG2)5mX;Q%}jdQzU9H`+U-F5xCJ1u;8<;{Qg5TGDL1Xqx-=vX*uh1ClTiS
zGqSS%xs0PIZ5bJv{%RYGTMsl@MN~w}{>TbkQ<><o+?KZ~Pi(}YVLy`MjwQGZ9;06c
za7p!!=>uN?mk1ct(bwl*2MdR7b#+Qnj4GX9+alc8xvOt}=-*&Ohuskhx)1jIUfHLd
zVqNWa$sHn4o)oY+CVBS7Rz;QqXdpVuwWznwr$J&%eSeF<x}ZcSRCg~jgb;*{FQsZa
z^7#G!xeC1>y)v&uNQdFaOO??Crso)?pKA+viifo#rV=%O^b#)YOQ}gT2ULo=6$^V;
z{sTVSLr@$tSPwRL9;NrL0$?(73!UrVr;$h7h3i*8y6<4OB3%ZLU%Yu=(x#@)(ID&M
z3hyE4NoEmi?3VVwOojq#Exz;o!QFKABLglkBM-fGgfv}me;+}A$QG=Dg;j3ahHp@p
zdKDMzlCEJj6F@Duh2j@WZgGM*OO<i=p_GSA(9kyl&nuFXlSirqO>zh#=j;ie+uv-^
za<8x@<#Ji<pK=J6)R;S@H~H>IlvOQ*AzQH%Fpq77voY{LaS8|yWw5UQ+&k}-+I*#T
zs0IR2=b^|u1g{mq&C1?Jk+yI`Bx$w3(36hsQkC%jk^Ms$ENYY!NffFoKbq$*X~~<-
zBIw1}vN{=L_tU$lezM#%7U`@R`EN_2Q{_t6r?cX<n()3U$`Qq`T(dA5<A0{JVH`zK
zF~5i#^Z6$`k_7YC+21cCDUg0TH|@IJTSpqxaEv2*fg_+aljqgJNkYdGb$TZe3R`OQ
z+7HF_D)fM<vHsW8{*O}*JO3z{U_FS#Z<*IcG^YjPP9Uq6&s_0j%_lEQSVHy|MpOWq
zvRSpeBBILXVk3#gDyo#+y`+nrL075@R?pC?$VSb+J7uP2W(zR}r!C{L_?-uDfH1xo
zc(vO#ANgsbfKv8jYvSD!;V>a?1g*6;dF@a9fiqCG>5xw1hB>K+SLStZ>U&`B5R2C`
zfg4TpV)1)P8pby^VuQWK+H?>SGitFSPTJgyKyVFC5}%X#pjJ9Pl+jotEH((auThMy
ydPF3#Uy0Q`YClVSkk4!cHseOy;SWao!Rxm?>;!4Hg#%1<z(+^J5K*S)5cwa;KPAKf

diff --git a/docs/en_US/search_objects.rst b/docs/en_US/search_objects.rst
new file mode 100644
index 000000000..885e1d756
--- /dev/null
+++ b/docs/en_US/search_objects.rst
@@ -0,0 +1,34 @@
+.. _search_objects:
+
+***********************
+`Search objects`:index:
+***********************
+
+.. image:: images/search_objects.png
+    :alt: Search objects dialog
+    :align: center
+
+With this dialog, you can search for almost any kind of objects in a
+database.
+
+You can access it by right clicking a database or any of its child nodes
+and select "Search objects". You can also access it by hitting the
+shortcut (default ALT+SHIFT+S).
+
+The minimum pattern length are 3 characters. The search performed is
+non-casesensitive and will find all objets whose name contains the pattern.
+You can only search for object names.
+
+The result is presented in the grid with object name, object type and
+the object tree path in the :ref:`browser <tree_control>`. You can double
+click on a result row to select the object in the
+:ref:`browser <tree_control>`. If the object is greyed out, this means that you
+have not enabled those object types in the :ref:`preferences <preferences>`,
+so you can't double click on it.
+
+You can filter based on a particular object type by selecting one from the
+object type dropdown. If the search button is hit when one of the object type
+is selected then only those types will be fetch from the database.
+An object type will not be visible in the dropdown if the database server
+does not support it or if it is not enabled from the 
+:ref:`preferences <preferences>`.
\ No newline at end of file
diff --git a/docs/en_US/toolbar.rst b/docs/en_US/toolbar.rst
index 12dc8621a..f4c685f24 100644
--- a/docs/en_US/toolbar.rst
+++ b/docs/en_US/toolbar.rst
@@ -18,4 +18,6 @@ the selected browser node.
 * Use the :ref:`View Data <editgrid>` button to view/edit the data stored in a
   selected table.
 * Use the :ref:`Filtered Rows <viewdata_filter>` button to access the Data Filter popup
-  to apply a filter to a set of data for viewing/editing.
\ No newline at end of file
+  to apply a filter to a set of data for viewing/editing.
+* Use the :ref:`Search objects <search_objects>` button to access the search objects
+  dialog. It helps you search any database object.
\ No newline at end of file
diff --git a/web/pgadmin/browser/register_browser_preferences.py b/web/pgadmin/browser/register_browser_preferences.py
index 09f472795..5f57f9fa1 100644
--- a/web/pgadmin/browser/register_browser_preferences.py
+++ b/web/pgadmin/browser/register_browser_preferences.py
@@ -249,6 +249,21 @@ def register_browser_preferences(self):
         fields=fields
     )
 
+    self.preference.register(
+        'keyboard_shortcuts',
+        'sub_menu_search_objects',
+        gettext('Search objects'),
+        'keyboardshortcut',
+        {
+            'alt': True,
+            'shift': True,
+            'control': False,
+            'key': {'key_code': 83, 'char': 's'}
+        },
+        category_label=gettext('Keyboard shortcuts'),
+        fields=fields
+    )
+
     self.preference.register(
         'keyboard_shortcuts',
         'sub_menu_create',
diff --git a/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.js b/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.js
index 7724ef4c4..b2127c4b0 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.js
@@ -24,7 +24,7 @@ define('pgadmin.node.extension', [
     pgAdmin.Browser.Nodes['coll-extension'] =
       pgAdmin.Browser.Collection.extend({
         node: 'extension',
-        label: gettext('Extension'),
+        label: gettext('Extensions'),
         type: 'coll-extension',
         columns: ['name', 'owner', 'comment'],
       });
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/packages/ppas/12_plus/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/packages/ppas/12_plus/nodes.sql
new file mode 100644
index 000000000..8b11b594a
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/packages/ppas/12_plus/nodes.sql
@@ -0,0 +1,11 @@
+SELECT
+    nsp.oid, nspname AS name
+FROM
+    pg_namespace nsp
+WHERE nspparent = {{scid}}::oid
+{% if pkgid %}
+AND nsp.oid = {{pkgid}}::oid
+{% endif %}
+AND nspobjecttype = 0
+AND nspcompoundtrigger = false
+ORDER BY nspname;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py
index 2984a58e4..4b0a0918c 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py
@@ -54,8 +54,8 @@ class IndexConstraintModule(ConstraintTypeModule):
         initialized.
     """
 
-    NODE_TYPE = 'Index constraint'
-    COLLECTION_LABEL = _('index_constraint')
+    NODE_TYPE = 'index_constraint'
+    COLLECTION_LABEL = _('Index constraint')
 
     def __init__(self, *args, **kwargs):
         """
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py
index e455b8adf..9ffbe742c 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py
@@ -29,8 +29,11 @@ from pgadmin.tools.schema_diff.compare import SchemaDiffObjectCompare
 
 
 def backend_supported(module, manager, **kwargs):
-    if 'tid' in kwargs and CollectionNodeModule.BackendSupported(
-            module, manager, **kwargs):
+
+    if CollectionNodeModule.BackendSupported(module, manager, **kwargs):
+        if 'tid' not in kwargs:
+            return True
+
         conn = manager.connection(did=kwargs['did'])
 
         template_path = 'partitions/sql/{0}/#{0}#{1}#'.format(
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/tests/test_backend_supported.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/tests/test_backend_supported.py
index bf92e5f01..1de4de825 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/tests/test_backend_supported.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/tests/test_backend_supported.py
@@ -21,19 +21,19 @@ else:
 
 class TestBackendSupport(BaseTestGenerator):
     scenarios = [
-        ('when tid is not present in arguments, should return None and no '
-         'query should be done',
+        ('when tid is not present in arguments, but server version'
+         'is supported then return True',
          dict(
              manager=dict(
-                 server_type="",
-                 version=""
+                 server_type="pg",
+                 version="100000"
              ),
              input_arguments=dict(did=432),
 
              collection_node_active=True,
              connection_execution_return_value=[],
 
-             expected_return_value=None,
+             expected_return_value=True,
              expect_error_response=False,
              expected_number_calls_on_render_template=0
          )),
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/pg/macros/catalogs.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/pg/macros/catalogs.sql
index 5f9bf9532..f1645d070 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/pg/macros/catalogs.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/pg/macros/catalogs.sql
@@ -9,6 +9,9 @@
         (SELECT 1 FROM pg_class WHERE relname = 'tables' AND
             relnamespace = {{ tbl }}.oid LIMIT 1))
 {%- endmacro %}
+{% macro IS_CATALOG_SCHEMA(schema_col_name) -%}
+    {{ schema_col_name }} IN ('pg_catalog', 'pgagent', 'information_schema')
+{%- endmacro %}
 {% macro LABELS(tbl, _) -%}
     CASE {{ tbl }}.nspname
     WHEN 'pg_catalog' THEN '{{ _( 'PostgreSQL Catalog' ) }} (pg_catalog)'
@@ -17,9 +20,24 @@
     ELSE {{ tbl }}.nspname
     END AS name
 {%- endmacro %}
+{% macro LABELS_SCHEMACOL(schema_col_name, _) -%}
+    CASE {{ schema_col_name }}
+    WHEN 'pg_catalog' THEN '{{ _( 'PostgreSQL Catalog' ) }} (pg_catalog)'
+    WHEN 'pgagent' THEN '{{ _( 'pgAgent Job Scheduler' ) }} (pgagent)'
+    WHEN 'information_schema' THEN '{{ _( 'ANSI' ) }} (information_schema)'
+    ELSE {{ schema_col_name }}
+    END
+{%- endmacro %}
 {% macro DB_SUPPORT(tbl) -%}
     CASE
     WHEN {{ tbl }}.nspname = ANY('{information_schema}')
         THEN false
     ELSE true END
 {%- endmacro %}
+{% macro DB_SUPPORT_SCHEMACOL(schema_col_name) -%}
+    CASE
+    WHEN {{ schema_col_name }} = ANY('{information_schema}')
+        THEN false
+    ELSE true END
+{%- endmacro %}
+
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/ppas/macros/catalogs.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/ppas/macros/catalogs.sql
index 37fb594ed..b9fc276ef 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/ppas/macros/catalogs.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/ppas/macros/catalogs.sql
@@ -13,6 +13,9 @@
        (SELECT 1 FROM pg_proc
         WHERE pronamespace = {{ tbl }}.oid and proname = 'run_job' LIMIT 1))
 {%- endmacro %}
+{% macro IS_CATALOG_SCHEMA(schema_col_name) -%}
+    {{ schema_col_name }} IN ('pg_catalog', 'pgagent', 'information_schema', 'dbo', 'sys', 'dbms_job_procedure')
+{%- endmacro %}
 {% macro LABELS(tbl, _) -%}
     CASE {{ tbl }}.nspname
     WHEN 'pg_catalog' THEN '{{ _( 'PostgreSQL Catalog' ) }} (pg_catalog)'
@@ -23,9 +26,25 @@
     ELSE {{ tbl }}.nspname
     END AS name
 {%- endmacro %}
-{% macro DB_SUPPORT(tbl) -%}
+{% macro LABELS_SCHEMACOL(schema_col_name, _) -%}
+    CASE {{ schema_col_name }}
+    WHEN 'pg_catalog' THEN '{{ _( 'PostgreSQL Catalog' ) }} (pg_catalog)'
+    WHEN 'pgagent' THEN '{{ _( 'pgAgent Job Scheduler' ) }} (pgagent)'
+    WHEN 'information_schema' THEN '{{ _( 'ANSI' ) }} (information_schema)'
+    WHEN 'dbo' THEN 'Redmond (dbo)'
+    WHEN 'sys' THEN 'Redwood (sys)'
+    ELSE {{ schema_col_name }}
+    END
+{%- endmacro %}
+{% macro DB_SUPPORT(tbl, schema_col_name) -%}
     CASE
     WHEN {{ tbl }}.nspname = ANY('{information_schema,sys,dbo}')
         THEN false
     ELSE true END
 {%- endmacro %}
+{% macro DB_SUPPORT_SCHEMACOL(schema_col_name) -%}
+    CASE
+    WHEN {{ schema_col_name }} = ANY('{information_schema,sys,dbo}')
+        THEN false
+    ELSE true END
+{%- endmacro %}
diff --git a/web/pgadmin/browser/server_groups/servers/roles/static/js/role.js b/web/pgadmin/browser/server_groups/servers/roles/static/js/role.js
index 47500caf7..c7bb247ec 100644
--- a/web/pgadmin/browser/server_groups/servers/roles/static/js/role.js
+++ b/web/pgadmin/browser/server_groups/servers/roles/static/js/role.js
@@ -18,6 +18,7 @@ define('pgadmin.node.role', [
     pgAdmin.Browser.Nodes['coll-role'] =
       pgAdmin.Browser.Collection.extend({
         node: 'role',
+        label: gettext('Login/Group Roles'),
         type: 'coll-role',
         columns: [
           'rolname', 'rolvaliduntil', 'rolconnlimit', 'rolcanlogin',
diff --git a/web/pgadmin/browser/static/js/collection.js b/web/pgadmin/browser/static/js/collection.js
index 2ec4fe1b5..a3c9ad96e 100644
--- a/web/pgadmin/browser/static/js/collection.js
+++ b/web/pgadmin/browser/static/js/collection.js
@@ -51,14 +51,23 @@ define([
         }]);
 
         // show query tool only in context menu of supported nodes.
-        if (pgAdmin.DataGrid && pgAdmin.unsupported_nodes) {
-          if (_.indexOf(pgAdmin.unsupported_nodes, this.type) == -1) {
+
+        if (pgAdmin.unsupported_nodes && _.indexOf(pgAdmin.unsupported_nodes, this.type) == -1) {
+          if ((this.type == 'database' && this.allowConn) || this.type != 'database') {
             pgAdmin.Browser.add_menus([{
-              name: 'show_query_tool', node: this.type, module: this,
+              name: 'show_query_tool', node: this.type, module: pgAdmin.DataGrid,
               applies: ['context'], callback: 'show_query_tool',
               priority: 998, label: gettext('Query Tool...'),
               icon: 'pg-font-icon icon-query-tool',
             }]);
+
+            // show search objects same as query tool
+            pgAdmin.Browser.add_menus([{
+              name: 'search_objects', node: this.type, module: pgAdmin.SearchObjects,
+              applies: ['context'], callback: 'show_search_objects',
+              priority: 997, label: gettext('Search Objects...'),
+              icon: 'fa fa-search',
+            }]);
           }
         }
       },
diff --git a/web/pgadmin/browser/static/js/keyboard.js b/web/pgadmin/browser/static/js/keyboard.js
index 5cd00e6a3..8705e14be 100644
--- a/web/pgadmin/browser/static/js/keyboard.js
+++ b/web/pgadmin/browser/static/js/keyboard.js
@@ -34,6 +34,7 @@ _.extend(pgBrowser.keyboardNavigation, {
         'tabbed_panel_forward': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'tabbed_panel_forward').value),
         'sub_menu_query_tool': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_query_tool').value),
         'sub_menu_view_data': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_view_data').value),
+        'sub_menu_search_objects': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_search_objects').value),
         'sub_menu_properties': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_properties').value),
         'sub_menu_create': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_create').value),
         'sub_menu_delete': commonUtils.parseShortcutValue(pgBrowser.get_preference('browser', 'sub_menu_delete').value),
@@ -55,6 +56,7 @@ _.extend(pgBrowser.keyboardNavigation, {
         'bindLeftTree': {'shortcuts': this.keyboardShortcut.left_tree_shortcut}, // Main menu,
         'bindSubMenuQueryTool': {'shortcuts': this.keyboardShortcut.sub_menu_query_tool}, // Sub menu - Open Query Tool,
         'bindSubMenuViewData': {'shortcuts': this.keyboardShortcut.sub_menu_view_data}, // Sub menu - Open View Data,
+        'bindSubMenuSearchObjects': {'shortcuts': this.keyboardShortcut.sub_menu_search_objects}, // Sub menu - Open search objects,
         'bindSubMenuProperties': {'shortcuts': this.keyboardShortcut.sub_menu_properties}, // Sub menu - Edit Properties,
         'bindSubMenuCreate': {'shortcuts': this.keyboardShortcut.sub_menu_create}, // Sub menu - Create Object,
         'bindSubMenuDelete': {'shortcuts': this.keyboardShortcut.sub_menu_delete}, // Sub menu - Delete object,
@@ -261,6 +263,15 @@ _.extend(pgBrowser.keyboardNavigation, {
     // Call data grid method to render view data
     pgAdmin.DataGrid.show_data_grid({'mnuid': 1}, tree.i);
   },
+  bindSubMenuSearchObjects: function() {
+    const tree = this.getTreeDetails();
+
+    if (!tree.d)
+      return;
+
+    // Call data grid method to render view data
+    pgAdmin.SearchObjects.show_search_objects('', tree.i);
+  },
   bindSubMenuProperties: function() {
     const tree = this.getTreeDetails();
 
diff --git a/web/pgadmin/browser/static/js/node.js b/web/pgadmin/browser/static/js/node.js
index d14dcc5bb..df4657b6b 100644
--- a/web/pgadmin/browser/static/js/node.js
+++ b/web/pgadmin/browser/static/js/node.js
@@ -177,6 +177,14 @@ define('pgadmin.browser.node', [
 
       // Show query tool only in context menu of supported nodes.
       if (_.indexOf(pgAdmin.unsupported_nodes, self.type) == -1) {
+        let enable = function(itemData) {
+          if (itemData._type == 'database' && itemData.allowConn)
+            return true;
+          else if (itemData._type != 'database')
+            return true;
+          else
+            return false;
+        };
         pgAdmin.Browser.add_menus([{
           name: 'show_query_tool',
           node: self.type,
@@ -186,14 +194,15 @@ define('pgadmin.browser.node', [
           priority: 998,
           label: gettext('Query Tool...'),
           icon: 'pg-font-icon icon-query-tool',
-          enable: function(itemData) {
-            if (itemData._type == 'database' && itemData.allowConn)
-              return true;
-            else if (itemData._type != 'database')
-              return true;
-            else
-              return false;
-          },
+          enable: enable,
+        }]);
+
+        // show search objects same as query tool
+        pgAdmin.Browser.add_menus([{
+          name: 'search_objects', node: self.type, module: pgAdmin.SearchObjects,
+          applies: ['context'], callback: 'show_search_objects',
+          priority: 997, label: gettext('Search Objects...'),
+          icon: 'fa fa-search', enable: enable,
         }]);
       }
 
diff --git a/web/pgadmin/browser/static/js/toolbar.js b/web/pgadmin/browser/static/js/toolbar.js
index 955fe6f32..6eb1f39f4 100644
--- a/web/pgadmin/browser/static/js/toolbar.js
+++ b/web/pgadmin/browser/static/js/toolbar.js
@@ -46,6 +46,16 @@ let _defaultToolBarButtons = [
     parentClass: 'pg-toolbar-btn btn-secondary',
     enabled: false,
   },
+  {
+    label: gettext('Search objects'),
+    ariaLabel: gettext('Search objects'),
+    btnClass: 'fa fa-search',
+    text: '',
+    toggled: false,
+    toggleClass: '',
+    parentClass: 'pg-toolbar-btn btn-secondary',
+    enabled: false,
+  },
 ];
 
 // Place holder for non default tool bar buttons.
@@ -92,6 +102,8 @@ export function initializeToolbar(panel, wcDocker) {
       pgAdmin.DataGrid.show_data_grid({mnuid: 3}, pgAdmin.Browser.tree.selected());
     else if ('name' in data && data.name === gettext('Filtered Rows'))
       pgAdmin.DataGrid.show_filtered_row({mnuid: 4}, pgAdmin.Browser.tree.selected());
+    else if ('name' in data && data.name === gettext('Search objects'))
+      pgAdmin.SearchObjects.show_search_objects('', pgAdmin.Browser.tree.selected());
   });
 }
 
diff --git a/web/pgadmin/browser/templates/browser/index.html b/web/pgadmin/browser/templates/browser/index.html
index 682c23d65..67a10ba89 100644
--- a/web/pgadmin/browser/templates/browser/index.html
+++ b/web/pgadmin/browser/templates/browser/index.html
@@ -11,7 +11,7 @@
 {% block init_script %}
 try {
 require(
-['sources/generated/app.bundle', 'sources/generated/codemirror', 'sources/generated/browser_nodes'],
+['sources/generated/app.bundle', 'sources/generated/codemirror', 'sources/generated/browser_nodes', 'sources/generated/slickgrid'],
 function() {
 },
 function() {
diff --git a/web/pgadmin/static/bundle/slickgrid.js b/web/pgadmin/static/bundle/slickgrid.js
index 4b0ab410b..96ad3c330 100644
--- a/web/pgadmin/static/bundle/slickgrid.js
+++ b/web/pgadmin/static/bundle/slickgrid.js
@@ -8,7 +8,6 @@
 //////////////////////////////////////////////////////////////
 
 import 'slickgrid/lib/jquery.event.drag-2.3.0';
-import 'slickgrid/lib/jquery-ui-1.11.3';
 import 'slickgrid/slick.core';
 import 'slickgrid/slick.grid';
 import 'slickgrid/slick.dataview';
@@ -21,5 +20,6 @@ import 'slickgrid/plugins/slick.cellrangeselector';
 import 'slickgrid/plugins/slick.checkboxselectcolumn';
 import 'slickgrid/plugins/slick.rowselectionmodel';
 import 'sources/slickgrid/custom_header_buttons';
+import 'sources/slickgrid/plugins/slick.autocolumnsize';
 
 export default window.Slick;
diff --git a/web/pgadmin/static/css/style.css b/web/pgadmin/static/css/style.css
index 05709ef58..7ab5ced97 100644
--- a/web/pgadmin/static/css/style.css
+++ b/web/pgadmin/static/css/style.css
@@ -5,18 +5,17 @@
 @import '~tempusdominus-bootstrap-4/build/css/tempusdominus-bootstrap-4.css';
 @import '~bootstrap4-toggle/css/bootstrap4-toggle.css';
 @import '~backgrid-filter/backgrid-filter.css';
-@import '~slickgrid/css/select2.css';
 @import '~jquery-contextmenu/dist/jquery.contextMenu.css';
 @import '~webcabin-docker/Build/wcDocker.css';
 @import '~acitree/css/aciTree.css';
 @import '~leaflet/dist/leaflet.css';
+@import '../../../node_modules/select2/dist/css/select2.css';
 
 @import '~codemirror/lib/codemirror.css';
 @import '~codemirror/addon/dialog/dialog.css';
 @import '~codemirror/addon/scroll/simplescrollbars.css';
 
 @import '~slickgrid/slick.grid.css';
-@import '~slickgrid/slick-default-theme.css';
 @import '~slickgrid/css/smoothness/jquery-ui-1.11.3.custom.css';
 
 @import '../vendor/backgrid/backgrid.css';
diff --git a/web/pgadmin/static/js/alertify.pgadmin.defaults.js b/web/pgadmin/static/js/alertify.pgadmin.defaults.js
index 84dfc12fe..daa60f696 100644
--- a/web/pgadmin/static/js/alertify.pgadmin.defaults.js
+++ b/web/pgadmin/static/js/alertify.pgadmin.defaults.js
@@ -271,7 +271,8 @@ define([
           let container = $(self.elements.footer);
           commonUtils.findAndSetFocus(container.find('button:not([disabled]):last'));
         }
-      });    });
+      });
+    });
     this.set('onresize', alertifyDialogStartResizing.bind(this, true));
     this.set('onresized', alertifyDialogResized.bind(this, true));
     this.set('onmaximized', alertifyDialogResized);
diff --git a/web/pgadmin/static/js/alertify/dialog.js b/web/pgadmin/static/js/alertify/dialog.js
index 6f4933720..8e5bdb738 100644
--- a/web/pgadmin/static/js/alertify/dialog.js
+++ b/web/pgadmin/static/js/alertify/dialog.js
@@ -80,6 +80,39 @@ export class Dialog {
     return serverInformation;
   }
 
+  retrieveAncestorOfTypeDatabase(item) {
+    let databaseInfo = null;
+    let aciTreeItem = item || this.pgBrowser.treeMenu.selected();
+    let treeNode = this.pgBrowser.treeMenu.findNodeByDomElement(aciTreeItem);
+
+    if (treeNode) {
+      if(treeNode.getData()._type === 'database') {
+        databaseInfo = treeNode.getData();
+      } else {
+        let nodeData = null;
+        treeNode.ancestorNode(
+          (node) => {
+            nodeData = node.getData();
+            if(nodeData._type === 'database') {
+              databaseInfo = nodeData;
+              return true;
+            }
+            return false;
+          }
+        );
+      }
+    }
+
+    if (databaseInfo === null) {
+      this.alertify.alert(
+        gettext(this.errorAlertTitle),
+        gettext('Please select a database or its child node from the browser.')
+      );
+    }
+
+    return databaseInfo;
+  }
+
   hasBinariesConfiguration(serverInformation) {
     const module = 'paths';
     let preference_name = 'pg_bin_dir';
diff --git a/web/pgadmin/static/js/alertify/dialog_factory.js b/web/pgadmin/static/js/alertify/dialog_factory.js
index cb0ae1552..760fde679 100644
--- a/web/pgadmin/static/js/alertify/dialog_factory.js
+++ b/web/pgadmin/static/js/alertify/dialog_factory.js
@@ -9,6 +9,7 @@
 
 import * as BackupDialog from '../../../tools/backup/static/js/backup_dialog_wrapper';
 import {RestoreDialogWrapper} from '../../../tools/restore/static/js/restore_dialog_wrapper';
+import SearchObjectsDialogWrapper from '../../../tools/search_objects/static/js/search_objects_dialog_wrapper';
 
 export class DialogFactory {
   constructor(pgBrowser, $,
@@ -25,6 +26,8 @@ export class DialogFactory {
   create(dialogTitle, typeOfDialog) {
     if (typeOfDialog === 'restore') {
       return this.createRestoreDialog(dialogTitle, typeOfDialog);
+    } else if (typeOfDialog === 'search_objects') {
+      return this.createSearchObjectsDialog(dialogTitle, typeOfDialog);
     } else {
       return this.createBackupDialog(dialogTitle, typeOfDialog);
     }
@@ -49,4 +52,14 @@ export class DialogFactory {
       this.dialogModel,
       this.backform);
   }
+
+  createSearchObjectsDialog(dialogTitle, typeOfDialog) {
+    return new SearchObjectsDialogWrapper(
+      this.dialogContainerSelector, dialogTitle, typeOfDialog,
+      this.jquery,
+      this.pgBrowser,
+      this.alertify,
+      this.dialogModel,
+      this.backform);
+  }
 }
diff --git a/web/pgadmin/static/js/alertify/dialog_wrapper.js b/web/pgadmin/static/js/alertify/dialog_wrapper.js
index e4c275f3a..32d9a7a0b 100644
--- a/web/pgadmin/static/js/alertify/dialog_wrapper.js
+++ b/web/pgadmin/static/js/alertify/dialog_wrapper.js
@@ -58,7 +58,11 @@ export class DialogWrapper {
     let backform_tab = $(alertifyDialog.elements.body).find('.backform-tab');
     backform_tab.attr('tabindex', -1);
     this.pgBrowser.keyboardNavigation.getDialogTabNavigator($(alertifyDialog.elements.dialog));
-    const container = backform_tab.find('.tab-content:first > .tab-pane.active:first');
+    let container = backform_tab.find('.tab-content:first > .tab-pane.active:first');
+
+    if(container.length === 0 && alertifyDialog.elements.content.innerHTML) {
+      container = $(alertifyDialog.elements.content);
+    }
     commonUtils.findAndSetFocus(container);
   }
 
diff --git a/web/pgadmin/static/js/slickgrid/plugins/slick.autocolumnsize.js b/web/pgadmin/static/js/slickgrid/plugins/slick.autocolumnsize.js
index 40e537e1b..85b339139 100644
--- a/web/pgadmin/static/js/slickgrid/plugins/slick.autocolumnsize.js
+++ b/web/pgadmin/static/js/slickgrid/plugins/slick.autocolumnsize.js
@@ -98,7 +98,7 @@
     function getTemplateWidth(rowEl, template) {
       var cell = $(rowEl.find('.slick-cell'));
       cell.append(template);
-      $(cell).find('*').css('position', 'relative');
+      cell.find('*').css('position', 'relative');
       return cell.outerWidth() + 1;
     }
 
@@ -128,7 +128,7 @@
         'text-overflow': 'initial',
         'white-space': 'nowrap',
       });
-      var gridCanvas = $container.find('.grid-canvas');
+      var gridCanvas = $container.find('.grid-canvas').first();
       $(gridCanvas).append(rowEl);
       return rowEl;
     }
diff --git a/web/pgadmin/static/js/tree/tree.js b/web/pgadmin/static/js/tree/tree.js
index 57b6207c8..984d247d3 100644
--- a/web/pgadmin/static/js/tree/tree.js
+++ b/web/pgadmin/static/js/tree/tree.js
@@ -50,17 +50,50 @@ export class TreeNode {
   }
 
   reload(tree) {
-    this.unload(tree);
-    tree.aciTreeApi.setInode(this.domNode);
-    tree.aciTreeApi.deselect(this.domNode);
-    setTimeout(() => {
-      tree.selectNode(this.domNode);
-    }, 0);
+    return new Promise((resolve)=>{
+      this.unload(tree)
+        .then(()=>{
+          tree.aciTreeApi.setInode(this.domNode);
+          tree.aciTreeApi.deselect(this.domNode);
+          setTimeout(() => {
+            tree.selectNode(this.domNode);
+          }, 0);
+          resolve();
+        });
+    });
   }
 
   unload(tree) {
-    this.children = [];
-    tree.aciTreeApi.unload(this.domNode);
+    return new Promise((resolve, reject)=>{
+      this.children = [];
+      tree.aciTreeApi.unload(this.domNode, {
+        success: ()=>{
+          resolve(true);
+        },
+        fail: ()=>{
+          reject();
+        },
+      });
+    });
+  }
+
+  open(tree, suppressNoDom) {
+    return new Promise((resolve, reject)=>{
+      if(suppressNoDom && (this.domNode == null || typeof(this.domNode) === 'undefined')) {
+        resolve(true);
+      } else if(tree.aciTreeApi.isOpen(this.domNode)) {
+        resolve(true);
+      } else {
+        tree.aciTreeApi.open(this.domNode, {
+          success: ()=>{
+            resolve(true);
+          },
+          fail: ()=>{
+            reject(true);
+          },
+        });
+      }
+    });
   }
 
   /*
@@ -202,6 +235,47 @@ export class Tree {
     return findInTree(this.rootNode, path.join('.'));
   }
 
+  findNodeWithToggle(path) {
+    let tree = this;
+    path = path.join('.');
+
+    let onCorrectPath = function(matchPath) {
+      return (matchPath !== undefined && path !== undefined
+        && (path.startsWith(matchPath + '.') || path === matchPath));
+    };
+
+    return (function findInNode(currentNode) {
+      return new Promise((resolve, reject)=>{
+        if (path === null || path === undefined || path.length === 0) {
+          resolve(null);
+        }
+        /* No point in checking the children if
+         * the path for currentNode itself is not matching
+         */
+        if (currentNode.path !== undefined && !onCorrectPath(currentNode.path)) {
+          reject(null);
+        } else if (currentNode.path === path) {
+          resolve(currentNode);
+        } else {
+          currentNode.open(tree, true)
+            .then(()=>{
+              for (let i = 0, length = currentNode.children.length; i < length; i++) {
+                let childNode = currentNode.children[i];
+                if(onCorrectPath(childNode.path)) {
+                  resolve(findInNode(childNode));
+                  return;
+                }
+              }
+              reject(null);
+            })
+            .catch(()=>{
+              reject(null);
+            });
+        }
+      });
+    })(this.rootNode);
+  }
+
   findNodeByDomElement(domElement) {
     const path = this.translateTreeNodeIdFromACITree(domElement);
     if(!path || !path[0]) {
@@ -215,8 +289,19 @@ export class Tree {
     return this.aciTreeApi.selected();
   }
 
-  selectNode(aciTreeIdentifier) {
+  /* scrollIntoView will scroll only to top and bottom
+   * Logic can be added for scroll to middle
+   */
+  scrollTo(domElement) {
+    domElement.scrollIntoView();
+  }
+
+  selectNode(aciTreeIdentifier, scrollOnSelect) {
     this.aciTreeApi.select(aciTreeIdentifier);
+
+    if(scrollOnSelect) {
+      this.scrollTo(aciTreeIdentifier[0]);
+    }
   }
 
   createOrUpdateNode(id, data, parent, domNode) {
@@ -227,6 +312,7 @@ export class Tree {
     const oldNode = this.findNode(oldNodePath);
     if (oldNode !== null) {
       oldNode.data = data;
+      oldNode.domNode = domNode;
       return oldNode;
     }
 
@@ -238,6 +324,18 @@ export class Tree {
     return node;
   }
 
+  unloadNode(id, data, domNode, parentPath) {
+    let oldNodePath = [id];
+    const parent = this.findNode(parentPath);
+    if(parent !== null && parent !== undefined) {
+      oldNodePath = [parent.path, id];
+    }
+    const oldNode = this.findNode(oldNodePath);
+    if(oldNode) {
+      oldNode.children = [];
+    }
+  }
+
   /**
    * Given the JQuery object that contains the ACI Tree
    * this method is responsible for registering this tree class
@@ -252,16 +350,20 @@ export class Tree {
     $treeJQuery.on('acitree', function (event, api, item, eventName) {
       if (api.isItem(item)) {
         /* If the id of node is changed, the path should also be changed */
-        if (eventName === 'added' || eventName === 'idset') {
+        if (['added', 'idset', 'beforeunload'].indexOf(eventName) != -1) {
           const id = api.getId(item);
           const data = api.itemData(item);
+          const parentId = this.translateTreeNodeIdFromACITree(api.parent(item));
 
-          if(eventName === 'added') {
-            this.prepareDraggable(data, item);
-          }
+          if(eventName === 'beforeunload') {
+            this.unloadNode(id, data, item, parentId);
+          } else {
+            if(eventName === 'added') {
+              this.prepareDraggable(data, item);
+            }
 
-          const parentId = this.translateTreeNodeIdFromACITree(api.parent(item));
-          this.addNewNode(id, data, item, parentId);
+            this.addNewNode(id, data, item, parentId);
+          }
           if(data.errmsg) {
             Alertify.error(data.errmsg);
           }
diff --git a/web/pgadmin/static/js/utils.js b/web/pgadmin/static/js/utils.js
index 86dae698e..7bdddba85 100644
--- a/web/pgadmin/static/js/utils.js
+++ b/web/pgadmin/static/js/utils.js
@@ -32,11 +32,12 @@ export function findAndSetFocus(container) {
      * browser. For eg, in safari focus() works only when element has
      * tabindex="0", whereas in Chrome it works in any case
      */
+
     if (first_el.length == 0) {
       first_el = container
         .find(`
-          .pgadmin-controls:first input:enabled,
           .pgadmin-controls:first .btn:not(.toggle),
+          .pgadmin-controls:first,
           .ajs-commands:first,
           .CodeMirror-scroll`)
         .find('*[tabindex]:not([tabindex="-1"])');
diff --git a/web/pgadmin/static/scss/_alert.scss b/web/pgadmin/static/scss/_alert.scss
index 3f2e561e3..0e7e234d1 100644
--- a/web/pgadmin/static/scss/_alert.scss
+++ b/web/pgadmin/static/scss/_alert.scss
@@ -119,21 +119,18 @@
   }
 
   .success-in-footer {
-    border-radius: 5px;
-    border: 1px solid transparent;
-
-    .alert-text {
-      border-color: $color-success-light;
-    }
+    border-radius: $border-radius;
+    border: 1px solid $color-success-light;
+    background: $color-success-light;
   }
 
   .info-in-footer {
+    border-radius: $border-radius;
     border: 1px solid $color-primary;
-    border-radius: 4px;
-    height: 35px;
+    background: $color-primary-light;
 
-    .alert-text {
-      border: none;
+    .fa {
+        font-size: 1rem;
     }
   }
 }
diff --git a/web/pgadmin/static/scss/_webcabin.pgadmin.scss b/web/pgadmin/static/scss/_webcabin.pgadmin.scss
index 4846a8031..ca806785a 100644
--- a/web/pgadmin/static/scss/_webcabin.pgadmin.scss
+++ b/web/pgadmin/static/scss/_webcabin.pgadmin.scss
@@ -166,7 +166,7 @@
 
 .wcTabIcon {
   background-position: center;
-  padding: 0px 10px;
+  padding: 0rem 0.75rem;
 
   &.fa, &.pg-font-icon{
     padding: 0rem 0.25rem 0rem 0rem
diff --git a/web/pgadmin/tools/search_objects/__init__.py b/web/pgadmin/tools/search_objects/__init__.py
new file mode 100644
index 000000000..e8bd59141
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/__init__.py
@@ -0,0 +1,87 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2020, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
+"""Implements Search Object feature"""
+
+from flask import request
+from flask_babelex import gettext
+from flask_security import login_required
+
+from pgadmin.utils import PgAdminModule
+from pgadmin.utils.ajax import make_json_response, bad_request,\
+    internal_server_error
+from pgadmin.utils.preferences import Preferences
+from pgadmin.tools.search_objects.utils import SearchObjectsHelper
+
+MODULE_NAME = 'search_objects'
+
+
+class SearchObjectsModule(PgAdminModule):
+    LABEL = gettext('Search objects')
+
+    def get_exposed_url_endpoints(self):
+        """
+        Returns:
+            list: URL endpoints for search_object module
+        """
+        return ['search_objects.search', 'search_objects.types']
+
+    def show_system_objects(self):
+        """
+        return system preference objects
+        """
+        return self.pref_show_system_objects.get()
+
+    def register_preferences(self):
+        """
+        Get show_system_objects preference
+        """
+        browser_preference = Preferences.module('browser')
+        self.pref_show_system_objects =\
+            browser_preference.preference('show_system_objects')
+
+
+# Create blueprint for BackupModule class
+blueprint = SearchObjectsModule(
+    MODULE_NAME, __name__, static_url_path=''
+)
+
+
[email protected]("/", endpoint='index')
+@login_required
+def index():
+    return bad_request(errormsg=_("This URL cannot be called directly."))
+
+
[email protected]("types/<int:sid>/<int:did>", endpoint='types')
+@login_required
+def types(sid, did):
+    so_obj = SearchObjectsHelper(sid, did, blueprint.show_system_objects())
+    return make_json_response(data=so_obj.get_supported_types())
+
+
[email protected]("search/<int:sid>/<int:did>", endpoint='search')
+@login_required
+def search(sid, did):
+    """
+    URL args:
+        text <required>: search text
+        type <optional>: type of object to be searched.
+    """
+    text = request.args.get('text', None)
+    obj_type = request.args.get('type', None)
+
+    so_obj = SearchObjectsHelper(sid, did, blueprint.show_system_objects())
+
+    status, res = so_obj.search(text, obj_type)
+
+    if not status:
+        return internal_server_error(errormsg=res)
+
+    return make_json_response(data=res)
diff --git a/web/pgadmin/tools/search_objects/static/js/search_objects.js b/web/pgadmin/tools/search_objects/static/js/search_objects.js
new file mode 100644
index 000000000..98a415e94
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/static/js/search_objects.js
@@ -0,0 +1,90 @@
+/////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2020, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////
+
+define([
+  'sources/gettext', 'sources/url_for', 'jquery', 'underscore', 'pgadmin.alertifyjs',
+  'sources/pgadmin', 'sources/csrf', 'pgadmin.browser.toolbar',
+  'pgadmin.search_objects/search_objects_dialog',
+], function(
+  gettext, url_for, $, _, alertify, pgAdmin, csrfToken, toolBar, SearchObjectsDialog
+) {
+
+  var pgBrowser = pgAdmin.Browser;
+  if (pgAdmin.SearchObjects)
+    return pgAdmin.SearchObjects;
+
+  pgAdmin.SearchObjects = {
+    init: function() {
+      if (this.initialized)
+        return;
+
+      this.initialized = true;
+      csrfToken.setPGCSRFToken(pgAdmin.csrf_token_header, pgAdmin.csrf_token);
+
+      // Define the nodes on which the menus to be appear
+      var menus = [{
+        name: 'search_objects',
+        module: this,
+        applies: ['tools'],
+        callback: 'show_search_objects',
+        enable: this.search_objects_enabled,
+        priority: 1,
+        label: gettext('Search objects'),
+      }, {
+        name: 'search_objects',
+        module: this,
+        applies: ['context'],
+        callback: 'show_search_objects',
+        enable: this.search_objects_enabled,
+        priority: 1,
+        label: gettext('Search objects'),
+      }];
+
+      pgBrowser.add_menus(menus);
+      return this;
+    },
+
+    search_objects_enabled: function(obj) {
+      /* Same as query tool */
+      var isEnabled = (() => {
+        if (!_.isUndefined(obj) && !_.isNull(obj)) {
+          if (_.indexOf(pgAdmin.unsupported_nodes, obj._type) == -1) {
+            if (obj._type == 'database' && obj.allowConn) {
+              return true;
+            } else if (obj._type != 'database') {
+              return true;
+            } else {
+              return false;
+            }
+          } else {
+            return false;
+          }
+        } else {
+          return false;
+        }
+      })();
+
+      toolBar.enable(gettext('Search objects'), isEnabled);
+      return isEnabled;
+    },
+
+    // Callback to show the dialog
+    show_search_objects: function(action, item) {
+      let dialog = new SearchObjectsDialog.default(
+        pgBrowser,
+        $,
+        alertify,
+        {},
+      );
+      dialog.draw(action, item, {}, pgBrowser.stdW.md, pgBrowser.stdH.lg);
+    },
+  };
+
+  return pgAdmin.SearchObjects;
+});
diff --git a/web/pgadmin/tools/search_objects/static/js/search_objects_dialog.js b/web/pgadmin/tools/search_objects/static/js/search_objects_dialog.js
new file mode 100644
index 000000000..4482f7eb4
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/static/js/search_objects_dialog.js
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2020, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////
+
+import gettext from 'sources/gettext';
+import {Dialog} from 'sources/alertify/dialog';
+import {getPanelTitle} from 'tools/datagrid/static/js/datagrid_panel_title';
+
+export default class SearchObjectsDialog extends Dialog {
+  constructor(pgBrowser, $, alertify, BackupModel, backform = null) {
+    super(gettext('Search Objects Error'),
+      '<div class=\'search_objects_dialog\'></div>',
+      pgBrowser, $, alertify, BackupModel, backform
+    );
+  }
+
+  dialogName() {
+    return 'search_objects';
+  }
+
+  draw(action, aciTreeItem, params, width=0, height=0) {
+    let dbInfo = this.retrieveAncestorOfTypeDatabase(aciTreeItem);
+    if (!dbInfo) {
+      return;
+    }
+
+    let dialogTitle = getPanelTitle(this.pgBrowser, aciTreeItem);
+    dialogTitle = gettext('Search Objects - ')  + dialogTitle;
+    const dialog = this.createOrGetDialog(
+      gettext('Search Objects...'),
+      'search_objects'
+    );
+    dialog(dialogTitle).resizeTo(width, height);
+  }
+}
diff --git a/web/pgadmin/tools/search_objects/static/js/search_objects_dialog_wrapper.js b/web/pgadmin/tools/search_objects/static/js/search_objects_dialog_wrapper.js
new file mode 100644
index 000000000..e489f246a
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/static/js/search_objects_dialog_wrapper.js
@@ -0,0 +1,649 @@
+import {getTreeNodeHierarchyFromElement} from 'sources/tree/pgadmin_tree_node';
+import axios from 'axios/index';
+import gettext from 'sources/gettext';
+import url_for from 'sources/url_for';
+import 'select2';
+import {DialogWrapper} from 'sources/alertify/dialog_wrapper';
+import Slick from 'sources/../bundle/slickgrid';
+import pgAdmin from 'sources/pgadmin';
+
+
+export default class SearchObjectsDialogWrapper extends DialogWrapper {
+  constructor(dialogContainerSelector, dialogTitle, typeOfDialog,
+    jquery, pgBrowser, alertify, dialogModel, backform) {
+    super(dialogContainerSelector, dialogTitle, jquery,
+      pgBrowser, alertify, dialogModel, backform);
+
+    this.grid = null;
+    this.dataview = null;
+    this.gridContainer = null;
+  }
+
+  showMessage(text, is_error, call_after_show=()=>{}) {
+    if(text == '' || text == null) {
+      this.statusBar.classList.add('d-none');
+    } else {
+      if(is_error) {
+        this.statusBar.innerHTML = `
+          <div class="error-in-footer">
+            <div class="d-flex px-2 py-1">
+              <div class="pr-2">
+                <i class="fa fa-exclamation-triangle text-danger" aria-hidden="true" role="img"></i>
+              </div>
+              <div role="alert" class="alert-text">${text}</div>
+              <div class="ml-auto close-error-bar">
+                <a class="close-error fa fa-times text-danger"></a>
+              </div>
+            </div>
+          </div>
+        `;
+
+        this.statusBar.querySelector('.close-error').addEventListener('click', ()=>{
+          this.showMessage(null);
+        });
+      } else {
+        this.statusBar.innerHTML = `
+          <div class="info-in-footer">
+            <div class="d-flex px-2 py-1">
+              <div class="pr-2">
+                <i class="fa fa-info-circle text-primary" aria-hidden="true"></i>
+              </div>
+              <div class="alert-text" role="alert">${text}</div>
+            </div>
+          </div>
+        `;
+      }
+      this.statusBar.classList.remove('d-none');
+      call_after_show(this.statusBar);
+    }
+  }
+
+  createDialogDOM(dialogContainer) {
+    dialogContainer.innerHTML = `
+      <div class="d-flex flex-column w-100 h-100">
+        <div class="p-2">
+          <div class="row">
+            <div class="col-8 d-flex">
+              <div class="input-group pgadmin-controls">
+                  <div class="input-group-prepend">
+                      <span class="input-group-text fa fa-search" id="labelSearch" aria-label="` + gettext('Search') + `"></span>
+                  </div>
+                  <input type="search" class="form-control" id="txtGridSearch" placeholder="` + gettext('Type at least 3 characters') + `"
+                    tabindex="0" aria-describedby="labelSearch" aria-labelledby="labelSearch" autocomplete="off">
+              </div>
+              <div class="ml-2">
+                <button class="btn btn-primary btn-search" disabled>`+ gettext('Search') +`</button>
+              </div>
+            </div>
+            <div class="col-4">
+              <select aria-label="` + gettext('Object types') + `" class="node-types"></select>
+            </div>
+          </div>
+        </div>
+        <div class="search-result-container flex-grow-1">
+          <div class="pg-sp-container d-none">
+            <div class="pg-sp-content">
+              <div class="row"><div class="col-12 pg-sp-icon"></div></div>
+              <div class="row"><div class="col-12 pg-sp-text"></div></div>
+            </div>
+          </div>
+          <div class="search-result"></div>
+        </div>
+        <div class='search-result-count p-1'>
+        </div>
+        <div class="pg-prop-status-bar">
+        </div>
+      </div>
+    `;
+
+    return dialogContainer;
+  }
+
+  updateDimOfSearchResult() {
+    let dim = this.searchResultContainer.getBoundingClientRect();
+    this.searchResult.style.height = dim.height + 'px';
+    this.searchResult.style.width = dim.width + 'px';
+  }
+
+  setLoading(text) {
+    if(text != null) {
+      this.loader.classList.remove('d-none');
+      this.loader.querySelector('.pg-sp-text').innerHTML = text;
+    } else {
+      this.loader.classList.add('d-none');
+    }
+  }
+
+  searchBtnEnabled(enabled) {
+    if(typeof(enabled) != 'undefined') {
+      this.searchBtn.disabled = !enabled;
+    } else {
+      return !this.searchBtn.disabled;
+    }
+  }
+
+  searchBoxVal(val) {
+    if(typeof(val) != 'undefined') {
+      this.searchBox.value = val;
+    } else {
+      return this.searchBox.value.trim();
+    }
+  }
+
+  typesVal(val) {
+    if(typeof(val) != 'undefined') {
+      this.typesSelect.value = val;
+    } else {
+      return this.typesSelect.value;
+    }
+  }
+
+  setTypes(data, enabled=true) {
+    this.jquery(this.typesSelect).empty().select2({
+      data: data,
+    });
+
+    this.typesSelect.disabled = !enabled;
+  }
+
+  setResultCount(count) {
+    if(count != 0 && !count) {
+      count = gettext('Unknown');
+    }
+    this.searchResultCount.innerHTML = count + ' ' +
+      (count===1 ? gettext('match found.'): gettext('matches found.'));
+  }
+
+  showOtherInfo(rowno) {
+    let rowData = this.dataview.getItem(rowno);
+    rowData.name += ` (${rowData.other_info})`;
+    rowData.other_info = null;
+    this.dataview.updateItem(rowData.id, rowData);
+  }
+
+  setGridData(data) {
+    this.dataview.setItems(data);
+  }
+
+  prepareGrid() {
+    this.dataview = new Slick.Data.DataView();
+
+    this.dataview.getItemMetadata = (row)=>{
+      let rowData = this.dataview.getItem(row);
+      if(!rowData.show_node){
+        return {
+          cssClasses: 'object-muted',
+        };
+      }
+      return null;
+    };
+
+    this.dataview.setFilter((item, args)=>{
+      return !(args && args.type != 'all' && item.type != args.type);
+    });
+
+    /* jquery required for select2 */
+    this.jquery(this.typesSelect).on('change', ()=>{
+      this.dataview.setFilterArgs({ type: this.typesVal() });
+      this.dataview.refresh();
+    });
+
+    this.dataview.onRowCountChanged.subscribe((e, args) => {
+      this.grid.updateRowCount();
+      this.grid.render();
+      this.setResultCount(args.current);
+    });
+
+    this.dataview.onRowsChanged.subscribe((e, args) => {
+      this.grid.invalidateRows(args.rows);
+      this.grid.render();
+    });
+
+    this.grid = new Slick.Grid(
+      this.searchResult,
+      this.dataview,
+      [
+        { id: 'name', name: gettext('Object name'), field: 'name', sortable: true,
+          formatter: (row, cell, value, columnDef, dataContext) => {
+            let ret_el = `<i class='wcTabIcon ${dataContext.icon}'></i>${value}`;
+
+            if(dataContext.other_info != null && dataContext.other_info != '') {
+              ret_el += '&nbsp;<span class="object-other-info">(...)</span>';
+            }
+
+            return ret_el;
+          },
+          width: 50,
+        },
+        { id: 'type', name: gettext('Type'), field: 'type_label', sortable: true, width: 35 },
+        { id: 'path', name: gettext('Browser path'), field: 'path', sortable: false },
+      ],
+      {
+        enableCellNavigation: true,
+        enableColumnReorder: false,
+        multiColumnSort: true,
+        explicitInitialization: true,
+      }
+    );
+
+    this.grid.registerPlugin(new Slick.AutoColumnSize());
+
+    this.grid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow: true}));
+
+    this.grid.onKeyDown.subscribe((event) => {
+      let activeRow = this.grid.getActiveCell();
+      if(activeRow && !event.ctrlKey && !event.altKey && !event.metaKey && event.keyCode == 9) {
+        event.preventDefault();
+        event.stopImmediatePropagation();
+
+        if(event.shiftKey) {
+          this.prevToGrid.focus();
+        } else {
+          this.nextToGrid.focus();
+        }
+      }
+    });
+
+    this.grid.onClick.subscribe((event, args) => {
+      if(event.target.classList.contains('object-other-info')) {
+        this.showOtherInfo(args.row);
+      }
+    });
+
+    this.grid.onDblClick.subscribe((event, args) => {
+      let rowData = this.dataview.getItem(args.row);
+      let treeMenu = this.pgBrowser.treeMenu;
+
+      if(!rowData.show_node) {
+        this.showMessage(
+          gettext('%s objects are disabled in the browser.', rowData.type_label) + ' ' +
+          gettext('You can enable them in the') + ' <a class="pref-dialog-link">' + gettext('preferences dialog') + '</a>.',
+          true,
+          (statusBar)=>{
+            statusBar.querySelector('.pref-dialog-link').addEventListener('click', ()=>{
+              if(pgAdmin.Preferences) {
+                pgAdmin.Preferences.show();
+              }
+            });
+          }
+        );
+        return false;
+      }
+      this.showMessage(gettext('Locating...'));
+      treeMenu.findNodeWithToggle(rowData.id_path)
+        .then((treeItem)=>{
+          treeMenu.selectNode(treeItem.domNode, true);
+          this.showMessage(null);
+        })
+        .catch((args)=>{
+          this.showMessage(gettext('Unable to locate this object in the browser.'), true);
+          console.warn(args);
+        });
+    });
+
+    this.grid.onSort.subscribe((event, args) => {
+      let cols = args.sortCols;
+
+      this.dataview.sort(function (dataRow1, dataRow2) {
+        for (var i = 0, l = cols.length; i < l; i++) {
+          var field = cols[i].sortCol.field;
+          var sign = cols[i].sortAsc ? 1 : -1;
+          var value1 = dataRow1[field], value2 = dataRow2[field];
+          var result = (value1 == value2 ? 0 : (value1 > value2 ? 1 : -1)) * sign;
+          if (result != 0) {
+            return result;
+          }
+        }
+        return false;
+      }, true);
+    });
+  }
+
+  onDialogResize() {
+    this.updateDimOfSearchResult();
+
+    if(this.grid) {
+      this.grid.resizeCanvas();
+      this.grid.autosizeColumns();
+    }
+  }
+
+  onDialogShow() {
+    this.focusOnDialog(this);
+
+    setTimeout(()=>{
+      if(!this.grid) {
+        this.prepareGrid();
+      }
+      this.updateDimOfSearchResult();
+      this.grid.init();
+      this.setGridData([]);
+      this.onDialogResize();
+    }, 500);
+  }
+
+  getBaseUrl(endpoint) {
+    return url_for('search_objects.'+endpoint, {
+      sid: this.treeInfo.server._id,
+      did: this.treeInfo.database._id,
+    });
+  }
+
+  getCollNode(node_type) {
+    if('coll-'+node_type in this.pgBrowser.Nodes) {
+      return this.pgBrowser.Nodes['coll-'+node_type];
+    } else if(node_type in this.pgBrowser.Nodes &&
+              typeof(this.pgBrowser.Nodes[node_type].collection_type) === 'string') {
+      return this.pgBrowser.Nodes[this.pgBrowser.Nodes[node_type].collection_type];
+    }
+
+    return null;
+  }
+
+  getSelectedNode() {
+    const tree = this.pgBrowser.treeMenu;
+    const selectedNode = tree.selected();
+    if (selectedNode) {
+      return tree.findNodeByDomElement(selectedNode);
+    } else {
+      return undefined;
+    }
+  }
+
+  finaliseData(datum) {
+    datum.icon = 'icon-' + datum.type;
+    /* finalise path */
+    [datum.path, datum.id_path] = this.translateSearchObjectsPath(datum.path, datum.catalog_level);
+    /* id is required by slickgrid dataview */
+    datum.id = datum.id_path;
+    return datum;
+  }
+
+  /* This function will translate the path given by search objects API into two parts
+   * 1. The display path on the UI
+   * 2. The tree search path to locate the object on the tree.
+   *
+   * Sample path returned by search objects API
+   * :schema.11:/pg_catalog/:table.2604:/pg_attrdef
+   *
+   * Sample path required by tree locator
+   * Normal object  - server_group/1.server/3.coll-database/3.database/13258.coll-schema/13258.schema/2200.coll-table/2200.table/41773
+   * pg_catalog schema - server_group/1.server/3.coll-database/3.database/13258.coll-catalog/13258.catalog/11.coll-table/11.table/2600
+   * Information Schema, dbo, sys    - server_group/1.server/3.coll-database/3.database/13258.coll-catalog/13258.catalog/12967.coll-catalog_object/12967.catalog_object/13204
+   *
+   * Column catalog_level has values as
+   * N - Not a catalog schema
+   * D - Catalog schema with DB support - pg_catalog
+   * O - Catalog schema with object support only - info schema, dbo, sys
+   */
+  translateSearchObjectsPath(path, catalog_level) {
+    if (path === null) {
+      return path;
+    }
+
+    catalog_level = catalog_level || 'N';
+
+    /* path required by tree locator */
+    /* the path received from the backend is after the DB node, initial path setup */
+    let id_path = [
+      this.treeInfo.server_group.id,
+      this.treeInfo.server.id,
+      this.getCollNode('database').type + '/' + this.treeInfo.server._id,
+      this.treeInfo.database.id,
+    ];
+
+    let prev_node_id = this.treeInfo.database._id;
+
+    /* add the slash to match regex, remove it from display path later */
+    path = '/' + path;
+    /* the below regex will match all /:server_group.1:/ */
+    let new_path = path.replace(/\/:[a-zA-Z_]+\.[0-9]+:\//g, (token)=>{
+      let orig_token = token;
+      /* remove the slash and colon */
+      token = token.slice(2, -2);
+      let [node_type, node_oid, others] = token.split('.');
+      if(typeof(others) !== 'undefined') {
+        return token;
+      }
+
+      /* schema type is "catalog" for catalog schemas */
+      node_type = (['D', 'O'].indexOf(catalog_level) != -1 && node_type == 'schema') ? 'catalog' : node_type;
+
+      /* catalog like info schema will only have views and tables AKA catalog_object except for pg_catalog */
+      node_type = (catalog_level === 'O' && ['view', 'table'].indexOf(node_type) != -1) ? 'catalog_object' : node_type;
+
+      /* If collection node present then add it */
+      let coll_node = this.getCollNode(node_type);
+      if(coll_node) {
+        /* Add coll node to the path */
+        if(prev_node_id != null) id_path.push(`${coll_node.type}/${prev_node_id}`);
+
+        /* Add the node to the path */
+        id_path.push(`${node_type}/${node_oid}`);
+
+        /* This will be needed for coll node */
+        prev_node_id = node_oid;
+
+        /* This will be displayed in the grid */
+        return  `/${coll_node.label}/`;
+      } else if(node_type in this.pgBrowser.Nodes) {
+        /* Add the node to the path */
+        id_path.push(`${node_type}/${node_oid}`);
+
+        /* This will be need for coll node id path */
+        prev_node_id = node_oid;
+
+        /* Remove the token and replace with slash. This will be displayed in the grid */
+        return '/';
+      }
+      prev_node_id = null;
+      return orig_token;
+    });
+
+    /* Remove the slash we had added */
+    new_path = new_path.substring(1);
+    return [new_path, id_path];
+  }
+
+  prepareDialog() {
+    this.showMessage(null);
+    this.setResultCount(0);
+    if(this.grid) {
+      this.grid.destroy();
+      this.grid = null;
+    }
+
+    /* Load types */
+    this.setTypes([{
+      id: -1,
+      text: gettext('Loading...'),
+      value: null,
+    }], false);
+
+    axios.get(
+      this.getBaseUrl('types')
+    ).then((res)=>{
+      let types = [{
+        id: 'all',
+        text: 'All types',
+      }];
+
+      for (const key of Object.keys(res.data.data).sort()) {
+        types.push({
+          id: key,
+          text: res.data.data[key],
+        });
+      }
+      this.setTypes(types);
+    }).catch(()=>{
+      this.setTypes([{
+        id: -1,
+        text: gettext('Failed'),
+        value: null,
+      }], false);
+    });
+  }
+
+  main(title) {
+    this.set('title', title);
+  }
+
+  setup() {
+    return {
+      buttons: [{
+        text: '',
+        key: 112,
+        className: 'btn btn-secondary pull-left fa fa-question pg-alertify-icon-button',
+        attrs: {
+          name: 'dialog_help',
+          type: 'button',
+          label: gettext('Help'),
+          'aria-label': gettext('Help'),
+          url: url_for('help.static', {
+            'filename': 'search_objects.html',
+          }),
+        },
+      }, {
+        text: gettext('Close'),
+        key: 27,
+        className: 'btn btn-secondary fa fa-lg fa-times pg-alertify-button',
+        'data-btn-name': 'cancel',
+      }],
+      // Set options for dialog
+      options: {
+        title: this.dialogTitle,
+        //disable both padding and overflow control.
+        padding: !1,
+        overflow: !1,
+        model: 0,
+        resizable: true,
+        maximizable: true,
+        pinnable: false,
+        closableByDimmer: false,
+        modal: false,
+      },
+    };
+  }
+
+  build() {
+    let tmpEle = document.createElement('div');
+    tmpEle.innerHTML = this.dialogContainerSelector;
+    let dialogContainer = tmpEle.firstChild;
+
+    // Append the container
+    this.elements.content.innerHTML = '';
+    this.elements.content.appendChild(dialogContainer);
+
+    this.createDialogDOM(dialogContainer);
+    this.alertify.pgDialogBuild.apply(this);
+
+    this.loader = dialogContainer.getElementsByClassName('pg-sp-container')[0];
+
+    this.searchBox = dialogContainer.querySelector('#txtGridSearch');
+    this.searchBtn = dialogContainer.querySelector('.btn-search');
+    this.typesSelect = dialogContainer.querySelector('.node-types');
+    this.searchResultContainer = dialogContainer.querySelector('.search-result-container');
+    this.searchResult = dialogContainer.querySelector('.search-result');
+    this.searchResultCount = dialogContainer.querySelector('.search-result-count');
+    this.statusBar = dialogContainer.querySelector('.pg-prop-status-bar');
+
+    /* These two values are required to come out of grid when tab is
+     * pressed in the grid. Slickgrid does not allow any way to come out
+     */
+    this.nextToGrid = this.elements.footer.querySelector('.ajs-button');
+    this.prevToGrid = this.typesSelect;
+
+    /* init select2 */
+    this.setTypes([{
+      id: -1,
+      text: gettext('Loading...'),
+      value: null,
+    }], false);
+
+    /* on search box change */
+    this.searchBox.addEventListener('input', ()=>{
+      if(this.searchBoxVal().length >= 3) {
+        this.searchBtnEnabled(true);
+      } else {
+        this.searchBtnEnabled(false);
+      }
+    });
+
+    /* on enter key press */
+    this.searchBox.addEventListener('keypress', (e)=>{
+      if(e.keyCode == 13) {
+        e.stopPropagation();
+        if(this.searchBtnEnabled()) {
+          this.searchBtn.dispatchEvent(new Event('click'));
+        }
+      }
+    });
+
+    /* on search button click */
+    this.searchBtn.addEventListener('click', ()=>{
+      this.searchBtnEnabled(false);
+      this.setGridData([]);
+      this.showMessage(null);
+
+      this.setLoading(gettext('Searching....'));
+      axios.get(this.getBaseUrl('search'), {
+        params: {
+          text: this.searchBoxVal(),
+          type: this.typesVal(),
+        },
+      }).then((res)=>{
+        let grid_data = res.data.data.map((row)=>{
+          return this.finaliseData(row);
+        });
+
+        this.setGridData(grid_data);
+      }).catch((error)=>{
+        let errmsg = '';
+
+        if (error.response) {
+          errmsg = error.response.statusText;
+        } else if (error.request) {
+          errmsg = gettext('No response received');
+        } else {
+          errmsg = error.message;
+        }
+        this.showMessage(gettext('An unexpected occurred: %s', errmsg), true);
+        console.warn(error);
+      }).finally(()=>{
+        this.setLoading(null);
+        this.searchBtnEnabled(true);
+      });
+    });
+
+    this.set({
+      'onresized': this.onDialogResize.bind(this),
+      'onmaximized': this.onDialogResize.bind(this),
+      'onrestored': this.onDialogResize.bind(this),
+      'onshow': this.onDialogShow.bind(this),
+    });
+  }
+
+  prepare() {
+    let selectedTreeNode = this.getSelectedNode();
+    if (!this.getSelectedNodeData(selectedTreeNode)) {
+      return;
+    }
+
+    this.treeInfo = getTreeNodeHierarchyFromElement(this.pgBrowser, selectedTreeNode);
+    this.prepareDialog();
+    this.focusOnDialog(this);
+  }
+
+  callback(event) {
+    if (this.wasHelpButtonPressed(event)) {
+      event.cancel = true;
+      this.pgBrowser.showHelp(
+        event.button.element.name,
+        event.button.element.getAttribute('url'),
+        null,
+        null,
+      );
+      return;
+    }
+  }
+}
diff --git a/web/pgadmin/tools/search_objects/static/scss/_search_objects.scss b/web/pgadmin/tools/search_objects/static/scss/_search_objects.scss
new file mode 100644
index 000000000..86f3eb8a7
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/static/scss/_search_objects.scss
@@ -0,0 +1,122 @@
+.search_objects_dialog {
+    height: 100%;
+
+    .object-other-info {
+        &:hover {
+            font-weight: bold;
+        }
+    }
+
+    .pref-dialog-link {
+        color: $color-fg !important;
+        text-decoration: underline !important;
+        cursor: pointer;
+    }
+
+    .search-result-container {
+        width: 100%;
+        height: 100%;
+        min-height: 0;
+    }
+
+    .node-types ~ .select2-container {
+        min-width: 100%;
+    }
+
+    .search-result-count {
+      border-top: $panel-border;
+    }
+
+    .ui-widget {
+        font-family: $font-family-primary;
+        font-size: $font-size-base;
+
+        .slick-header.ui-state-default {
+            border: $table-border-width solid $table-border-color;
+            .slick-header-columns {
+                background: $table-bg;
+                color: $color-fg;
+                border-bottom: $panel-border;
+
+                .slick-header-column-sorted {
+                    font-style: unset;
+                }
+
+                .ui-state-default {
+                    background: $table-bg !important;
+                    color: $color-fg !important;
+                    padding: $table-header-cell-padding $table-cell-padding;
+                    border-right: $table-border-width solid $table-border-color;
+
+                    .slick-column-name {
+                        font-weight: bold;
+                    }
+
+                    .slick-sort-indicator {
+                        float: unset;
+                    }
+                }
+
+                .slick-header-sortable {
+                    cursor: pointer !important;
+
+                    .slick-sort-indicator-asc {
+                        background: none;
+                        border-top: none;
+                        border-right: 0.25rem solid transparent;
+                        border-bottom: 0.25rem solid $color-fg;
+                        border-left: 0.25rem solid transparent;
+                    }
+
+                    .slick-sort-indicator-desc {
+                        background: none;
+                        border-top: 0.25rem solid $color-fg;
+                        border-right: 0.25rem solid transparent;
+                        border-bottom: none;
+                        border-left: 0.25rem solid transparent;
+                    }
+                }
+            }
+        }
+        .ui-widget-content {
+            color: $color-fg;
+            &.slick-row {
+                &.object-muted {
+                    &.active, &.active:hover, &:hover, & {
+                        .slick-cell {
+                            color: $text-muted !important;
+                            cursor: default !important;
+                        }
+                    }
+                }
+
+                &.active, &.active:hover {
+                    .slick-cell {
+                        border-top: $table-border-width solid transparent !important;
+                        background-color: $tree-bg-selected !important;
+                        color: $tree-fg-selected !important;
+                    }
+                }
+
+                &:hover {
+                    cursor: pointer;
+                    .slick-cell {
+                        border-top: $table-border-width solid transparent !important;
+                        border-bottom: $table-border-width solid transparent !important;
+                        background-color: $tree-bg-hover !important;
+                        color: $tree-fg-hover !important;
+                        cursor: pointer !important;
+                    }
+                }
+            }
+        }
+    }
+
+
+    .pg-prop-status-bar {
+        position: absolute;
+        bottom: 0;
+        right: 0;
+        left: 0;
+    }
+}
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/10_plus/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/10_plus/search.sql
new file mode 100644
index 000000000..d00ca0d11
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/10_plus/search.sql
@@ -0,0 +1,434 @@
+{% import 'catalog/pg/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('S','v','m')
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['table', 'partition'] %}
+    SELECT CASE WHEN c.relispartition THEN 'partition' ELSE 'table' END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || (
+		WITH RECURSIVE table_path_data as (
+			select c.oid as oid, 0 as height,
+				CASE c.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || c.oid || ':/' || c.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) obj_path, n.nspname AS schema_name,
+	CASE WHEN c.relispartition THEN {{ show_node_prefs['partition'] }}
+	    ELSE {{ show_node_prefs['table'] }} END AS show_node,
+    NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    WHERE c.relkind in ('p','r')
+    {% if obj_type == 'table' %}
+    AND NOT c.relispartition
+    {% elif obj_type == 'partition' %}
+    AND c.relispartition
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function'] %}
+    SELECT
+        CASE
+        WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+        ELSE 'function' END::text AS obj_type, p.proname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || case when t.typname = 'trigger' then ':trigger_function.' else ':function.' end || p.oid ||':/' || p.proname AS obj_path, n.nspname AS schema_name,
+    CASE WHEN t.typname IN ('trigger', 'event_trigger') THEN {{ show_node_prefs['trigger_function'] }} ELSE {{ show_node_prefs['function'] }} END AS show_node,
+    pg_catalog.pg_get_function_identity_arguments(p.oid) AS other_info
+    from pg_proc p
+    left join pg_namespace n on p.pronamespace = n.oid
+    left join pg_type t on p.prorettype = t.oid
+    WHERE ({{ CATALOGS.DB_SUPPORT('n') }})
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/'||
+    (
+		WITH RECURSIVE table_path_data as (
+			select t.oid as oid, 0 as height,
+				CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) ||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+            case
+                when t.relkind = 'v' then ':view.'
+                when t.relkind = 'm' then ':mview.'
+                WHEN t.relkind in ('r', 'p') THEN
+                    (
+                        WITH RECURSIVE table_path_data as (
+                            select t.oid as oid, 0 as height,
+                                CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                            union
+                            select rel.oid, pt.height+1 as height,
+                                CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                                || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                            from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                            join pg_inherits inh ON inh.inhparent = rel.oid
+                            join table_path_data pt ON inh.inhrelid = pt.oid
+                        )
+                        select path from table_path_data order by height desc limit 1
+                    )
+            end
+            ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger'] %}
+    select 'trigger'::text AS obj_type, tr.tgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+        case
+            when t.relkind = 'v' then ':view.'
+            when t.relkind = 'm' then ':mview.'
+            WHEN t.relkind in ('r', 'p') THEN
+            (
+                WITH RECURSIVE table_path_data as (
+                    select t.oid as oid, 0 as height,
+                        CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                    union
+                    select rel.oid, pt.height+1 as height,
+                        CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                        || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                    from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                    join pg_inherits inh ON inh.inhparent = rel.oid
+                    join table_path_data pt ON inh.inhrelid = pt.oid
+                )
+                select path from table_path_data order by height desc limit 1
+            )
+        end || '/:trigger.'|| tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['trigger'] }} AS show_node, NULL AS other_info
+        from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary' AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser' AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template' AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain' AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints' AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper' AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server' AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping' AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table' AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension' AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation' AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/11_plus/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/11_plus/search.sql
new file mode 100644
index 000000000..5ec54956f
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/11_plus/search.sql
@@ -0,0 +1,451 @@
+{% import 'catalog/pg/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('S','v','m')
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['table', 'partition'] %}
+    SELECT CASE WHEN c.relispartition THEN 'partition' ELSE 'table' END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || (
+		WITH RECURSIVE table_path_data as (
+			select c.oid as oid, 0 as height,
+				CASE c.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || c.oid || ':/' || c.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) obj_path, n.nspname AS schema_name,
+	CASE WHEN c.relispartition THEN {{ show_node_prefs['partition'] }}
+	    ELSE {{ show_node_prefs['table'] }} END AS show_node,
+    NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    WHERE c.relkind in ('p','r')
+    {% if obj_type == 'table' %}
+    AND NOT c.relispartition
+    {% elif obj_type == 'partition' %}
+    AND c.relispartition
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function', 'procedure'] %}
+    SELECT
+        CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+            WHEN p.prokind = 'p' THEN 'procedure'
+            ELSE 'function'
+        END::text AS obj_type, p.proname AS obj_name,
+        ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+        CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN ':trigger_function.'
+            WHEN p.prokind = 'p' THEN ':procedure.'
+            ELSE ':function.'
+        END || p.oid ||':/' || p.proname AS obj_path, n.nspname AS schema_name,
+        CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN {{ show_node_prefs['trigger_function'] }}
+            WHEN p.prokind = 'p' THEN {{ show_node_prefs['procedure'] }}
+            ELSE {{ show_node_prefs['function'] }}
+        END AS show_node,
+        pg_catalog.pg_get_function_identity_arguments(p.oid) AS other_info
+    from pg_proc p join pg_namespace n
+    on p.pronamespace = n.oid join pg_type t
+    on p.prorettype = t.oid join pg_language lng
+    ON lng.oid=p.prolang
+    WHERE p.prokind IN ('f', 'w', 'p')
+    AND CASE
+        WHEN t.typname IN ('trigger', 'event_trigger') THEN lng.lanname NOT IN ('edbspl', 'sql', 'internal')
+        ELSE true
+        END
+    AND ({{ CATALOGS.DB_SUPPORT('n') }})
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/'||
+    (
+		WITH RECURSIVE table_path_data as (
+			select t.oid as oid, 0 as height,
+				CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) ||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+            case
+                when t.relkind = 'v' then ':view.'
+                when t.relkind = 'm' then ':mview.'
+                WHEN t.relkind in ('r', 'p') THEN
+                    (
+                        WITH RECURSIVE table_path_data as (
+                            select t.oid as oid, 0 as height,
+                                CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                            union
+                            select rel.oid, pt.height+1 as height,
+                                CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                                || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                            from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                            join pg_inherits inh ON inh.inhparent = rel.oid
+                            join table_path_data pt ON inh.inhrelid = pt.oid
+                        )
+                        select path from table_path_data order by height desc limit 1
+                    )
+            end
+            ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger'] %}
+    select 'trigger'::text AS obj_type, tr.tgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+        case
+            when t.relkind = 'v' then ':view.'
+            when t.relkind = 'm' then ':mview.'
+            WHEN t.relkind in ('r', 'p') THEN
+            (
+                WITH RECURSIVE table_path_data as (
+                    select t.oid as oid, 0 as height,
+                        CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                    union
+                    select rel.oid, pt.height+1 as height,
+                        CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                        || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                    from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                    join pg_inherits inh ON inh.inhparent = rel.oid
+                    join table_path_data pt ON inh.inhrelid = pt.oid
+                )
+                select path from table_path_data order by height desc limit 1
+            )
+        end || '/:trigger.'|| tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['trigger'] }} AS show_node, NULL AS other_info
+        from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary' AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser' AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template' AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain' AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints' AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper' AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server' AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping' AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table' AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension' AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation' AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/default/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/default/search.sql
new file mode 100644
index 000000000..b384b316d
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/default/search.sql
@@ -0,0 +1,367 @@
+{% import 'catalog/pg/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['table', 'sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'r' THEN 'table'
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'r' THEN ':table.'
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'r' THEN {{ show_node_prefs['table'] }}
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('r','S','v','m')
+    {% elif obj_type == 'table' %}
+    WHERE c.relkind  = 'r'
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function'] %}
+    SELECT
+        CASE
+        WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+        ELSE 'function' END::text AS obj_type, p.proname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || case when t.typname = 'trigger' then ':trigger_function.' else ':function.' end || p.oid ||':/' || p.proname AS obj_path, n.nspname AS schema_name,
+    CASE WHEN t.typname IN ('trigger', 'event_trigger') THEN {{ show_node_prefs['trigger_function'] }} ELSE {{ show_node_prefs['function'] }} END AS show_node,
+    pg_catalog.pg_get_function_identity_arguments(p.oid) AS other_info
+    from pg_proc p
+    left join pg_namespace n on p.pronamespace = n.oid
+    left join pg_type t on p.prorettype = t.oid
+    WHERE ({{ CATALOGS.DB_SUPPORT('n') }})
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/:table.'|| t.oid || ':/'||t.relname||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname||
+            case
+                WHEN t.relkind = 'r' THEN '/:table.'
+                when t.relkind = 'v' then '/:view.'
+                when t.relkind = 'm' then '/:mview.'
+                else 'should not happen'
+            end || t.oid || ':/' || t.relname ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger'] %}
+    select 'trigger'::text AS obj_type, tr.tgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname||
+            case
+                WHEN t.relkind = 'r' THEN '/:table.'
+                when t.relkind = 'v' then '/:view.'
+                when t.relkind = 'm' then '/:mview.'
+                else 'should not happen'
+            end || t.oid || ':/' || t.relname || '/:trigger.'|| tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+            {{ show_node_prefs['trigger'] }} AS show_node, NULL AS other_info
+            from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary'::text AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser'::text AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template'::text AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints'::text AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper'::text AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server'::text AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping'::text AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table'::text AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension'::text AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation'::text AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/10_plus/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/10_plus/search.sql
new file mode 100644
index 000000000..76d3f01ba
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/10_plus/search.sql
@@ -0,0 +1,494 @@
+{% import 'catalog/ppas/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('S','v','m')
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['table', 'partition'] %}
+    SELECT CASE WHEN c.relispartition THEN 'partition' ELSE 'table' END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || (
+		WITH RECURSIVE table_path_data as (
+			select c.oid as oid, 0 as height,
+				CASE c.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || c.oid || ':/' || c.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) obj_path, n.nspname AS schema_name,
+	CASE WHEN c.relispartition THEN {{ show_node_prefs['partition'] }}
+	    ELSE {{ show_node_prefs['table'] }} END AS show_node,
+    NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    WHERE c.relkind in ('p','r')
+    {% if obj_type == 'table' %}
+    AND NOT c.relispartition
+    {% elif obj_type == 'partition' %}
+    AND c.relispartition
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function', 'procedure', 'edbfunc', 'edbproc'] %}
+    SELECT fd.obj_type, fd.obj_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'procedure' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:procedure.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'trigger_function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:trigger_function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbfunc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbfunc.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbproc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbproc.' || fd.obj_oid ||':/' || fd.obj_name
+            ELSE NULL
+        END AS obj_path,
+        CASE
+            WHEN fd.obj_type IN ('function', 'procedure', 'trigger_function') THEN fd.schema_name
+            WHEN fd.obj_type IN ('edbfunc', 'edbproc') THEN fd.next_schema_name
+            ELSE NULL
+        END AS schema_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN {{ show_node_prefs['function'] }}
+            WHEN fd.obj_type = 'procedure' THEN {{ show_node_prefs['procedure'] }}
+            WHEN fd.obj_type = 'trigger_function' THEN {{ show_node_prefs['trigger_function'] }}
+            WHEN fd.obj_type = 'edbfunc' THEN {{ show_node_prefs['edbfunc'] }}
+            WHEN fd.obj_type = 'edbproc' THEN {{ show_node_prefs['edbproc'] }}
+            ELSE NULL
+        END AS show_node, other_info
+    FROM (
+        SELECT
+            CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+            WHEN pr.protype = '0'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbfunc' ELSE 'function' END
+            WHEN pr.protype = '1'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbproc' ELSE 'procedure' END
+            ELSE null
+            END::text AS obj_type, pr.proname AS obj_name, pr.oid AS obj_oid, n.oid AS schema_oid, n.nspname AS schema_name, np.oid next_schema_oid, np.nspname next_schema_name,
+            pg_catalog.pg_get_function_identity_arguments(pr.oid) AS other_info
+        FROM pg_proc pr left join pg_namespace n
+        ON pr.pronamespace = n.oid left JOIN pg_namespace np
+        ON np.oid=n.nspparent left JOIN pg_type t
+        ON t.oid = pr.prorettype left JOIN pg_language l
+        ON l.oid = pr.prolang
+        WHERE NOT (t.typname = 'trigger' AND l.lanname = 'edbspl')
+        AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }})
+    ) fd
+    {% if not all_obj %}
+    WHERE fd.obj_type = '{{ obj_type }}'
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where n.nspparent = 0
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/'||
+    (
+		WITH RECURSIVE table_path_data as (
+			select t.oid as oid, 0 as height,
+				CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) ||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+            case
+                when t.relkind = 'v' then ':view.'
+                when t.relkind = 'm' then ':mview.'
+                WHEN t.relkind in ('r', 'p') THEN
+                    (
+                        WITH RECURSIVE table_path_data as (
+                            select t.oid as oid, 0 as height,
+                                CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                            union
+                            select rel.oid, pt.height+1 as height,
+                                CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                                || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                            from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                            join pg_inherits inh ON inh.inhparent = rel.oid
+                            join table_path_data pt ON inh.inhrelid = pt.oid
+                        )
+                        select path from table_path_data order by height desc limit 1
+                    )
+            end
+            ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger'] %}
+    select 'trigger'::text AS obj_type, tr.tgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname||
+            case
+                WHEN t.relkind = 'r' THEN '/:table.'
+                when t.relkind = 'v' then '/:view.'
+                when t.relkind = 'm' then '/:mview.'
+                else 'should not happen'
+            end || t.oid || ':/' || t.relname || '/:trigger.'|| tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+            {{ show_node_prefs['trigger'] }} AS show_node, NULL AS other_info
+            from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary' AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser' AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template' AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain' AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints' AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper' AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server' AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping' AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table' AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension' AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation' AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['synonym'] %}
+    SELECT 'synonym' AS obj_type, s.synname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:synonym.'||s.oid||':/' || s.synname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['synonym'] }} AS show_node, NULL AS other_info
+    FROM pg_synonym s
+    JOIN pg_namespace n ON n.oid=s.synnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['package'] %}
+    SELECT 'package' AS obj_type, p.nspname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['package'] }} AS show_node, NULL AS other_info
+    FROM pg_namespace p
+    JOIN pg_namespace n ON n.oid=p.nspparent
+    WHERE p.nspcompoundtrigger = false
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['edbvar'] %}
+    SELECT 'edbvar' AS obj_type, v.varname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname || '/:edbvar.'||v.oid||':/' || v.varname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['edbvar'] }} AS show_node, NULL AS other_info
+    FROM edb_variable v JOIN pg_namespace p
+    ON v.varpackage = p.oid JOIN pg_namespace n
+    ON p.nspparent = n.oid
+    WHERE p.nspcompoundtrigger = false
+    AND {{ CATALOGS.DB_SUPPORT('p') }}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/12_plus/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/12_plus/search.sql
new file mode 100644
index 000000000..82eb9cf6f
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/12_plus/search.sql
@@ -0,0 +1,515 @@
+{% import 'catalog/ppas/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('S','v','m')
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['table', 'partition'] %}
+    SELECT CASE WHEN c.relispartition THEN 'partition' ELSE 'table' END::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' || (
+		WITH RECURSIVE table_path_data as (
+			select c.oid as oid, 0 as height,
+				CASE c.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || c.oid || ':/' || c.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) obj_path, n.nspname AS schema_name,
+	CASE WHEN c.relispartition THEN {{ show_node_prefs['partition'] }}
+	    ELSE {{ show_node_prefs['table'] }} END AS show_node,
+    NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    WHERE c.relkind in ('p','r')
+    {% if obj_type == 'table' %}
+    AND NOT c.relispartition
+    {% elif obj_type == 'partition' %}
+    AND c.relispartition
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function', 'procedure', 'edbfunc', 'edbproc'] %}
+    SELECT fd.obj_type, fd.obj_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'procedure' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:procedure.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'trigger_function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:trigger_function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbfunc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbfunc.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbproc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbproc.' || fd.obj_oid ||':/' || fd.obj_name
+            ELSE NULL
+        END AS obj_path,
+        CASE
+            WHEN fd.obj_type IN ('function', 'procedure', 'trigger_function') THEN fd.schema_name
+            WHEN fd.obj_type IN ('edbfunc', 'edbproc') THEN fd.next_schema_name
+            ELSE NULL
+        END AS schema_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN {{ show_node_prefs['function'] }}
+            WHEN fd.obj_type = 'procedure' THEN {{ show_node_prefs['procedure'] }}
+            WHEN fd.obj_type = 'trigger_function' THEN {{ show_node_prefs['trigger_function'] }}
+            WHEN fd.obj_type = 'edbfunc' THEN {{ show_node_prefs['edbfunc'] }}
+            WHEN fd.obj_type = 'edbproc' THEN {{ show_node_prefs['edbproc'] }}
+            ELSE NULL
+        END AS show_node, other_info
+    FROM (
+        SELECT
+            CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+            WHEN pr.protype = '0'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbfunc' ELSE 'function' END
+            WHEN pr.protype = '1'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbproc' ELSE 'procedure' END
+            ELSE null
+            END::text AS obj_type, pr.proname AS obj_name, pr.oid AS obj_oid, n.oid AS schema_oid, n.nspname AS schema_name, np.oid next_schema_oid, np.nspname next_schema_name,
+            pg_catalog.pg_get_function_identity_arguments(pr.oid) AS other_info
+        FROM pg_proc pr left join pg_namespace n
+        ON pr.pronamespace = n.oid left JOIN pg_namespace np
+        ON np.oid=n.nspparent left JOIN pg_type t
+        ON t.oid = pr.prorettype left JOIN pg_language l
+        ON l.oid = pr.prolang
+        WHERE NOT (t.typname = 'trigger' AND l.lanname = 'edbspl')
+        AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }})
+    ) fd
+    {% if not all_obj %}
+    WHERE fd.obj_type = '{{ obj_type }}'
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where n.nspparent = 0
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/'||
+    (
+		WITH RECURSIVE table_path_data as (
+			select t.oid as oid, 0 as height,
+				CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+			union
+			select rel.oid, pt.height+1 as height,
+				CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+				|| rel.oid || ':/' || rel.relname || '/' || pt.path as path
+			from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+			join pg_inherits inh ON inh.inhparent = rel.oid
+			join table_path_data pt ON inh.inhrelid = pt.oid
+		)
+		select path from table_path_data order by height desc limit 1
+	) ||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+            case
+                when t.relkind = 'v' then ':view.'
+                when t.relkind = 'm' then ':mview.'
+                WHEN t.relkind in ('r', 'p') THEN
+                    (
+                        WITH RECURSIVE table_path_data as (
+                            select t.oid as oid, 0 as height,
+                                CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                            union
+                            select rel.oid, pt.height+1 as height,
+                                CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                                || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                            from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                            join pg_inherits inh ON inh.inhparent = rel.oid
+                            join table_path_data pt ON inh.inhrelid = pt.oid
+                        )
+                        select path from table_path_data order by height desc limit 1
+                    )
+            end
+            ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger', 'compound_trigger'] %}
+    select
+        CASE WHEN tr.tgpackageoid != 0 THEN 'compound_trigger' ELSE 'trigger' END::text AS obj_type, tr.tgname AS obj_name,
+        ':schema.'||n.oid||':/' || n.nspname|| '/' ||
+        case
+            when t.relkind = 'v' then ':view.'
+            when t.relkind = 'm' then ':mview.'
+            WHEN t.relkind in ('r', 'p') THEN
+            (
+                WITH RECURSIVE table_path_data as (
+                    select t.oid as oid, 0 as height,
+                        CASE t.relispartition WHEN true THEN ':partition.' ELSE ':table.' END || t.oid || ':/' || t.relname as path
+                    union
+                    select rel.oid, pt.height+1 as height,
+                        CASE rel.relispartition WHEN true THEN ':partition.' ELSE ':table.' END
+                        || rel.oid || ':/' || rel.relname || '/' || pt.path as path
+                    from pg_class rel JOIN pg_namespace nsp ON rel.relnamespace = nsp.oid
+                    join pg_inherits inh ON inh.inhparent = rel.oid
+                    join table_path_data pt ON inh.inhrelid = pt.oid
+                )
+                select path from table_path_data order by height desc limit 1
+            )
+        end || CASE WHEN tr.tgpackageoid != 0 THEN '/:compound_trigger.' ELSE '/:trigger.' END || tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+        CASE WHEN tr.tgpackageoid != 0 THEN {{ show_node_prefs['compound_trigger'] }} ELSE {{ show_node_prefs['trigger'] }} END AS show_node,
+        NULL AS other_info
+        from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+    {% if obj_type == 'compound_trigger' %}
+    AND tr.tgpackageoid != 0
+    {% elif obj_type == 'trigger' %}
+    AND tr.tgpackageoid = 0
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary'::text AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser'::text AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template'::text AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain'::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints'::text AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper'::text AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server' AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping' AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table' AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension' AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation' AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['synonym'] %}
+    SELECT 'synonym' AS obj_type, s.synname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:synonym.'||s.oid||':/' || s.synname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['synonym'] }} AS show_node, NULL AS other_info
+    FROM pg_synonym s
+    JOIN pg_namespace n ON n.oid=s.synnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['package'] %}
+    SELECT 'package' AS obj_type, p.nspname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['package'] }} AS show_node, NULL AS other_info
+    FROM pg_namespace p
+    JOIN pg_namespace n ON n.oid=p.nspparent
+    WHERE p.nspcompoundtrigger = false
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['edbvar'] %}
+    SELECT 'edbvar' AS obj_type, v.varname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname || '/:edbvar.'||v.oid||':/' || v.varname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['edbvar'] }} AS show_node, NULL AS other_info
+    FROM edb_variable v JOIN pg_namespace p
+    ON v.varpackage = p.oid JOIN pg_namespace n
+    ON p.nspparent = n.oid
+    WHERE p.nspcompoundtrigger = false
+    AND {{ CATALOGS.DB_SUPPORT('p') }}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/default/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/default/search.sql
new file mode 100644
index 000000000..7bb126e32
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/default/search.sql
@@ -0,0 +1,437 @@
+{% import 'catalog/ppas/macros/catalogs.sql' as CATALOGS %}
+{% set all_obj = false %}
+{% if obj_type == 'all' or obj_type is none %}
+{% set all_obj = true %}
+{% endif %}
+SELECT obj_type, obj_name,
+    REPLACE(obj_path, '/'||sn.schema_name||'/', '/'||{{ CATALOGS.LABELS_SCHEMACOL('sn.schema_name', _) }}||'/') AS obj_path,
+    schema_name, show_node, other_info,
+    CASE
+        WHEN {{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }} THEN
+            CASE WHEN {{ CATALOGS.DB_SUPPORT_SCHEMACOL('sn.schema_name') }} THEN 'D' ELSE 'O' END
+        ELSE 'N'
+    END AS catalog_level
+FROM (
+{% if all_obj or obj_type in ['table', 'sequence', 'view', 'mview'] %}
+    SELECT
+    CASE
+        WHEN c.relkind = 'r' THEN 'table'
+        WHEN c.relkind = 'S' THEN 'sequence'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'mview'
+        ELSE 'should not happen'
+    END::text::text AS obj_type, c.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/' ||
+    CASE
+        WHEN c.relkind = 'r' THEN ':table.'
+        WHEN c.relkind = 'S' THEN ':sequence.'
+        WHEN c.relkind = 'v' THEN ':view.'
+        WHEN c.relkind = 'm' THEN ':mview.'
+        ELSE 'should not happen'
+    END || c.oid ||':/' || c.relname AS obj_path, n.nspname AS schema_name,
+    CASE
+        WHEN c.relkind = 'r' THEN {{ show_node_prefs['table'] }}
+        WHEN c.relkind = 'S' THEN {{ show_node_prefs['sequence'] }}
+        WHEN c.relkind = 'v' THEN {{ show_node_prefs['view'] }}
+        WHEN c.relkind = 'm' THEN {{ show_node_prefs['mview'] }}
+        ELSE False
+    END AS show_node, NULL AS other_info
+    FROM pg_class c
+    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
+    {% if all_obj %}
+    WHERE c.relkind in ('r','S','v','m')
+    {% elif obj_type == 'table' %}
+    WHERE c.relkind  = 'r'
+    {% elif obj_type == 'sequence' %}
+    WHERE c.relkind  = 'S'
+    {% elif obj_type == 'view' %}
+    WHERE c.relkind  = 'v'
+    {% elif obj_type == 'mview' %}
+    WHERE c.relkind  = 'm'
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['index'] %}
+    SELECT 'index'::text::text AS obj_type, cls.relname AS obj_name,
+    ':schema.'|| n.oid || ':/' || n.nspname || '/:table.'|| tab.oid ||':/' || tab.relname || '/:index.'|| cls.oid ||':/' || cls.relname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info
+    FROM pg_index idx
+    JOIN pg_class cls ON cls.oid=indexrelid
+    JOIN pg_class tab ON tab.oid=indrelid
+    JOIN pg_namespace n ON n.oid=tab.relnamespace
+    LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
+    LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
+    LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid
+    LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
+    WHERE contype IS NULL
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger_function', 'function', 'procedure', 'edbfunc', 'edbproc'] %}
+    SELECT fd.obj_type, fd.obj_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'procedure' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:procedure.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'trigger_function' THEN
+                ':schema.'|| fd.schema_oid || ':/' || fd.schema_name || '/:trigger_function.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbfunc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbfunc.' || fd.obj_oid ||':/' || fd.obj_name
+            WHEN fd.obj_type = 'edbproc' THEN
+                ':schema.'|| fd.next_schema_oid || ':/' || fd.next_schema_name || '/:package.'|| fd.schema_oid || ':/' || fd.schema_name || '/:edbproc.' || fd.obj_oid ||':/' || fd.obj_name
+            ELSE NULL
+        END AS obj_path,
+        CASE
+            WHEN fd.obj_type IN ('function', 'procedure', 'trigger_function') THEN fd.schema_name
+            WHEN fd.obj_type IN ('edbfunc', 'edbproc') THEN fd.next_schema_name
+            ELSE NULL
+        END AS schema_name,
+        CASE
+            WHEN fd.obj_type = 'function' THEN {{ show_node_prefs['function'] }}
+            WHEN fd.obj_type = 'procedure' THEN {{ show_node_prefs['procedure'] }}
+            WHEN fd.obj_type = 'trigger_function' THEN {{ show_node_prefs['trigger_function'] }}
+            WHEN fd.obj_type = 'edbfunc' THEN {{ show_node_prefs['edbfunc'] }}
+            WHEN fd.obj_type = 'edbproc' THEN {{ show_node_prefs['edbproc'] }}
+            ELSE NULL
+        END AS show_node, other_info
+    FROM (
+        SELECT
+            CASE
+            WHEN t.typname IN ('trigger', 'event_trigger') THEN 'trigger_function'
+            WHEN pr.protype = '0'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbfunc' ELSE 'function' END
+            WHEN pr.protype = '1'::char THEN
+                CASE WHEN np.oid IS NOT NULL THEN 'edbproc' ELSE 'procedure' END
+            ELSE null
+            END::text::text AS obj_type, pr.proname AS obj_name, pr.oid AS obj_oid, n.oid AS schema_oid, n.nspname AS schema_name, np.oid next_schema_oid, np.nspname next_schema_name,
+            pg_catalog.pg_get_function_identity_arguments(pr.oid) AS other_info
+        FROM pg_proc pr left join pg_namespace n
+        ON pr.pronamespace = n.oid left JOIN pg_namespace np
+        ON np.oid=n.nspparent left JOIN pg_type t
+        ON t.oid = pr.prorettype left JOIN pg_language l
+        ON l.oid = pr.prolang
+        WHERE NOT (t.typname = 'trigger' AND l.lanname = 'edbspl')
+        AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }})
+    ) fd
+    {% if not all_obj %}
+    WHERE fd.obj_type = '{{ obj_type }}'
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['event_trigger'] %}
+    select 'event_trigger'::text::text AS obj_type, evtname AS obj_name, ':event_trigger.'||oid||':/' || evtname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['index'] }} AS show_node, NULL AS other_info from pg_event_trigger
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['schema'] %}
+    select 'schema'::text::text AS obj_type, n.nspname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname as obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['schema'] }} AS show_node, NULL AS other_info from pg_namespace n
+    where n.nspparent = 0
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['column'] %}
+    select 'column'::text::text AS obj_type, a.attname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/' ||
+    case
+        WHEN t.relkind = 'r' THEN ':table.'
+        WHEN t.relkind = 'v' THEN ':view.'
+        WHEN t.relkind = 'm' THEN ':mview.'
+        else 'should not happen'
+    end || t.oid || ':/' || t.relname || '/:column.'|| a.attnum ||':/' || a.attname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['column'] }} AS show_node, NULL AS other_info
+    from pg_attribute a
+    inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v','m')
+    left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['constraints', 'check_constraint', 'foreign_key', 'primary_key', 'unique_constraint', 'exclusion_constraint'] %}
+    SELECT
+    CASE
+        WHEN c.contype = 'c' THEN  'check_constraint'
+        WHEN c.contype = 'f' THEN  'foreign_key'
+        WHEN c.contype = 'p' THEN  'primary_key'
+        WHEN c.contype = 'u' THEN  'unique_constraint'
+        WHEN c.contype = 'x' THEN  'exclusion_constraint'
+    END::text::text AS obj_type,
+    case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname||'/:table.'|| t.oid || ':/'||t.relname||
+    CASE
+        WHEN c.contype = 'c' THEN  '/:check_constraint.' ||c.oid
+        WHEN c.contype = 'f' THEN  '/:foreign_key.' ||c.conindid
+        WHEN c.contype = 'p' THEN  '/:primary_key.' ||c.conindid
+        WHEN c.contype = 'u' THEN  '/:unique_constraint.' ||c.conindid
+        WHEN c.contype = 'x' THEN  '/:exclusion_constraint.' ||c.conindid
+    END ||':/'|| case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['constraints'] }} AS show_node, NULL AS other_info
+    from pg_constraint c
+    left join pg_class t on c.conrelid = t.oid
+    left join pg_class tf on c.confrelid = tf.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where c.contypid = 0
+    {% if obj_type == 'check_constraint' %}
+    AND c.contype = 'c'
+    {% elif obj_type == 'foreign_key' %}
+    AND c.contype = 'f'
+    {% elif obj_type == 'primary_key' %}
+    AND c.contype = 'p'
+    {% elif obj_type == 'unique_constraint' %}
+    AND c.contype = 'u'
+    {% elif obj_type == 'exclusion_constraint' %}
+    AND c.contype = 'x'
+    {% else %}
+    AND c.contype IN  ('c', 'f', 'p', 'u', 'x')
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['rule'] %}
+    select 'rule'::text::text AS obj_type, r.rulename AS obj_name, ':schema.'||n.oid||':/' || n.nspname||
+            case
+                WHEN t.relkind = 'r' THEN '/:table.'
+                when t.relkind = 'v' then '/:view.'
+                when t.relkind = 'm' then '/:mview.'
+                else 'should not happen'
+            end || t.oid || ':/' || t.relname ||'/:rule.'||r.oid||':/'|| r.rulename AS obj_path,
+            n.nspname AS schema_name,
+            {{ show_node_prefs['rule'] }} AS show_node, NULL AS other_info
+            from pg_rewrite r
+    left join pg_class t on r.ev_class = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['trigger'] %}
+    select 'trigger'::text::text AS obj_type, tr.tgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname||
+            case
+                WHEN t.relkind = 'r' THEN '/:table.'
+                when t.relkind = 'v' then '/:view.'
+                when t.relkind = 'm' then '/:mview.'
+                else 'should not happen'
+            end || t.oid || ':/' || t.relname || '/:trigger.'|| tr.oid || ':/' || tr.tgname AS obj_path, n.nspname AS schema_name,
+            {{ show_node_prefs['trigger'] }} AS show_node, NULL AS other_info
+            from pg_trigger tr
+    left join pg_class t on tr.tgrelid = t.oid
+    left join pg_namespace n on t.relnamespace = n.oid
+    where tr.tgisinternal = false
+    and {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['type'] %}
+    SELECT 'type'::text::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname ||
+        '/:type.'|| t.oid ||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+        {{ show_node_prefs['type'] }} AS show_node, NULL AS other_info
+    FROM pg_type t
+    LEFT OUTER JOIN pg_type e ON e.oid=t.typelem
+    LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'
+    LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid
+    WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%'
+    {% if not show_system_objects %}
+        AND ct.oid is NULL
+    {% endif %}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['cast'] %}
+    SELECT 'cast'::text::text AS obj_type, format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_name,
+    ':cast.'||ca.oid||':/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['cast'] }} AS show_node, NULL AS other_info
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_type tt ON tt.oid=casttarget
+    {% if not show_system_objects %}
+    WHERE ca.oid > {{last_system_oid}}::OID
+    {% endif %}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['language'] %}
+    SELECT 'language'::text::text AS obj_type, lanname AS obj_name, ':language.'||lan.oid||':/' || lanname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['language'] }} AS show_node, NULL AS other_info
+    FROM pg_language lan
+    WHERE lanispl IS TRUE
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_configuration'] %}
+    SELECT 'fts_configuration'::text::text AS obj_type, cfg.cfgname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:fts_configuration.'||cfg.oid||':/' || cfg.cfgname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['fts_configuration'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_config cfg
+    left join pg_namespace n on cfg.cfgnamespace = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_dictionary'] %}
+    SELECT 'fts_dictionary'::text::text AS obj_type, dict.dictname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_dictionary.'||dict.oid||':/' || dict.dictname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_dictionary'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_dict dict
+    left join pg_namespace ns on dict.dictnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_parser'] %}
+    SELECT 'fts_parser'::text::text AS obj_type, prs.prsname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_parser.'||prs.oid||':/' || prs.prsname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_parser'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_parser prs
+    left join pg_namespace ns on prs.prsnamespace = ns.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['fts_template'] %}
+    SELECT 'fts_template'::text::text AS obj_type, tmpl.tmplname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:fts_template.'||tmpl.oid||':/' || tmpl.tmplname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['fts_template'] }} AS show_node, NULL AS other_info
+    FROM pg_ts_template tmpl
+    left join pg_namespace ns on tmpl.tmplnamespace = ns.oid
+    AND {{ CATALOGS.DB_SUPPORT('ns') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain'] %}
+    select 'domain'::text::text AS obj_type, t.typname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['domain'] }} AS show_node, NULL AS other_info
+    from pg_type t
+    inner join pg_namespace n on t.typnamespace = n.oid
+    where t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['domain_constraints'] %}
+    SELECT 'domain_constraints'::text::text AS obj_type,
+        c.conname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:domain.'||t.oid||':/' || t.typname || '/:domain_constraints.'||c.oid||':/' || c.conname AS obj_path,
+        n.nspname AS schema_name,
+        {{ show_node_prefs['domain_constraints'] }} AS show_node, NULL AS other_info
+    FROM pg_constraint c JOIN pg_type t
+    ON t.oid=contypid JOIN pg_namespace n
+    ON n.oid=t.typnamespace
+    WHERE t.typtype = 'd'
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_data_wrapper'] %}
+    select 'foreign_data_wrapper'::text AS obj_type, fdwname AS obj_name, ':foreign_data_wrapper.'||oid||':/' || fdwname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_data_wrapper'] }} AS show_node, NULL AS other_info
+    from pg_foreign_data_wrapper
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_server'] %}
+    select 'foreign_server'::text AS obj_type, sr.srvname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['foreign_server'] }} AS show_node, NULL AS other_info
+    from pg_foreign_server sr
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['user_mapping'] %}
+    select 'user_mapping'::text AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info
+    from pg_user_mapping um
+    inner join pg_roles ro on um.umuser = ro.oid
+    inner join pg_foreign_server sr on um.umserver = sr.oid
+    inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['foreign_table'] %}
+    select 'foreign_table'::text AS obj_type, c.relname AS obj_name, ':schema.'||ns.oid||':/' || ns.nspname || '/:foreign_table.'||c.oid||':/' || c.relname AS obj_path, ns.nspname AS schema_name,
+    {{ show_node_prefs['foreign_table'] }} AS show_node, NULL AS other_info
+    from pg_foreign_table ft
+    inner join pg_class c on ft.ftrelid = c.oid
+    inner join pg_namespace ns on c.relnamespace = ns.oid
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['extension'] %}
+    select 'extension'::text AS obj_type, x.extname AS obj_name, ':extension.'||x.oid||':/' || x.extname AS obj_path, ''::text AS schema_name,
+    {{ show_node_prefs['extension'] }} AS show_node, NULL AS other_info
+    FROM pg_extension x
+    JOIN pg_namespace n on x.extnamespace=n.oid
+    join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['collation'] %}
+    SELECT 'collation'::text AS obj_type, c.collname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:collation.'||c.oid||':/' || c.collname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['collation'] }} AS show_node, NULL AS other_info
+    FROM pg_collation c
+    JOIN pg_namespace n ON n.oid=c.collnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['synonym'] %}
+    SELECT 'synonym'::text AS obj_type, s.synname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:synonym.'||s.oid||':/' || s.synname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['synonym'] }} AS show_node, NULL AS other_info
+    FROM pg_synonym s
+    JOIN pg_namespace n ON n.oid=s.synnamespace
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['package'] %}
+    SELECT 'package'::text AS obj_type, p.nspname AS obj_name, ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['package'] }} AS show_node, NULL AS other_info
+    FROM pg_namespace p
+    JOIN pg_namespace n ON n.oid=p.nspparent
+    WHERE {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+{% if all_obj %}
+    UNION
+{% endif %}
+{% if all_obj or obj_type in ['edbvar'] %}
+    SELECT 'edbvar'::text AS obj_type, v.varname AS obj_name,
+    ':schema.'||n.oid||':/' || n.nspname || '/:package.'||p.oid||':/' || p.nspname || '/:edbvar.'||v.oid||':/' || v.varname AS obj_path, n.nspname AS schema_name,
+    {{ show_node_prefs['edbvar'] }} AS show_node, NULL AS other_info
+    FROM edb_variable v JOIN pg_namespace p
+    ON v.varpackage = p.oid JOIN pg_namespace n
+    ON p.nspparent = n.oid
+    WHERE {{ CATALOGS.DB_SUPPORT('p') }}
+    AND {{ CATALOGS.DB_SUPPORT('n') }}
+{% endif %}
+) sn
+where lower(sn.obj_name) like '%{{ search_text }}%'
+{% if not show_system_objects %}
+AND NOT ({{ CATALOGS.IS_CATALOG_SCHEMA('sn.schema_name') }})
+AND (sn.schema_name IS NOT NULL AND sn.schema_name NOT LIKE 'pg\_%')
+{% endif %}
+ORDER BY 1, 2, 3
diff --git a/web/pgadmin/tools/search_objects/tests/__init__.py b/web/pgadmin/tools/search_objects/tests/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/web/pgadmin/tools/search_objects/tests/test_api_search.py b/web/pgadmin/tools/search_objects/tests/test_api_search.py
new file mode 100644
index 000000000..3952006d2
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/tests/test_api_search.py
@@ -0,0 +1,75 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2020, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
+from __future__ import print_function
+import sys
+import json
+
+from pgadmin.utils.route import BaseTestGenerator
+from regression import parent_node_dict
+from pgadmin.browser.server_groups.servers.databases.tests import utils as \
+    database_utils
+from regression.python_test_utils import test_utils as utils
+
+try:
+    from urllib import urlencode
+except Exception as e:
+    from urllib.parse import urlencode
+
+
+class SearchObjectsApiSearch(BaseTestGenerator):
+    """ This class will test search API of search objects. """
+    scenarios = [
+        ('Search with all types', dict(text='emp', type='all', singles=False)),
+        ('Search with None types', dict(text='emp', type=None, singles=False)),
+        ('Search for all single types',
+         dict(text='emp', type=None, singles=True)),
+    ]
+
+    def runFor(self, text=None, type=None):
+        url_params = dict(
+            text=text
+        )
+        if type is not None:
+            url_params['type'] = type
+
+        url_params = urlencode(url_params)
+        response = self.tester.get(self.base_url + '?' + url_params)
+
+        self.assertEquals(response.status_code, 200)
+
+    def runTest(self):
+        database_info = parent_node_dict["database"][-1]
+        server_id = database_info["server_id"]
+        db_id = database_info["db_id"]
+
+        db_con = database_utils.connect_database(self,
+                                                 utils.SERVER_GROUP,
+                                                 server_id,
+                                                 db_id)
+        if not db_con["info"] == "Database connected.":
+            raise Exception("Could not connect to database to add the schema.")
+
+        self.base_url = '/search_objects/search/' \
+                        + str(server_id) + '/' + str(db_id)
+
+        if not self.singles:
+            self.runFor(text=self.text, type=self.type)
+        else:
+            # test for all the node types individually
+            types_url = '/search_objects/types/' +\
+                        str(server_id) + '/' + str(db_id)
+            response = self.tester.get(types_url)
+            self.assertEquals(response.status_code, 200)
+            types_data = json.loads(response.data.decode('utf-8'))['data']
+
+            for a_type in types_data:
+                print('Running search for type {0}'.format(a_type),
+                      file=sys.stderr)
+                self.runFor(text=self.text, type=a_type)
diff --git a/web/pgadmin/tools/search_objects/tests/test_api_types.py b/web/pgadmin/tools/search_objects/tests/test_api_types.py
new file mode 100644
index 000000000..aed5571ad
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/tests/test_api_types.py
@@ -0,0 +1,47 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2020, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
+import json
+from pgadmin.utils.route import BaseTestGenerator
+from regression import parent_node_dict
+from pgadmin.browser.server_groups.servers.databases.tests import utils as \
+    database_utils
+from regression.python_test_utils import test_utils as utils
+
+
+class SearchObjectsApiTypes(BaseTestGenerator):
+    """ This class will test types API of search objects. """
+    scenarios = [
+        # Fetching default URL for schema node.
+        ('Types API URL', dict(url='/search_objects/types'))
+    ]
+
+    def runTest(self):
+        database_info = parent_node_dict["database"][-1]
+        server_id = database_info["server_id"]
+
+        db_id = database_info["db_id"]
+        db_con = database_utils.connect_database(self,
+                                                 utils.SERVER_GROUP,
+                                                 server_id,
+                                                 db_id)
+        if not db_con["info"] == "Database connected.":
+            raise Exception("Could not connect to database to add the schema.")
+
+        url = self.url + '/' + str(server_id) + '/' + str(db_id)
+        response = self.tester.get(url)
+        self.assertEquals(response.status_code, 200)
+
+        # repsonse data should be dict
+        response_data = json.loads(response.data.decode('utf-8'))['data']
+        self.assertEquals(type(response_data), dict)
+
+        # response data key values should not be None
+        for key, value in response_data.items():
+            self.assertIsNotNone(value, 'Key {0} has value None'.format(key))
diff --git a/web/pgadmin/tools/search_objects/tests/test_search_objects_helper.py b/web/pgadmin/tools/search_objects/tests/test_search_objects_helper.py
new file mode 100644
index 000000000..ec9c369b9
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/tests/test_search_objects_helper.py
@@ -0,0 +1,117 @@
+import sys
+
+from pgadmin.tools.search_objects.utils import SearchObjectsHelper, current_app
+from pgadmin.utils.route import BaseTestGenerator
+
+if sys.version_info < (3, 3):
+    from mock import patch, MagicMock
+else:
+    from unittest.mock import patch, MagicMock
+
+
+class SearchObjectsHelperTest(BaseTestGenerator):
+    scenarios = [
+        ('scenario', dict(
+            node_blueprints=[
+                dict(node_type='table', coll_label='Tables',
+                     backend_supported=True),
+                dict(node_type='view', coll_label='Views',
+                     backend_supported=False),
+                dict(node_type='index', coll_label='Indexes',
+                     backend_supported=True),
+                dict(node_type='role', coll_label='Roles',
+                     backend_supported=True)
+            ],
+            all_node_types=['table', 'view', 'index'],
+            expected_show_node_prefs=dict(table=True, view=False, index=True),
+            expected_supported_types=dict(table='Tables', index='Indexes'),
+            expected_supported_types_skip=dict(table='Tables', view='Views',
+                                               index='Indexes'),
+            execute_dict_return_value=(
+                True, dict(rows=[
+                    dict(obj_name='name1', obj_type='table',
+                         obj_path='some/path', show_node=True,
+                         other_info=None, catalog_level='N'),
+                    dict(obj_name='name2', obj_type='view',
+                         obj_path='some1/path', show_node=True,
+                         other_info=None, catalog_level='D'),
+                    dict(obj_name='name3', obj_type='index',
+                         obj_path='some2/path1', show_node=True,
+                         other_info='oid', catalog_level='O'),
+                ])),
+            expected_search_op=(
+                True, [
+                    dict(name='name1', type='table', type_label='Tables',
+                         path='some/path',
+                         show_node=True, other_info=None, catalog_level='N'),
+                    dict(name='name2', type='view', type_label='Views',
+                         path='some1/path',
+                         show_node=True, other_info=None, catalog_level='D'),
+                    dict(name='name3', type='index', type_label='Indexes',
+                         path='some2/path1',
+                         show_node=True, other_info='oid', catalog_level='O'),
+                ]
+            )
+        ))
+    ]
+
+    def __create_manager(self):
+        connection = MagicMock(
+            execute_dict=MagicMock(),
+            db='somedb'
+        )
+        connection.execute_dict.return_value = self.execute_dict_return_value
+
+        def connection_function(did):
+            return connection
+
+        return MagicMock(
+            connection=connection_function
+        )
+
+    @patch('pgadmin.tools.search_objects.utils.get_node_blueprint')
+    @patch('pgadmin.tools.search_objects.utils.get_driver')
+    def runTest(self, get_driver_mock, get_node_blueprint_mock):
+        manager = self.__create_manager()
+
+        get_driver_mock.return_value = MagicMock(
+            connection_manager=lambda session_id: manager)
+
+        def __get_node_blueprint_mock(node_type):
+            blueprints = self.node_blueprints
+            blueprint = None
+            for data in blueprints:
+                if node_type == data['node_type']:
+                    blueprint = MagicMock(
+                        BackendSupported=MagicMock(
+                            return_value=data['backend_supported']),
+                        collection_label=data['coll_label'],
+                        show_node=data['backend_supported'],
+                    )
+            return blueprint
+
+        get_node_blueprint_mock.side_effect = __get_node_blueprint_mock
+
+        with self.app.app_context():
+
+            so_obj = SearchObjectsHelper(2, 18456,
+                                         node_types=self.all_node_types)
+            so_obj.get_sql = MagicMock(return_value='dummy query')
+
+            # test template path
+            manager.server_type = 'pg'
+            manager.version = 906000
+            self.assertEquals(so_obj.get_template_path(),
+                              'search_objects/sql/pg/#906000#')
+
+            self.assertEquals(so_obj.get_show_node_prefs(),
+                              self.expected_show_node_prefs)
+
+            self.assertEquals(so_obj.get_supported_types(),
+                              self.expected_supported_types)
+
+            self.assertEquals(so_obj.get_supported_types(skip_check=True),
+                              self.expected_supported_types_skip)
+
+            self.assertEquals(so_obj.search('searchtext', 'all'),
+                              self.expected_search_op)
diff --git a/web/pgadmin/tools/search_objects/utils.py b/web/pgadmin/tools/search_objects/utils.py
new file mode 100644
index 000000000..cf858d6e2
--- /dev/null
+++ b/web/pgadmin/tools/search_objects/utils.py
@@ -0,0 +1,131 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2020, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
+from flask import current_app, render_template
+from flask_babelex import gettext
+
+from pgadmin.utils.driver import get_driver
+from config import PG_DEFAULT_DRIVER
+
+
+def get_node_blueprint(node_type):
+    blueprint = None
+    node_type = 'NODE-' + node_type
+    if node_type in current_app.blueprints:
+        blueprint = current_app.blueprints[node_type]
+
+    return blueprint
+
+
+class SearchObjectsHelper:
+    def __init__(self, sid, did, show_system_objects=False, node_types=None):
+        self.sid = sid
+        self.did = did
+        self.show_system_objects = show_system_objects
+        self.manager = get_driver(
+            PG_DEFAULT_DRIVER
+        ).connection_manager(sid)
+
+        self._all_node_types = [
+            'cast', 'fts_dictionary', 'check_constraint',
+            'exclusion_constraint', 'foreign_key',
+            'primary_key', 'unique_constraint', 'constraints', 'trigger',
+            'table', 'compound_trigger', 'rule', 'column', 'partition',
+            'index', 'type', 'domain', 'domain_constraints', 'schema',
+            'synonym', 'sequence', 'edbvar', 'edbfunc', 'edbproc', 'package',
+            'foreign_table', 'fts_parser', 'function', 'procedure',
+            'trigger_function', 'fts_template', 'collation', 'view', 'mview',
+            'fts_configuration', 'extension', 'language',
+            'event_trigger', 'foreign_server', 'user_mapping',
+            'foreign_data_wrapper'
+        ] if node_types is None else node_types
+
+    @property
+    def all_node_types(self):
+        return self._all_node_types
+
+    def get_template_path(self):
+        return 'search_objects/sql/{0}/#{1}#'.format(
+            self.manager.server_type, self.manager.version)
+
+    def get_show_node_prefs(self):
+        return_types = {}
+        for node_type in self.all_node_types:
+            blueprint = get_node_blueprint(node_type)
+            if blueprint is None:
+                continue
+
+            return_types[node_type] = blueprint.show_node
+        return return_types
+
+    def get_supported_types(self, skip_check=False):
+        return_types = {}
+        for node_type in self.all_node_types:
+            blueprint = get_node_blueprint(node_type)
+            if blueprint is None:
+                continue
+
+            if blueprint.BackendSupported(self.manager, is_catalog=False,
+                                          did=self.did) or skip_check:
+                if node_type in ['edbfunc', 'edbproc']:
+                    return_types[node_type] =\
+                        gettext('Package {0}').format(
+                            blueprint.collection_label)
+                else:
+                    return_types[node_type] = blueprint.collection_label
+
+        return return_types
+
+    def get_sql(self, sql_file, **kwargs):
+        return render_template(
+            "/".join([self.get_template_path(), sql_file]),
+            **kwargs
+        )
+
+    def finalize_id_path(self, path, base_path):
+        if base_path is not None:
+            path = '{0}/{1}'.format(base_path, path)
+
+        return path
+
+    def search(self, text, obj_type=None):
+        conn = self.manager.connection(did=self.did)
+        last_system_oid = (self.manager.db_info[self.did])['datlastsysoid'] \
+            if self.manager.db_info is not None and self.did in \
+            self.manager.db_info else 0
+
+        show_node_prefs = self.get_show_node_prefs()
+        node_labels = self.get_supported_types(skip_check=True)
+        # Column catalog_level has values as
+        # N - Not a catalog schema
+        # D - Catalog schema with DB support - pg_catalog
+        # O - Catalog schema with object support only - info schema, dbo, sys
+        status, res = conn.execute_dict(
+            self.get_sql('search.sql', search_text=text, obj_type=obj_type,
+                         show_system_objects=self.show_system_objects,
+                         show_node_prefs=show_node_prefs, _=gettext,
+                         last_system_oid=last_system_oid)
+        )
+
+        if not status:
+            return status, res
+
+        ret_val = [
+            {
+                'name': row['obj_name'],
+                'type': row['obj_type'],
+                'type_label': node_labels[row['obj_type']],
+                'path': row['obj_path'],
+                'show_node': row['show_node'],
+                'other_info': row['other_info'],
+                'catalog_level': row['catalog_level'],
+            }
+            for row in res['rows']
+        ]
+        return True, ret_val
diff --git a/web/pgadmin/tools/sqleditor/static/css/sqleditor.css b/web/pgadmin/tools/sqleditor/static/css/sqleditor.css
index 52b821d8b..f9d15b8da 100644
--- a/web/pgadmin/tools/sqleditor/static/css/sqleditor.css
+++ b/web/pgadmin/tools/sqleditor/static/css/sqleditor.css
@@ -112,7 +112,7 @@ li {
   font-size: 9pt;
 }
 
-.slick-header-column.ui-state-default {
+#datagrid .slick-header-column.ui-state-default {
     height: 32px !important;
 }
 
diff --git a/web/regression/javascript/fake_endpoints.js b/web/regression/javascript/fake_endpoints.js
index fa01b3f89..157a34863 100644
--- a/web/regression/javascript/fake_endpoints.js
+++ b/web/regression/javascript/fake_endpoints.js
@@ -19,5 +19,7 @@ define(function () {
     'datagrid.initialize_query_tool_with_did': '/initialize/query_tool/<int:sgid>/<int:sid>/<int:did>',
     'restore.create_job': '/restore/job/<int:sid>',
     'datagrid.panel': '/panel/<int:trans_id>',
+    'search_objects.types': '/search_objects/types/<int:sid>/<int:did>',
+    'search_objects.search': '/search_objects/search/<int:sid>/<int:did>',
   };
 });
diff --git a/web/regression/javascript/search_objects/search_objects_dialog_spec.js b/web/regression/javascript/search_objects/search_objects_dialog_spec.js
new file mode 100644
index 000000000..039db1970
--- /dev/null
+++ b/web/regression/javascript/search_objects/search_objects_dialog_spec.js
@@ -0,0 +1,155 @@
+/////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2020, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////
+import SearchObjectsDialog from 'tools/search_objects/static/js/search_objects_dialog';
+import {TreeFake} from '../tree/tree_fake';
+import MockAdapter from 'axios-mock-adapter';
+import axios from 'axios/index';
+
+const context = describe;
+
+describe('SearchObjectsDialog', () => {
+  let soDialog;
+  let pgBrowser;
+  let jquerySpy;
+  let alertifySpy;
+
+  beforeEach(() => {
+    pgBrowser = {
+      treeMenu: new TreeFake(),
+      Nodes: {
+        server: {
+          hasId: true,
+          label: 'server',
+          getTreeNodeHierarchy: jasmine.createSpy('server.getTreeNodeHierarchy'),
+        },
+        database: {
+          hasId: true,
+          label: 'database',
+          getTreeNodeHierarchy: jasmine.createSpy('db.getTreeNodeHierarchy'),
+        },
+        schema: {
+          hasId: true,
+          label: 'schema',
+          getTreeNodeHierarchy: jasmine.createSpy('db.getTreeNodeHierarchy'),
+        },
+      },
+      stdW: {
+        sm: 500,
+        md: 700,
+        lg: 900,
+        default: 500,
+      },
+      stdH: {
+        sm: 200,
+        md: 400,
+        lg: 550,
+        default: 550,
+      },
+    };
+    pgBrowser.Nodes.server.hasId = true;
+    pgBrowser.Nodes.database.hasId = true;
+    jquerySpy = jasmine.createSpy('jquerySpy');
+
+    const hierarchy = {
+      children: [
+        {
+          id: 'root',
+          children: [
+            {
+              id: 'serverTreeNode',
+              data: {
+                _id: 10,
+                _type: 'server',
+                user: {name: 'username'},
+                label: 'theserver',
+              },
+              children: [
+                {
+                  id: 'some_database',
+                  data: {
+                    _type: 'database',
+                    _id: 11,
+                    label: 'thedatabase',
+                  },
+                },
+              ],
+            },
+            {
+              id: 'ppasServer',
+              data: {
+                _type: 'server',
+                server_type: 'ppas',
+                children: [
+                  {id: 'someNodeUnderneathPPASServer'},
+                ],
+              },
+            },
+          ],
+        },
+      ],
+    };
+
+    pgBrowser.treeMenu = TreeFake.build(hierarchy);
+  });
+
+  describe('#draw', () => {
+    let networkMock;
+    beforeEach(() => {
+      networkMock = new MockAdapter(axios);
+      alertifySpy = jasmine.createSpyObj('alertify', ['alert', 'dialog']);
+      alertifySpy['search_objects'] = jasmine.createSpy('search_objects');
+      soDialog = new SearchObjectsDialog(
+        pgBrowser,
+        jquerySpy,
+        alertifySpy,
+        null
+      );
+
+      pgBrowser.get_preference = jasmine.createSpy('get_preferences');
+    });
+
+    afterEach(() => {
+      networkMock.restore();
+    });
+
+    context('there are no ancestors of the type database', () => {
+      it('does not create a dialog', () => {
+        pgBrowser.treeMenu.selectNode([{id: 'serverTreeNode'}]);
+        soDialog.draw(null, null, null);
+        expect(alertifySpy['search_objects']).not.toHaveBeenCalled();
+      });
+
+      it('display an alert with a Backup Error', () => {
+        soDialog.draw(null, [{id: 'serverTreeNode'}], null);
+        expect(alertifySpy.alert).toHaveBeenCalledWith(
+          'Search Objects Error',
+          'Please select a database or its child node from the browser.'
+        );
+      });
+    });
+
+    context('there is an ancestor of the type database', () => {
+      let soDialogResizeToSpy;
+      beforeEach(() => {
+        soDialogResizeToSpy = jasmine.createSpyObj('soDialogResizeToSpy', ['resizeTo']);
+        alertifySpy['search_objects'].and
+          .returnValue(soDialogResizeToSpy);
+      });
+
+      it('displays the dialog when database node selected', (done) => {
+        soDialog.draw(null, [{id: 'some_database'}], null, pgBrowser.stdW.md, pgBrowser.stdH.md);
+        setTimeout(() => {
+          expect(alertifySpy['search_objects']).toHaveBeenCalledWith('Search Objects - thedatabase/username@theserver');
+          expect(soDialogResizeToSpy.resizeTo).toHaveBeenCalledWith(pgBrowser.stdW.md, pgBrowser.stdH.md);
+          done();
+        }, 0);
+      });
+    });
+  });
+});
diff --git a/web/regression/javascript/search_objects/search_objects_dialog_wrapper_spec.js b/web/regression/javascript/search_objects/search_objects_dialog_wrapper_spec.js
new file mode 100644
index 000000000..e3c698bb8
--- /dev/null
+++ b/web/regression/javascript/search_objects/search_objects_dialog_wrapper_spec.js
@@ -0,0 +1,545 @@
+/////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2020, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////
+
+import {TreeFake} from '../tree/tree_fake';
+import SearchObjectsDialogWrapper from 'tools/search_objects/static/js/search_objects_dialog_wrapper';
+import axios from 'axios/index';
+import MockAdapter from 'axios-mock-adapter';
+import {TreeNode} from '../../../pgadmin/static/js/tree/tree';
+
+let context = describe;
+
+describe('SearchObjectsDialogWrapper', () => {
+  let jquerySpy;
+  let pgBrowser;
+  let alertifySpy;
+  let dialogModelKlassSpy = null;
+  let backform;
+  let soDialogWrapper;
+  let noDataNode;
+  let serverTreeNode;
+  let databaseTreeNode;
+  let viewSchema;
+  let soJQueryContainerSpy;
+  let soNodeChildNodeSpy;
+  let soNode;
+
+  beforeEach(() => {
+    pgBrowser = {
+      treeMenu: new TreeFake(),
+      Nodes: {
+        server: {
+          hasId: true,
+          getTreeNodeHierarchy: jasmine.createSpy('getTreeNodeHierarchy'),
+        },
+        database: {
+          hasId: true,
+          getTreeNodeHierarchy: jasmine.createSpy('getTreeNodeHierarchy'),
+        },
+        'coll-sometype': {
+          type: 'coll-sometype',
+          hasId: false,
+          label: 'Some types coll',
+        },
+        sometype: {
+          type: 'sometype',
+          hasId: true,
+        },
+        someothertype: {
+          type: 'someothertype',
+          hasId: true,
+          collection_type: 'coll-sometype',
+        },
+        'coll-edbfunc': {
+          type: 'coll-edbfunc',
+          hasId: true,
+          label: 'Functions',
+        },
+        'coll-edbproc': {
+          type: 'coll-edbfunc',
+          hasId: true,
+          label: 'Procedures',
+        },
+        'coll-edbvar': {
+          type: 'coll-edbfunc',
+          hasId: true,
+          label: 'Variables',
+        },
+      },
+      keyboardNavigation: jasmine.createSpyObj('keyboardNavigation', ['getDialogTabNavigator']),
+    };
+    noDataNode = pgBrowser.treeMenu.addNewNode('level1.1', undefined, [{id: 'level1'}]);
+    serverTreeNode = pgBrowser.treeMenu.addNewNode('level2.1', {
+      _type: 'server',
+      _id: 10,
+      label: 'some-tree-label',
+    }, [{id: 'level2.1'}]);
+    databaseTreeNode = new TreeNode('database-tree-node', {
+      _type: 'database',
+      _id: 123,
+      _label: 'some-database-label',
+    }, [{id: 'database-tree-node'}]);
+    pgBrowser.treeMenu.addChild(serverTreeNode, databaseTreeNode);
+
+    jquerySpy = jasmine.createSpy('jquerySpy');
+    soNode = {
+      __internal: {
+        buttons: [{}, {}, {}, {
+          element: {
+            disabled: false,
+          },
+        }],
+      },
+      elements: {
+        body: {
+          childNodes: [
+            {},
+          ],
+        },
+        content: jasmine.createSpyObj('content', ['appendChild', 'attr']),
+      },
+    };
+
+    soJQueryContainerSpy = jasmine.createSpyObj('soJQueryContainer', ['get', 'attr']);
+    soJQueryContainerSpy.get.and.returnValue(soJQueryContainerSpy);
+
+    viewSchema = {};
+    backform = jasmine.createSpyObj('backform', ['generateViewSchema', 'Dialog']);
+    backform.generateViewSchema.and.returnValue(viewSchema);
+
+    soNodeChildNodeSpy = jasmine.createSpyObj('something', ['addClass']);
+    jquerySpy.and.callFake((selector) => {
+      if (selector === '<div class=\'search_objects_dialog\'></div>') {
+        return soJQueryContainerSpy;
+      } else if (selector === soNode.elements.body.childNodes[0]) {
+        return soNodeChildNodeSpy;
+      }
+    });
+    alertifySpy = jasmine.createSpyObj('alertify', ['alert', 'dialog']);
+
+  });
+
+  describe('#prepare', () => {
+    beforeEach(() => {
+      soDialogWrapper = new SearchObjectsDialogWrapper(
+        '<div class=\'search_objects_dialog\'></div>',
+        'soDialogTitle',
+        'search_objects',
+        jquerySpy,
+        pgBrowser,
+        alertifySpy,
+        dialogModelKlassSpy,
+        backform
+      );
+      soDialogWrapper = Object.assign(soDialogWrapper, soNode);
+      spyOn(soDialogWrapper, 'prepareDialog').and.callThrough();
+      spyOn(soDialogWrapper, 'setTypes');
+      spyOn(soDialogWrapper, 'setResultCount');
+    });
+
+    context('no tree element is selected', () => {
+      it('does not prepare dialog', () => {
+        spyOn(soDialogWrapper, 'prepareDialog');
+        soDialogWrapper.prepare();
+        expect(soDialogWrapper.prepareDialog).not.toHaveBeenCalled();
+      });
+    });
+
+    context('selected tree node has no data', () => {
+      beforeEach(() => {
+        pgBrowser.treeMenu.selectNode(noDataNode.domNode);
+      });
+
+      it('does not prepare the dialog', () => {
+        spyOn(soDialogWrapper, 'prepareDialog');
+        soDialogWrapper.prepare();
+        expect(soDialogWrapper.prepareDialog).not.toHaveBeenCalled();
+      });
+    });
+
+    context('tree element is selected', () => {
+      let gridDestroySpy;
+      let networkMock;
+
+      beforeEach(() => {
+        pgBrowser.treeMenu.selectNode(databaseTreeNode.domNode);
+        soDialogWrapper.grid = jasmine.createSpyObj('grid', ['destroy']);
+        spyOn(soDialogWrapper, 'showMessage');
+        gridDestroySpy = spyOn(soDialogWrapper.grid, 'destroy');
+
+        networkMock = new MockAdapter(axios);
+
+      });
+
+      afterEach(() => {
+        networkMock.restore();
+      });
+
+      it('creates dialog and displays it', () => {
+        soDialogWrapper.prepare();
+        expect(soDialogWrapper.prepareDialog).toHaveBeenCalled();
+        expect(soDialogWrapper.showMessage).toHaveBeenCalledWith(null);
+      });
+
+
+      it('if grid set then destroy it', () => {
+        soDialogWrapper.prepare();
+        expect(gridDestroySpy).toHaveBeenCalled();
+        expect(soDialogWrapper.grid).toBe(null);
+      });
+
+      it('set result count to 0', () => {
+        soDialogWrapper.prepare();
+        expect(soDialogWrapper.setResultCount).toHaveBeenCalledWith(0);
+      });
+
+      it('setTypes called before and after the ajax success', (done) => {
+        networkMock.onGet('/search_objects/types/10/123').reply(200, {
+          'data': {
+            'type1': 'Type Label 1',
+            'type2': 'Type Label 2',
+          },
+        });
+
+        soDialogWrapper.prepare();
+
+        expect(soDialogWrapper.setTypes.calls.argsFor(0)).toEqual([
+          [{ id: -1, text: 'Loading...', value: null }], false,
+        ]);
+
+        setTimeout(()=>{
+          expect(soDialogWrapper.setTypes.calls.argsFor(1)).toEqual([
+            [{id: 'all', text: 'All types'},
+              {id: 'type1', text: 'Type Label 1'},
+              {id: 'type2', text: 'Type Label 2'}],
+          ]);
+          done();
+        }, 0);
+      });
+
+      it('setTypes called after the ajax fail', (done) => {
+        networkMock.onGet('/search_objects/types/10/123').reply(500);
+
+        soDialogWrapper.prepare();
+
+        expect(soDialogWrapper.setTypes.calls.argsFor(0)).toEqual([
+          [{ id: -1, text: 'Loading...', value: null }], false,
+        ]);
+
+        setTimeout(()=>{
+          expect(soDialogWrapper.setTypes.calls.argsFor(1)).toEqual([
+            [{id: -1, text: 'Failed', value: null }], false,
+          ]);
+          done();
+        }, 0);
+      });
+    });
+  });
+
+  describe('showMessage', () => {
+    beforeEach(() => {
+      soDialogWrapper = new SearchObjectsDialogWrapper(
+        '<div class=\'search_objects_dialog\'></div>',
+        'soDialogTitle',
+        'search_objects',
+        jquerySpy,
+        pgBrowser,
+        alertifySpy,
+        dialogModelKlassSpy,
+        backform
+      );
+      soDialogWrapper.statusBar = document.createElement('div');
+      soDialogWrapper.statusBar.classList.add('d-none');
+      document.body.appendChild(soDialogWrapper.statusBar);
+    });
+
+    afterEach(() => {
+      document.body.removeChild(soDialogWrapper.statusBar);
+    });
+    it('when info message', ()=>{
+      soDialogWrapper.showMessage('locating', false);
+      expect(soDialogWrapper.statusBar.classList.contains('d-none')).toBe(false);
+      expect(soDialogWrapper.statusBar.querySelector('.error-in-footer')).toBe(null);
+      expect(soDialogWrapper.statusBar.querySelector('.info-in-footer')).not.toBe(null);
+      expect(soDialogWrapper.statusBar.querySelector('.alert-text').innerHTML).toEqual('locating');
+    });
+
+    it('when error message', ()=>{
+      soDialogWrapper.showMessage('some error', true);
+      expect(soDialogWrapper.statusBar.classList.contains('d-none')).toBe(false);
+      expect(soDialogWrapper.statusBar.querySelector('.error-in-footer')).not.toBe(null);
+      expect(soDialogWrapper.statusBar.querySelector('.info-in-footer')).toBe(null);
+      expect(soDialogWrapper.statusBar.querySelector('.alert-text').innerHTML).toEqual('some error');
+    });
+
+    it('when no message', ()=>{
+      soDialogWrapper.showMessage(null);
+      expect(soDialogWrapper.statusBar.classList.contains('d-none')).toBe(true);
+    });
+  });
+
+  describe('function', () => {
+    beforeEach(() => {
+      soDialogWrapper = new SearchObjectsDialogWrapper(
+        '<div class=\'search_objects_dialog\'></div>',
+        'soDialogTitle',
+        'search_objects',
+        jquerySpy,
+        pgBrowser,
+        alertifySpy,
+        dialogModelKlassSpy,
+        backform
+      );
+    });
+
+    it('updateDimOfSearchResult', ()=>{
+      soDialogWrapper.searchResultContainer = document.createElement('div');
+      soDialogWrapper.searchResult = document.createElement('div');
+      spyOn(soDialogWrapper.searchResultContainer, 'getBoundingClientRect').and.returnValue({height:100, width: 50});
+
+      soDialogWrapper.updateDimOfSearchResult();
+      expect(soDialogWrapper.searchResult.style.height).toEqual('100px');
+      expect(soDialogWrapper.searchResult.style.width).toEqual('50px');
+    });
+
+    it('setLoading', ()=>{
+      soDialogWrapper.loader = document.createElement('div');
+      soDialogWrapper.loader.innerHTML = `
+        <div class="pg-sp-text"></div>
+      `;
+
+      soDialogWrapper.setLoading('loading');
+      expect(soDialogWrapper.loader.classList.contains('d-none')).toBe(false);
+      expect(soDialogWrapper.loader.querySelector('.pg-sp-text').innerHTML).toEqual('loading');
+
+      soDialogWrapper.setLoading(null);
+      expect(soDialogWrapper.loader.classList.contains('d-none')).toBe(true);
+    });
+
+    it('searchBtnEnabled', ()=>{
+      soDialogWrapper.searchBtn = document.createElement('button');
+
+      soDialogWrapper.searchBtnEnabled(true);
+      expect(soDialogWrapper.searchBtn.disabled).toEqual(false);
+      expect(soDialogWrapper.searchBtnEnabled()).toEqual(true);
+
+      soDialogWrapper.searchBtnEnabled(false);
+      expect(soDialogWrapper.searchBtn.disabled).toEqual(true);
+      expect(soDialogWrapper.searchBtnEnabled()).toEqual(false);
+    });
+
+    it('searchBoxVal', ()=>{
+      soDialogWrapper.searchBox = document.createElement('input');
+      soDialogWrapper.searchBoxVal('abc');
+      expect(soDialogWrapper.searchBox.value).toEqual('abc');
+      expect(soDialogWrapper.searchBoxVal()).toEqual('abc');
+    });
+
+    it('typesVal', ()=>{
+      soDialogWrapper.typesSelect = document.createElement('select');
+      let opt = document.createElement('option');
+      opt.appendChild( document.createTextNode('Some type') );
+      opt.value = 'sometype';
+      soDialogWrapper.typesSelect.appendChild(opt);
+
+      soDialogWrapper.typesVal('sometype');
+      expect(soDialogWrapper.typesSelect.value).toEqual('sometype');
+      expect(soDialogWrapper.typesVal()).toEqual('sometype');
+    });
+
+    it('setGridData', ()=>{
+      soDialogWrapper.dataview = jasmine.createSpyObj('dataview', ['setItems']);
+      soDialogWrapper.setGridData([{id:'somedata'}]);
+      expect(soDialogWrapper.dataview.setItems).toHaveBeenCalled();
+    });
+
+    it('setGridData', ()=>{
+      soDialogWrapper.searchResultCount = document.createElement('span');
+
+      soDialogWrapper.setResultCount(0);
+      expect(soDialogWrapper.searchResultCount.innerHTML).toEqual('0 matches found.');
+
+      soDialogWrapper.setResultCount(1);
+      expect(soDialogWrapper.searchResultCount.innerHTML).toEqual('1 match found.');
+
+      soDialogWrapper.setResultCount();
+      expect(soDialogWrapper.searchResultCount.innerHTML).toEqual('Unknown matches found.');
+    });
+
+    it('onDialogResize', ()=>{
+      soDialogWrapper.grid = jasmine.createSpyObj('grid', ['autosizeColumns', 'resizeCanvas']);
+      spyOn(soDialogWrapper, 'updateDimOfSearchResult');
+
+      soDialogWrapper.onDialogResize();
+      expect(soDialogWrapper.updateDimOfSearchResult).toHaveBeenCalled();
+      expect(soDialogWrapper.grid.resizeCanvas).toHaveBeenCalled();
+      expect(soDialogWrapper.grid.autosizeColumns).toHaveBeenCalled();
+    });
+
+    it('onDialogShow', (done)=>{
+      spyOn(soDialogWrapper, 'prepareGrid').and.callFake(function() {
+        this.grid = jasmine.createSpyObj('grid', ['init']);
+      });
+
+      spyOn(soDialogWrapper, 'focusOnDialog');
+      spyOn(soDialogWrapper, 'updateDimOfSearchResult');
+      spyOn(soDialogWrapper, 'setGridData');
+      spyOn(soDialogWrapper, 'onDialogResize');
+
+
+      soDialogWrapper.onDialogShow();
+      setTimeout(()=>{
+        expect(soDialogWrapper.prepareGrid).toHaveBeenCalled();
+        expect(soDialogWrapper.focusOnDialog).toHaveBeenCalled();
+        expect(soDialogWrapper.setGridData).toHaveBeenCalledWith([]);
+        expect(soDialogWrapper.onDialogResize).toHaveBeenCalled();
+        done();
+      }, 750);
+    });
+
+    context('getCollNode', ()=>{
+      it('type have same coll node', ()=>{
+        let collNode = soDialogWrapper.getCollNode('sometype');
+        expect(collNode.type).toEqual('coll-sometype');
+      });
+
+      it('type does not same coll node', ()=>{
+        let collNode = soDialogWrapper.getCollNode('someothertype');
+        expect(collNode.type).toEqual('coll-sometype');
+      });
+
+      it('type does not have coll node at all', ()=>{
+        let collNode = soDialogWrapper.getCollNode('database');
+        expect(collNode).toBe(null);
+      });
+    });
+
+    it('finaliseData', ()=>{
+      spyOn(soDialogWrapper, 'translateSearchObjectsPath').and.returnValue(['disp/path', 'id/path']);
+      let data = soDialogWrapper.finaliseData({
+        name: 'objname',
+        type: 'sometype',
+        type_label: 'Some types coll',
+        path: ':some.123:/path',
+        show_node: true,
+      });
+      expect(data).toEqual({
+        id: 'id/path',
+        icon: 'icon-sometype',
+        name: 'objname',
+        type: 'sometype',
+        type_label: 'Some types coll',
+        path: 'disp/path',
+        id_path: 'id/path',
+        show_node: true,
+      });
+    });
+
+    context('translateSearchObjectsPath', ()=>{
+      let path = null, catalog_level = null;
+      beforeEach(()=>{
+        pgBrowser.Nodes = {
+          'server_group': {
+            type:'server_group',
+            label: 'Server group',
+          },
+          'server': {
+            type:'server',
+            label: 'Server',
+          },
+          'coll-database': {
+            type:'coll-database',
+            label: 'Databases',
+          },
+          'database': {
+            type:'database',
+            label: 'Database',
+          },
+          'coll-schema': {
+            type:'coll-schema',
+            label: 'Schemas',
+          },
+          'schema': {
+            type:'schema',
+            label: 'Schema',
+          },
+          'coll-table': {
+            type:'coll-table',
+            label: 'Tables',
+          },
+          'table': {
+            type:'table',
+            label: 'Table',
+          },
+          'sometype': {
+            type:'sometype',
+            label: 'Some type',
+            collection_type: 'coll-table',
+          },
+          'coll-catalog': {
+            type:'coll-catalog',
+            label: 'Catalogs',
+          },
+          'catalog': {
+            type:'catalog',
+            label: 'Catalog',
+          },
+          'coll-catalog_object': {
+            type:'coll-catalog_object',
+            label: 'Catalog Objects',
+          },
+          'catalog_object': {
+            type:'catalog_object',
+            label: 'catalog object',
+          },
+        };
+
+        soDialogWrapper.treeInfo = {
+          'server_group': {'id': 'server_group/1', '_id': 1},
+          'server': {'id': 'server/3', '_id': 3},
+          'database': {'id': 'database/18456', '_id': 18456},
+        };
+      });
+      it('regular schema', ()=>{
+        path = ':schema.2200:/test_db/:table.2604:/sampletab';
+        catalog_level = 'N';
+
+        let retVal = soDialogWrapper.translateSearchObjectsPath(path, catalog_level);
+        expect(retVal).toEqual([
+          'Schemas/test_db/Tables/sampletab',
+          ['server_group/1','server/3','coll-database/3','database/18456','coll-schema/18456','schema/2200','coll-table/2200','table/2604'],
+        ]);
+      });
+
+      context('catalog schema', ()=>{
+        it('with db support', ()=>{
+          path = ':schema.11:/PostgreSQL Catalog (pg_catalog)/:table.2604:/pg_class';
+          catalog_level = 'D';
+
+          let retVal = soDialogWrapper.translateSearchObjectsPath(path, catalog_level);
+          expect(retVal).toEqual([
+            'Catalogs/PostgreSQL Catalog (pg_catalog)/Tables/pg_class',
+            ['server_group/1','server/3','coll-database/3','database/18456','coll-catalog/18456','catalog/11','coll-table/11','table/2604'],
+          ]);
+        });
+
+        it('with object support only', ()=>{
+          path = ':schema.11:/ANSI (information_schema)/:table.2604:/attributes';
+          catalog_level = 'O';
+
+          let retVal = soDialogWrapper.translateSearchObjectsPath(path, catalog_level);
+          expect(retVal).toEqual([
+            'Catalogs/ANSI (information_schema)/Catalog Objects/attributes',
+            ['server_group/1','server/3','coll-database/3','database/18456','coll-catalog/18456','catalog/11','coll-catalog_object/11','catalog_object/2604'],
+          ]);
+        });
+      });
+    });
+  });
+});
diff --git a/web/regression/javascript/tree/tree_fake.js b/web/regression/javascript/tree/tree_fake.js
index c0c17796a..f476bb272 100644
--- a/web/regression/javascript/tree/tree_fake.js
+++ b/web/regression/javascript/tree/tree_fake.js
@@ -41,6 +41,9 @@ export class TreeFake extends Tree {
     this.aciTreeToOurTreeTranslator = {};
     this.aciTreeApi = jasmine.createSpyObj(
       'ACITreeApi', ['setInode', 'unload', 'deselect', 'select']);
+    this.aciTreeApi.unload.and.callFake(function(domNode, config) {
+      config.success();
+    });
   }
 
   addNewNode(id, data, domNode, path) {
diff --git a/web/regression/javascript/tree/tree_spec.js b/web/regression/javascript/tree/tree_spec.js
index bb607796c..038fcc24c 100644
--- a/web/regression/javascript/tree/tree_spec.js
+++ b/web/regression/javascript/tree/tree_spec.js
@@ -246,39 +246,70 @@ describe('tree tests', () => {
 
         tree.aciTreeApi = jasmine.createSpyObj(
           'ACITreeApi', ['setInode', 'unload', 'deselect', 'select']);
+        tree.aciTreeApi.unload.and.callFake((domNode, config) => {
+          config.success();
+        });
       });
 
-      it('reloads the node and its children', () => {
-        level2.reload(tree);
-        expect(tree.findNodeByDomElement([{id: 'level2'}])).toEqual(level2);
+      it('reloads the node and its children', (done) => {
+        level2.reload(tree)
+          .then(()=>{
+            expect(tree.findNodeByDomElement([{id: 'level2'}])).toEqual(level2);
+            done();
+          })
+          .catch((error)=>{
+            fail(error);
+          });
       });
 
-      it('does not reload the children of node', () => {
-        level2.reload(tree);
-        expect(tree.findNodeByDomElement([{id: 'level3'}])).toBeNull();
+      it('does not reload the children of node', (done) => {
+        level2.reload(tree)
+          .then(()=>{
+            expect(tree.findNodeByDomElement([{id: 'level3'}])).toBeNull();
+            done();
+          })
+          .catch((error)=>{
+            fail(error);
+          });
       });
 
       it('select the node', (done) => {
-        level2.reload(tree);
-        setTimeout(() => {
-          expect(tree.selected()).toEqual([{id: 'level2'}]);
-          done();
-        }, 20);
+        level2.reload(tree)
+          .then(()=>{
+            setTimeout(() => {
+              expect(tree.selected()).toEqual([{id: 'level2'}]);
+              done();
+            }, 20);
+          })
+          .catch((error)=>{
+            fail(error);
+          });
       });
 
       describe('ACITree specific', () => {
-        it('sets the current node as a Inode, changing the Icon back to +', () => {
-          level2.reload(tree);
-          expect(tree.aciTreeApi.setInode).toHaveBeenCalledWith([{id: 'level2'}]);
+        it('sets the current node as a Inode, changing the Icon back to +', (done) => {
+          level2.reload(tree)
+            .then(()=>{
+              expect(tree.aciTreeApi.setInode).toHaveBeenCalledWith([{id: 'level2'}]);
+              done();
+            })
+            .catch((error)=>{
+              fail(error);
+            });
         });
 
         it('deselect the node and selects it again to trigger ACI tree' +
           ' events', (done) => {
-          level2.reload(tree);
-          setTimeout(() => {
-            expect(tree.aciTreeApi.deselect).toHaveBeenCalledWith([{id: 'level2'}]);
-            done();
-          }, 20);
+          level2.reload(tree)
+            .then(()=>{
+              setTimeout(() => {
+                expect(tree.aciTreeApi.deselect).toHaveBeenCalledWith([{id: 'level2'}]);
+                done();
+              }, 20);
+            })
+            .catch((error)=>{
+              fail(error);
+            });
         });
       });
     });
@@ -292,17 +323,32 @@ describe('tree tests', () => {
         level2 = tree.addNewNode('level2', {data: 'data'}, ['<li>level2</li>'], ['level1']);
         tree.addNewNode('level3', {data: 'more data'}, ['<li>level3</li>'], ['level1', 'level2']);
         tree.aciTreeApi = jasmine.createSpyObj('ACITreeApi', ['unload']);
+        tree.aciTreeApi.unload.and.callFake((domNode, config) => {
+          config.success();
+        });
       });
 
-      it('unloads the children of the current node', () => {
-        level2.unload(tree);
-        expect(tree.findNodeByDomElement([{id: 'level2'}])).toEqual(level2);
-        expect(tree.findNodeByDomElement([{id: 'level3'}])).toBeNull();
+      it('unloads the children of the current node', (done) => {
+        level2.unload(tree)
+          .then(()=>{
+            expect(tree.findNodeByDomElement([{id: 'level2'}])).toEqual(level2);
+            expect(tree.findNodeByDomElement([{id: 'level3'}])).toBeNull();
+            done();
+          })
+          .catch((error)=>{
+            fail(error);
+          });
       });
 
-      it('calls unload on the ACI Tree', () => {
-        level2.unload(tree);
-        expect(tree.aciTreeApi.unload).toHaveBeenCalledWith(['<li>level2</li>']);
+      it('calls unload on the ACI Tree', (done) => {
+        level2.unload(tree)
+          .then(()=>{
+            expect(tree.aciTreeApi.unload).toHaveBeenCalledWith(['<li>level2</li>'], jasmine.any(Object));
+            done();
+          })
+          .catch((error)=>{
+            fail(error);
+          });
       });
     });
   });
diff --git a/web/webpack.config.js b/web/webpack.config.js
index 9fd0a32e9..29811388a 100644
--- a/web/webpack.config.js
+++ b/web/webpack.config.js
@@ -494,7 +494,8 @@ module.exports = [{
         ',pgadmin.tools.debugger.controller' +
         ',pgadmin.tools.debugger.direct' +
         ',pgadmin.node.pga_job' +
-        ',pgadmin.tools.schema_diff',
+        ',pgadmin.tools.schema_diff' +
+        ',pgadmin.tools.search_objects',
       },
     }, {
       test: require.resolve('snapsvg'),
diff --git a/web/webpack.shim.js b/web/webpack.shim.js
index fe5a74e53..bca198d6d 100644
--- a/web/webpack.shim.js
+++ b/web/webpack.shim.js
@@ -277,6 +277,8 @@ var webpackShimConfig = {
     'pgadmin.tools.restore': path.join(__dirname, './pgadmin/tools/restore/static/js/restore'),
     'pgadmin.tools.schema_diff': path.join(__dirname, './pgadmin/tools/schema_diff/static/js/schema_diff'),
     'pgadmin.tools.schema_diff_ui': path.join(__dirname, './pgadmin/tools/schema_diff/static/js/schema_diff_ui'),
+    'pgadmin.tools.search_objects': path.join(__dirname, './pgadmin/tools/search_objects/static/js/search_objects'),
+    'pgadmin.search_objects': path.join(__dirname, './pgadmin/tools/search_objects/static/js'),
     'pgadmin.tools.user_management': path.join(__dirname, './pgadmin/tools/user_management/static/js/user_management'),
     'pgadmin.user_management.current_user': '/user_management/current_user',
     'slick.pgadmin.editors': path.join(__dirname, './pgadmin/tools/../static/js/slickgrid/editors'),
diff --git a/web/webpack.test.config.js b/web/webpack.test.config.js
index 92f280cbc..b48d104ba 100644
--- a/web/webpack.test.config.js
+++ b/web/webpack.test.config.js
@@ -105,6 +105,7 @@ module.exports = {
       'pgadmin.browser.preferences': path.join(__dirname, './pgadmin/browser/static/js/preferences'),
       'pgadmin.browser.activity': path.join(__dirname, './pgadmin/browser/static/js/activity'),
       'bundled_codemirror': path.join(__dirname, './pgadmin/static/bundle/codemirror'),
+      'tools': path.join(__dirname, './pgadmin/tools/'),
     },
   },
 };
diff --git a/web/yarn.lock b/web/yarn.lock
index 73002f1c2..9fcfc2d75 100644
--- a/web/yarn.lock
+++ b/web/yarn.lock
@@ -29,12 +29,12 @@
     semver "^5.4.1"
     source-map "^0.5.0"
 
-"@babel/generator@^7.6.4", "@babel/generator@^7.8.6":
-  version "7.8.8"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.8.tgz#cdcd58caab730834cee9eeadb729e833b625da3e"
-  integrity sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg==
+"@babel/generator@^7.6.4", "@babel/generator@^7.9.0":
+  version "7.9.4"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.4.tgz#12441e90c3b3c4159cdecf312075bf1a8ce2dbce"
+  integrity sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==
   dependencies:
-    "@babel/types" "^7.8.7"
+    "@babel/types" "^7.9.0"
     jsesc "^2.5.1"
     lodash "^4.17.13"
     source-map "^0.5.0"
@@ -54,15 +54,6 @@
     "@babel/helper-explode-assignable-expression" "^7.8.3"
     "@babel/types" "^7.8.3"
 
-"@babel/helper-call-delegate@^7.8.7":
-  version "7.8.7"
-  resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.8.7.tgz#28a279c2e6c622a6233da548127f980751324cab"
-  integrity sha512-doAA5LAKhsFCR0LAFIf+r2RSMmC+m8f/oQ+URnUET/rWeEzC0yTRmAGyWkD4sSu3xwbS7MYQ2u+xlt1V5R56KQ==
-  dependencies:
-    "@babel/helper-hoist-variables" "^7.8.3"
-    "@babel/traverse" "^7.8.3"
-    "@babel/types" "^7.8.7"
-
 "@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8":
   version "7.8.8"
   resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087"
@@ -126,17 +117,17 @@
   dependencies:
     "@babel/types" "^7.8.3"
 
-"@babel/helper-module-transforms@^7.8.3":
-  version "7.8.6"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.8.6.tgz#6a13b5eecadc35692047073a64e42977b97654a4"
-  integrity sha512-RDnGJSR5EFBJjG3deY0NiL0K9TO8SXxS9n/MPsbPK/s9LbQymuLNtlzvDiNS7IpecuL45cMeLVkA+HfmlrnkRg==
+"@babel/helper-module-transforms@^7.9.0":
+  version "7.9.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5"
+  integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==
   dependencies:
     "@babel/helper-module-imports" "^7.8.3"
     "@babel/helper-replace-supers" "^7.8.6"
     "@babel/helper-simple-access" "^7.8.3"
     "@babel/helper-split-export-declaration" "^7.8.3"
     "@babel/template" "^7.8.6"
-    "@babel/types" "^7.8.6"
+    "@babel/types" "^7.9.0"
     lodash "^4.17.13"
 
 "@babel/helper-optimise-call-expression@^7.8.3":
@@ -194,6 +185,11 @@
   dependencies:
     "@babel/types" "^7.8.3"
 
+"@babel/helper-validator-identifier@^7.9.0":
+  version "7.9.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed"
+  integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==
+
 "@babel/helper-wrap-function@^7.8.3":
   version "7.8.3"
   resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610"
@@ -205,27 +201,27 @@
     "@babel/types" "^7.8.3"
 
 "@babel/helpers@^7.6.2":
-  version "7.8.4"
-  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.4.tgz#754eb3ee727c165e0a240d6c207de7c455f36f73"
-  integrity sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==
+  version "7.9.2"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f"
+  integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==
   dependencies:
     "@babel/template" "^7.8.3"
-    "@babel/traverse" "^7.8.4"
-    "@babel/types" "^7.8.3"
+    "@babel/traverse" "^7.9.0"
+    "@babel/types" "^7.9.0"
 
 "@babel/highlight@^7.8.3":
-  version "7.8.3"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797"
-  integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==
+  version "7.9.0"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079"
+  integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==
   dependencies:
+    "@babel/helper-validator-identifier" "^7.9.0"
     chalk "^2.0.0"
-    esutils "^2.0.2"
     js-tokens "^4.0.0"
 
-"@babel/parser@^7.6.4", "@babel/parser@^7.8.6":
-  version "7.8.8"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.8.tgz#4c3b7ce36db37e0629be1f0d50a571d2f86f6cd4"
-  integrity sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==
+"@babel/parser@^7.6.4", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0":
+  version "7.9.4"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8"
+  integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==
 
 "@babel/plugin-proposal-async-generator-functions@^7.2.0":
   version "7.8.3"
@@ -253,9 +249,9 @@
     "@babel/plugin-syntax-json-strings" "^7.8.0"
 
 "@babel/plugin-proposal-object-rest-spread@^7.6.2":
-  version "7.8.3"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz#eb5ae366118ddca67bed583b53d7554cad9951bb"
-  integrity sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==
+  version "7.9.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz#a28993699fc13df165995362693962ba6b061d6f"
+  integrity sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow==
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.3"
     "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
@@ -343,9 +339,9 @@
     lodash "^4.17.13"
 
 "@babel/plugin-transform-classes@^7.5.5":
-  version "7.8.6"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.6.tgz#77534447a477cbe5995ae4aee3e39fbc8090c46d"
-  integrity sha512-k9r8qRay/R6v5aWZkrEclEhKO6mc1CCQr2dLsVHBmOQiMpN6I2bpjX3vgnldUWeEI1GHVNByULVxZ4BdP4Hmdg==
+  version "7.9.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz#8603fc3cc449e31fdbdbc257f67717536a11af8d"
+  integrity sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ==
   dependencies:
     "@babel/helper-annotate-as-pure" "^7.8.3"
     "@babel/helper-define-map" "^7.8.3"
@@ -394,9 +390,9 @@
     "@babel/helper-plugin-utils" "^7.8.3"
 
 "@babel/plugin-transform-for-of@^7.4.4":
-  version "7.8.6"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.6.tgz#a051bd1b402c61af97a27ff51b468321c7c2a085"
-  integrity sha512-M0pw4/1/KI5WAxPsdcUL/w2LJ7o89YHN3yLkzNjg7Yl15GlVGgzHyCU+FMeAxevHGsLVmUqbirlUIKTafPmzdw==
+  version "7.9.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e"
+  integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.3"
 
@@ -423,40 +419,40 @@
     "@babel/helper-plugin-utils" "^7.8.3"
 
 "@babel/plugin-transform-modules-amd@^7.5.0":
-  version "7.8.3"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz#65606d44616b50225e76f5578f33c568a0b876a5"
-  integrity sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==
+  version "7.9.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4"
+  integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==
   dependencies:
-    "@babel/helper-module-transforms" "^7.8.3"
+    "@babel/helper-module-transforms" "^7.9.0"
     "@babel/helper-plugin-utils" "^7.8.3"
     babel-plugin-dynamic-import-node "^2.3.0"
 
 "@babel/plugin-transform-modules-commonjs@^7.6.0":
-  version "7.8.3"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz#df251706ec331bd058a34bdd72613915f82928a5"
-  integrity sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==
+  version "7.9.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940"
+  integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g==
   dependencies:
-    "@babel/helper-module-transforms" "^7.8.3"
+    "@babel/helper-module-transforms" "^7.9.0"
     "@babel/helper-plugin-utils" "^7.8.3"
     "@babel/helper-simple-access" "^7.8.3"
     babel-plugin-dynamic-import-node "^2.3.0"
 
 "@babel/plugin-transform-modules-systemjs@^7.5.0":
-  version "7.8.3"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz#d8bbf222c1dbe3661f440f2f00c16e9bb7d0d420"
-  integrity sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==
+  version "7.9.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90"
+  integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==
   dependencies:
     "@babel/helper-hoist-variables" "^7.8.3"
-    "@babel/helper-module-transforms" "^7.8.3"
+    "@babel/helper-module-transforms" "^7.9.0"
     "@babel/helper-plugin-utils" "^7.8.3"
     babel-plugin-dynamic-import-node "^2.3.0"
 
 "@babel/plugin-transform-modules-umd@^7.2.0":
-  version "7.8.3"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz#592d578ce06c52f5b98b02f913d653ffe972661a"
-  integrity sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==
+  version "7.9.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697"
+  integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==
   dependencies:
-    "@babel/helper-module-transforms" "^7.8.3"
+    "@babel/helper-module-transforms" "^7.9.0"
     "@babel/helper-plugin-utils" "^7.8.3"
 
 "@babel/plugin-transform-named-capturing-groups-regex@^7.6.3":
@@ -482,11 +478,10 @@
     "@babel/helper-replace-supers" "^7.8.3"
 
 "@babel/plugin-transform-parameters@^7.4.4":
-  version "7.8.8"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.8.tgz#0381de466c85d5404565243660c4496459525daf"
-  integrity sha512-hC4Ld/Ulpf1psQciWWwdnUspQoQco2bMzSrwU6TmzRlvoYQe4rQFy9vnCZDTlVeCQj0JPfL+1RX0V8hCJvkgBA==
+  version "7.9.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz#3028d0cc20ddc733166c6e9c8534559cee09f54a"
+  integrity sha512-fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg==
   dependencies:
-    "@babel/helper-call-delegate" "^7.8.7"
     "@babel/helper-get-function-arity" "^7.8.3"
     "@babel/helper-plugin-utils" "^7.8.3"
 
@@ -613,9 +608,9 @@
     semver "^5.5.0"
 
 "@babel/runtime@^7.8.4":
-  version "7.8.7"
-  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.7.tgz#8fefce9802db54881ba59f90bb28719b4996324d"
-  integrity sha512-+AATMUFppJDw6aiR5NVPHqIQBlV/Pj8wY/EZH+lmvRdUo9xBaz/rF3alAwFJQavvKfeOlPE7oaaDHVbcySbCsg==
+  version "7.9.2"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06"
+  integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==
   dependencies:
     regenerator-runtime "^0.13.4"
 
@@ -628,27 +623,27 @@
     "@babel/parser" "^7.8.6"
     "@babel/types" "^7.8.6"
 
-"@babel/traverse@^7.6.3", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.4", "@babel/traverse@^7.8.6":
-  version "7.8.6"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.6.tgz#acfe0c64e1cd991b3e32eae813a6eb564954b5ff"
-  integrity sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==
+"@babel/traverse@^7.6.3", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0":
+  version "7.9.0"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892"
+  integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==
   dependencies:
     "@babel/code-frame" "^7.8.3"
-    "@babel/generator" "^7.8.6"
+    "@babel/generator" "^7.9.0"
     "@babel/helper-function-name" "^7.8.3"
     "@babel/helper-split-export-declaration" "^7.8.3"
-    "@babel/parser" "^7.8.6"
-    "@babel/types" "^7.8.6"
+    "@babel/parser" "^7.9.0"
+    "@babel/types" "^7.9.0"
     debug "^4.1.0"
     globals "^11.1.0"
     lodash "^4.17.13"
 
-"@babel/types@^7.6.3", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.8.7":
-  version "7.8.7"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.7.tgz#1fc9729e1acbb2337d5b6977a63979b4819f5d1d"
-  integrity sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==
+"@babel/types@^7.6.3", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0":
+  version "7.9.0"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5"
+  integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==
   dependencies:
-    esutils "^2.0.2"
+    "@babel/helper-validator-identifier" "^7.9.0"
     lodash "^4.17.13"
     to-fast-properties "^2.0.0"
 
@@ -665,159 +660,158 @@
   integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==
 
 "@types/node@*":
-  version "13.9.2"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.2.tgz#ace1880c03594cc3e80206d96847157d8e7fa349"
-  integrity sha512-bnoqK579sAYrQbp73wwglccjJ4sfRdKU7WNEZ5FW4K2U6Kc0/eZ5kvXG0JKsEKFB50zrFmfFt52/cvBbZa7eXg==
+  version "13.11.0"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-13.11.0.tgz#390ea202539c61c8fa6ba4428b57e05bc36dc47b"
+  integrity sha512-uM4mnmsIIPK/yeO+42F2RQhGUIs39K2RFmugcJANppXe6J1nvH87PvzPZYpza7Xhhs8Yn9yIAVdLZ84z61+0xQ==
 
 "@types/q@^1.5.1":
   version "1.5.2"
   resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8"
   integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==
 
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359"
-  integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==
-  dependencies:
-    "@webassemblyjs/helper-module-context" "1.8.5"
-    "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
-    "@webassemblyjs/wast-parser" "1.8.5"
-
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721"
-  integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==
-
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7"
-  integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==
-
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204"
-  integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==
-
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e"
-  integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==
-  dependencies:
-    "@webassemblyjs/wast-printer" "1.8.5"
-
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452"
-  integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==
-
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245"
-  integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    mamacro "^0.0.3"
-
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61"
-  integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==
-
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf"
-  integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/helper-buffer" "1.8.5"
-    "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
-    "@webassemblyjs/wasm-gen" "1.8.5"
-
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e"
-  integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"
+  integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==
+  dependencies:
+    "@webassemblyjs/helper-module-context" "1.9.0"
+    "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+    "@webassemblyjs/wast-parser" "1.9.0"
+
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4"
+  integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==
+
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2"
+  integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==
+
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00"
+  integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==
+
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27"
+  integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==
+  dependencies:
+    "@webassemblyjs/wast-printer" "1.9.0"
+
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8"
+  integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==
+
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07"
+  integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==
+  dependencies:
+    "@webassemblyjs/ast" "1.9.0"
+
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790"
+  integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==
+
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346"
+  integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==
+  dependencies:
+    "@webassemblyjs/ast" "1.9.0"
+    "@webassemblyjs/helper-buffer" "1.9.0"
+    "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+    "@webassemblyjs/wasm-gen" "1.9.0"
+
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4"
+  integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==
   dependencies:
     "@xtuc/ieee754" "^1.2.0"
 
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10"
-  integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95"
+  integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==
   dependencies:
     "@xtuc/long" "4.2.2"
 
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc"
-  integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==
-
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a"
-  integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/helper-buffer" "1.8.5"
-    "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
-    "@webassemblyjs/helper-wasm-section" "1.8.5"
-    "@webassemblyjs/wasm-gen" "1.8.5"
-    "@webassemblyjs/wasm-opt" "1.8.5"
-    "@webassemblyjs/wasm-parser" "1.8.5"
-    "@webassemblyjs/wast-printer" "1.8.5"
-
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc"
-  integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
-    "@webassemblyjs/ieee754" "1.8.5"
-    "@webassemblyjs/leb128" "1.8.5"
-    "@webassemblyjs/utf8" "1.8.5"
-
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264"
-  integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/helper-buffer" "1.8.5"
-    "@webassemblyjs/wasm-gen" "1.8.5"
-    "@webassemblyjs/wasm-parser" "1.8.5"
-
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d"
-  integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/helper-api-error" "1.8.5"
-    "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
-    "@webassemblyjs/ieee754" "1.8.5"
-    "@webassemblyjs/leb128" "1.8.5"
-    "@webassemblyjs/utf8" "1.8.5"
-
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c"
-  integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/floating-point-hex-parser" "1.8.5"
-    "@webassemblyjs/helper-api-error" "1.8.5"
-    "@webassemblyjs/helper-code-frame" "1.8.5"
-    "@webassemblyjs/helper-fsm" "1.8.5"
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab"
+  integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==
+
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf"
+  integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==
+  dependencies:
+    "@webassemblyjs/ast" "1.9.0"
+    "@webassemblyjs/helper-buffer" "1.9.0"
+    "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+    "@webassemblyjs/helper-wasm-section" "1.9.0"
+    "@webassemblyjs/wasm-gen" "1.9.0"
+    "@webassemblyjs/wasm-opt" "1.9.0"
+    "@webassemblyjs/wasm-parser" "1.9.0"
+    "@webassemblyjs/wast-printer" "1.9.0"
+
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c"
+  integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==
+  dependencies:
+    "@webassemblyjs/ast" "1.9.0"
+    "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+    "@webassemblyjs/ieee754" "1.9.0"
+    "@webassemblyjs/leb128" "1.9.0"
+    "@webassemblyjs/utf8" "1.9.0"
+
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61"
+  integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==
+  dependencies:
+    "@webassemblyjs/ast" "1.9.0"
+    "@webassemblyjs/helper-buffer" "1.9.0"
+    "@webassemblyjs/wasm-gen" "1.9.0"
+    "@webassemblyjs/wasm-parser" "1.9.0"
+
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e"
+  integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==
+  dependencies:
+    "@webassemblyjs/ast" "1.9.0"
+    "@webassemblyjs/helper-api-error" "1.9.0"
+    "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+    "@webassemblyjs/ieee754" "1.9.0"
+    "@webassemblyjs/leb128" "1.9.0"
+    "@webassemblyjs/utf8" "1.9.0"
+
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914"
+  integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==
+  dependencies:
+    "@webassemblyjs/ast" "1.9.0"
+    "@webassemblyjs/floating-point-hex-parser" "1.9.0"
+    "@webassemblyjs/helper-api-error" "1.9.0"
+    "@webassemblyjs/helper-code-frame" "1.9.0"
+    "@webassemblyjs/helper-fsm" "1.9.0"
     "@xtuc/long" "4.2.2"
 
-"@webassemblyjs/[email protected]":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc"
-  integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==
+"@webassemblyjs/[email protected]":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899"
+  integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==
   dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/wast-parser" "1.8.5"
+    "@webassemblyjs/ast" "1.9.0"
+    "@webassemblyjs/wast-parser" "1.9.0"
     "@xtuc/long" "4.2.2"
 
 "@xtuc/ieee754@^1.2.0":
@@ -843,6 +837,11 @@ JSONStream@^1.0.3:
     jsonparse "^1.2.0"
     through ">=2.2.7 <3"
 
+abbrev@1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+  integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
+
 accepts@~1.3.4, accepts@~1.3.7:
   version "1.3.7"
   resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
@@ -919,7 +918,7 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.9.1:
 
 "alertifyjs@git+https://github.com/EnterpriseDB/AlertifyJS/#72c1d794f5b6d4ec13a68d123c08f19021afe263":
   version "1.7.1"
-  resolved "git+https://github.com/EnterpriseDB/AlertifyJS.git#72c1d794f5b6d4ec13a68d123c08f19021afe263"
+  resolved "git+https://github.com/EnterpriseDB/AlertifyJS/#72c1d794f5b6d4ec13a68d123c08f19021afe263"
 
 alphanum-sort@^1.0.0:
   version "1.0.2"
@@ -979,7 +978,7 @@ anymatch@~3.1.1:
     normalize-path "^3.0.0"
     picomatch "^2.0.4"
 
-aproba@^1.1.1:
+aproba@^1.0.3, aproba@^1.1.1:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
   integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
@@ -996,6 +995,14 @@ archive-type@^4.0.0:
   dependencies:
     file-type "^4.2.0"
 
+are-we-there-yet@~1.1.2:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
+  integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
+  dependencies:
+    delegates "^1.0.0"
+    readable-stream "^2.0.6"
+
 argparse@^1.0.6, argparse@^1.0.7:
   version "1.0.10"
   resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
@@ -1100,24 +1107,25 @@ atob@^2.1.2:
   integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
 
 autoprefixer@^9.6.4:
-  version "9.7.4"
-  resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.4.tgz#f8bf3e06707d047f0641d87aee8cfb174b2a5378"
-  integrity sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g==
+  version "9.7.5"
+  resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.5.tgz#8df10b9ff9b5814a8d411a5cfbab9c793c392376"
+  integrity sha512-URo6Zvt7VYifomeAfJlMFnYDhow1rk2bufwkbamPEAtQFcL11moLk4PnR7n9vlu7M+BkXAZkHFA0mIcY7tjQFg==
   dependencies:
-    browserslist "^4.8.3"
-    caniuse-lite "^1.0.30001020"
+    browserslist "^4.11.0"
+    caniuse-lite "^1.0.30001036"
     chalk "^2.4.2"
     normalize-range "^0.1.2"
     num2fraction "^1.2.2"
-    postcss "^7.0.26"
-    postcss-value-parser "^4.0.2"
+    postcss "^7.0.27"
+    postcss-value-parser "^4.0.3"
 
 axios-mock-adapter@^1.17.0:
-  version "1.17.0"
-  resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.17.0.tgz#0dbee43c606d4aaba5a43d88d96d6661a7cc3c04"
-  integrity sha512-q3efmwJUOO4g+wsLNSk9Ps1UlJoF3fQ3FSEe4uEEhkRtu7SoiAVPj8R3Hc/WP55MBTVFzaDP9QkdJhdVhP8A1Q==
+  version "1.18.1"
+  resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.18.1.tgz#a2ba2638ef513d954793f96bde3e26bd4a1b7940"
+  integrity sha512-kFBZsG1Ma5yxjRGHq5KuuL55mPb7WzFULhypquEhzPg8SH5CXICb+qwC2CCA5u+GQVpiqGPwKSRkd3mBCs6gdw==
   dependencies:
-    deep-equal "^1.0.1"
+    fast-deep-equal "^3.1.1"
+    is-buffer "^2.0.3"
 
 axios@^0.18.1:
   version "0.18.1"
@@ -1887,7 +1895,61 @@ browserify-zlib@^0.2.0, browserify-zlib@~0.2.0:
   dependencies:
     pako "~1.0.5"
 
-browserify@^16.1.0, browserify@~16.2.3:
+browserify@^16.1.0:
+  version "16.5.1"
+  resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.5.1.tgz#3c13c97436802930d5c3ae28658ddc33bfd37dc2"
+  integrity sha512-EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A==
+  dependencies:
+    JSONStream "^1.0.3"
+    assert "^1.4.0"
+    browser-pack "^6.0.1"
+    browser-resolve "^1.11.0"
+    browserify-zlib "~0.2.0"
+    buffer "~5.2.1"
+    cached-path-relative "^1.0.0"
+    concat-stream "^1.6.0"
+    console-browserify "^1.1.0"
+    constants-browserify "~1.0.0"
+    crypto-browserify "^3.0.0"
+    defined "^1.0.0"
+    deps-sort "^2.0.0"
+    domain-browser "^1.2.0"
+    duplexer2 "~0.1.2"
+    events "^2.0.0"
+    glob "^7.1.0"
+    has "^1.0.0"
+    htmlescape "^1.1.0"
+    https-browserify "^1.0.0"
+    inherits "~2.0.1"
+    insert-module-globals "^7.0.0"
+    labeled-stream-splicer "^2.0.0"
+    mkdirp-classic "^0.5.2"
+    module-deps "^6.0.0"
+    os-browserify "~0.3.0"
+    parents "^1.0.1"
+    path-browserify "~0.0.0"
+    process "~0.11.0"
+    punycode "^1.3.2"
+    querystring-es3 "~0.2.0"
+    read-only-stream "^2.0.0"
+    readable-stream "^2.0.2"
+    resolve "^1.1.4"
+    shasum "^1.0.0"
+    shell-quote "^1.6.1"
+    stream-browserify "^2.0.0"
+    stream-http "^3.0.0"
+    string_decoder "^1.1.1"
+    subarg "^1.0.0"
+    syntax-error "^1.1.1"
+    through2 "^2.0.0"
+    timers-browserify "^1.0.1"
+    tty-browserify "0.0.1"
+    url "~0.11.0"
+    util "~0.10.1"
+    vm-browserify "^1.0.0"
+    xtend "^4.0.0"
+
+browserify@~16.2.3:
   version "16.2.3"
   resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.2.3.tgz#7ee6e654ba4f92bce6ab3599c3485b1cc7a0ad0b"
   integrity sha512-zQt/Gd1+W+IY+h/xX2NYMW4orQWhqSwyV+xsblycTtpOuB27h1fZhhNQuipJ4t79ohw4P4mMem0jp/ZkISQtjQ==
@@ -1941,15 +2003,15 @@ browserify@^16.1.0, browserify@~16.2.3:
     vm-browserify "^1.0.0"
     xtend "^4.0.0"
 
-browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.8.3:
-  version "4.10.0"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.10.0.tgz#f179737913eaf0d2b98e4926ac1ca6a15cbcc6a9"
-  integrity sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==
+browserslist@^4.0.0, browserslist@^4.11.0, browserslist@^4.6.0, browserslist@^4.8.3:
+  version "4.11.1"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.1.tgz#92f855ee88d6e050e7e7311d987992014f1a1f1b"
+  integrity sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g==
   dependencies:
-    caniuse-lite "^1.0.30001035"
-    electron-to-chromium "^1.3.378"
-    node-releases "^1.1.52"
-    pkg-up "^3.1.0"
+    caniuse-lite "^1.0.30001038"
+    electron-to-chromium "^1.3.390"
+    node-releases "^1.1.53"
+    pkg-up "^2.0.0"
 
 buffer-alloc-unsafe@^1.1.0:
   version "1.1.0"
@@ -2001,6 +2063,14 @@ buffer@^5.0.2, buffer@^5.2.1:
     base64-js "^1.0.2"
     ieee754 "^1.1.4"
 
+buffer@~5.2.1:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6"
+  integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==
+  dependencies:
+    base64-js "^1.0.2"
+    ieee754 "^1.1.4"
+
 builtin-status-codes@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
@@ -2012,9 +2082,9 @@ [email protected]:
   integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
 
 cacache@^12.0.2, cacache@^12.0.3:
-  version "12.0.3"
-  resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390"
-  integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==
+  version "12.0.4"
+  resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c"
+  integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==
   dependencies:
     bluebird "^3.5.5"
     chownr "^1.1.1"
@@ -2146,10 +2216,10 @@ caniuse-api@^3.0.0:
     lodash.memoize "^4.1.2"
     lodash.uniq "^4.5.0"
 
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001035:
-  version "1.0.30001035"
-  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz#2bb53b8aa4716b2ed08e088d4dc816a5fe089a1e"
-  integrity sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001036, caniuse-lite@^1.0.30001038:
+  version "1.0.30001039"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001039.tgz#b3814a1c38ffeb23567f8323500c09526a577bbe"
+  integrity sha512-SezbWCTT34eyFoWHgx8UWso7YtvtM7oosmFoXbCkdC6qJzRfBTeTgE9REtKtiuKXuMwWTZEvdnFNGAyVMorv8Q==
 
 caw@^2.0.0, caw@^2.0.1:
   version "2.0.1"
@@ -2191,7 +2261,22 @@ check-types@^8.0.3:
   resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552"
   integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==
 
-"chokidar@>=2.0.0 <4.0.0", chokidar@^2.0.2, chokidar@^2.1.1:
+"chokidar@>=2.0.0 <4.0.0", chokidar@^3.0.0:
+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450"
+  integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==
+  dependencies:
+    anymatch "~3.1.1"
+    braces "~3.0.2"
+    glob-parent "~5.1.0"
+    is-binary-path "~2.1.0"
+    is-glob "~4.0.1"
+    normalize-path "~3.0.0"
+    readdirp "~3.3.0"
+  optionalDependencies:
+    fsevents "~2.1.2"
+
+chokidar@^2.1.1, chokidar@^2.1.8:
   version "2.1.8"
   resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
   integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
@@ -2210,21 +2295,6 @@ check-types@^8.0.3:
   optionalDependencies:
     fsevents "^1.2.7"
 
-chokidar@^3.0.0:
-  version "3.3.1"
-  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450"
-  integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==
-  dependencies:
-    anymatch "~3.1.1"
-    braces "~3.0.2"
-    glob-parent "~5.1.0"
-    is-binary-path "~2.1.0"
-    is-glob "~4.0.1"
-    normalize-path "~3.0.0"
-    readdirp "~3.3.0"
-  optionalDependencies:
-    fsevents "~2.1.2"
-
 chownr@^1.1.1, chownr@^1.1.2:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
@@ -2306,10 +2376,15 @@ coa@^2.0.2:
     chalk "^2.4.1"
     q "^1.1.2"
 
+code-point-at@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+  integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
+
 codemirror@^5.50.0:
-  version "5.52.0"
-  resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.52.0.tgz#4dbd6aef7f0e63db826b9a23922f0c03ac75c0a7"
-  integrity sha512-K2UB6zjscrfME03HeRe/IuOmCeqNpw7PLKGHThYpLbZEuKf+ZoujJPhxZN4hHJS1O7QyzEsV7JJZGxuQWVaFCg==
+  version "5.52.2"
+  resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.52.2.tgz#c29e1f7179f85eb0dd17c0586fa810e4838ff584"
+  integrity sha512-WCGCixNUck2HGvY8/ZNI1jYfxPG5cRHv0VjmWuNzbtCLz8qYA5d+je4QhSSCtCaagyeOwMi/HmmPTjBgiTm2lQ==
 
 collection-visit@^1.0.0:
   version "1.0.0"
@@ -2326,11 +2401,16 @@ color-convert@^1.9.0, color-convert@^1.9.1:
   dependencies:
     color-name "1.1.3"
 
[email protected], color-name@^1.0.0:
[email protected]:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
   integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
 
+color-name@^1.0.0:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
 color-string@^1.5.2:
   version "1.5.3"
   resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
@@ -2442,6 +2522,11 @@ console-browserify@^1.1.0:
   resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
   integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
 
+console-control-strings@^1.0.0, console-control-strings@~1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
+  integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
+
 console-stream@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44"
@@ -2464,7 +2549,14 @@ content-type@~1.0.4:
   resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
   integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
 
-convert-source-map@^1.1.0, convert-source-map@^1.1.3, convert-source-map@~1.1.0:
+convert-source-map@^1.1.0, convert-source-map@^1.1.3:
+  version "1.7.0"
+  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
+  integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
+  dependencies:
+    safe-buffer "~5.1.1"
+
+convert-source-map@~1.1.0:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860"
   integrity sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=
@@ -2679,6 +2771,14 @@ [email protected]:
     mdn-data "2.0.4"
     source-map "^0.6.1"
 
[email protected]:
+  version "1.0.0-alpha.39"
+  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb"
+  integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==
+  dependencies:
+    mdn-data "2.0.6"
+    source-map "^0.6.1"
+
 css-what@^3.2.1:
   version "3.2.1"
   resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1"
@@ -2758,11 +2858,11 @@ cssnano@^4.1.10:
     postcss "^7.0.0"
 
 csso@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.2.tgz#e5f81ab3a56b8eefb7f0092ce7279329f454de3d"
-  integrity sha512-kS7/oeNVXkHWxby5tHVxlhjizRCSv8QdU7hB2FpdAibDU8FjTAolhNjKNTiLzXtUrKT6HwClE81yXwEk1309wg==
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903"
+  integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==
   dependencies:
-    css-tree "1.0.0-alpha.37"
+    css-tree "1.0.0-alpha.39"
 
 cubic2quad@^1.0.0:
   version "1.1.1"
@@ -2819,7 +2919,7 @@ debug@=3.1.0, debug@~3.1.0:
   dependencies:
     ms "2.0.0"
 
-debug@^3.2.6:
+debug@^3.0.0, debug@^3.2.6:
   version "3.2.6"
   resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
   integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
@@ -2890,9 +2990,9 @@ decompress-unzip@^4.0.1:
     yauzl "^2.4.2"
 
 decompress@^4.0.0, decompress@^4.2.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d"
-  integrity sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118"
+  integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==
   dependencies:
     decompress-tar "^4.0.0"
     decompress-tarbz2 "^4.0.0"
@@ -2903,17 +3003,10 @@ decompress@^4.0.0, decompress@^4.2.0:
     pify "^2.3.0"
     strip-dirs "^2.0.0"
 
-deep-equal@^1.0.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
-  integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==
-  dependencies:
-    is-arguments "^1.0.4"
-    is-date-object "^1.0.1"
-    is-regex "^1.0.4"
-    object-is "^1.0.1"
-    object-keys "^1.1.1"
-    regexp.prototype.flags "^1.2.0"
+deep-extend@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+  integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
 
 deep-is@~0.1.3:
   version "0.1.3"
@@ -2954,6 +3047,11 @@ defined@^1.0.0:
   resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
   integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
 
+delegates@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+  integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
+
 depd@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
@@ -2987,6 +3085,11 @@ detect-file@^1.0.0:
   resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
   integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=
 
+detect-libc@^1.0.2:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
+  integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
+
 detective@^5.2.0:
   version "5.2.0"
   resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b"
@@ -3150,14 +3253,14 @@ ejs@^2.6.1:
   integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
 
 ejs@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.0.1.tgz#30c8f6ee9948502cc32e85c37a3f8b39b5a614a5"
-  integrity sha512-cuIMtJwxvzumSAkqaaoGY/L6Fc/t6YvoP9/VIaK0V/CyqKLEQ8sqODmYfy/cjXEdZ9+OOL8TecbJu+1RsofGDw==
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.0.2.tgz#745b01cdcfe38c1c6a2da3bbb2d9957060a31226"
+  integrity sha512-IncmUpn1yN84hy2shb0POJ80FWrfGNY0cxO9f4v+/sG7qcBvAtVWUA1IdzY/8EYUmOVhoKJVdJjNd3AZcnxOjA==
 
-electron-to-chromium@^1.3.378:
-  version "1.3.379"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.379.tgz#81dc5e82a3e72bbb830d93e15bc35eda2bbc910e"
-  integrity sha512-NK9DBBYEBb5f9D7zXI0hiE941gq3wkBeQmXs1ingigA/jnTg5mhwY2Z5egwA+ZI8OLGKCx0h1Cl8/xeuIBuLlg==
+electron-to-chromium@^1.3.390:
+  version "1.3.397"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.397.tgz#db640c2e67b08d590a504c20b56904537aa2bafa"
+  integrity sha512-zcUd1p/7yzTSdWkCTrqGvbnEOASy96d0RJL/lc5BDJoO23Z3G/VHd0yIPbguDU9n8QNUTCigLO7oEdtOb7fp2A==
 
 elliptic@^6.0.0:
   version "6.5.2"
@@ -3281,10 +3384,10 @@ error-ex@^1.2.0, error-ex@^1.3.1:
   dependencies:
     is-arrayish "^0.2.1"
 
-es-abstract@^1.17.0-next.1, es-abstract@^1.17.2:
-  version "1.17.4"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184"
-  integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==
+es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5:
+  version "1.17.5"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9"
+  integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==
   dependencies:
     es-to-primitive "^1.2.1"
     function-bind "^1.1.1"
@@ -3394,11 +3497,11 @@ esprima@^4.0.0:
   integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
 
 esquery@^1.0.1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.1.0.tgz#c5c0b66f383e7656404f86b31334d72524eddb48"
-  integrity sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q==
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.2.0.tgz#a010a519c0288f2530b3404124bfb5f02e9797fe"
+  integrity sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==
   dependencies:
-    estraverse "^4.0.0"
+    estraverse "^5.0.0"
 
 esrecurse@^4.1.0:
   version "4.2.1"
@@ -3407,11 +3510,16 @@ esrecurse@^4.1.0:
   dependencies:
     estraverse "^4.1.0"
 
-estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
+estraverse@^4.1.0, estraverse@^4.1.1:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
   integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
 
+estraverse@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.0.0.tgz#ac81750b482c11cca26e4b07e83ed8f75fbcdc22"
+  integrity sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==
+
 estree-walker@^0.6.1:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362"
@@ -3662,9 +3770,9 @@ fd-slicer@~1.1.0:
     pend "~1.2.0"
 
 figgy-pudding@^3.5.1:
-  version "3.5.1"
-  resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
-  integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==
+  version "3.5.2"
+  resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
+  integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==
 
 figures@^1.3.5:
   version "1.7.0"
@@ -3806,6 +3914,13 @@ find-up@^1.0.0:
     path-exists "^2.0.0"
     pinkie-promise "^2.0.0"
 
+find-up@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+  integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
+  dependencies:
+    locate-path "^2.0.0"
+
 find-up@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
@@ -3848,9 +3963,9 @@ flat-cache@^2.0.1:
     write "1.0.3"
 
 flatted@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08"
-  integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
+  integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
 
 "flotr2@git+https://github.com/EnterpriseDB/Flotr2.git":
   version "0.1.0"
@@ -3864,13 +3979,20 @@ flush-write-stream@^1.0.0:
     inherits "^2.0.3"
     readable-stream "^2.3.6"
 
[email protected], follow-redirects@^1.0.0:
[email protected]:
   version "1.5.10"
   resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a"
   integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==
   dependencies:
     debug "=3.1.0"
 
+follow-redirects@^1.0.0:
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.11.0.tgz#afa14f08ba12a52963140fe43212658897bc0ecb"
+  integrity sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA==
+  dependencies:
+    debug "^3.0.0"
+
 font-awesome@^4.7.0:
   version "4.7.0"
   resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133"
@@ -3927,6 +4049,13 @@ fs-extra@^7.0.1:
     jsonfile "^4.0.0"
     universalify "^0.1.0"
 
+fs-minipass@^1.2.5:
+  version "1.2.7"
+  resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
+  integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
+  dependencies:
+    minipass "^2.6.0"
+
 fs-minipass@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
@@ -3972,6 +4101,20 @@ functional-red-black-tree@^1.0.1:
   resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
   integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
 
+gauge@~2.7.3:
+  version "2.7.4"
+  resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
+  integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
+  dependencies:
+    aproba "^1.0.3"
+    console-control-strings "^1.0.0"
+    has-unicode "^2.0.0"
+    object-assign "^4.1.0"
+    signal-exit "^3.0.0"
+    string-width "^1.0.1"
+    strip-ansi "^3.0.1"
+    wide-align "^1.1.0"
+
 geometry-interfaces@^1.1.4:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/geometry-interfaces/-/geometry-interfaces-1.1.4.tgz#9e82af6700ca639a675299f08e1f5fbc4a79d48d"
@@ -4043,9 +4186,9 @@ glob-parent@^3.1.0:
     path-dirname "^1.0.0"
 
 glob-parent@~5.1.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2"
-  integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
+  integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
   dependencies:
     is-glob "^4.0.1"
 
@@ -4237,6 +4380,11 @@ has-to-string-tag-x@^1.2.0:
   dependencies:
     has-symbol-support-x "^1.4.1"
 
+has-unicode@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+  integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
+
 has-value@^0.3.1:
   version "0.3.1"
   resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
@@ -4352,7 +4500,7 @@ [email protected]:
   resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2"
   integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==
 
[email protected], http-errors@~1.7.2:
[email protected]:
   version "1.7.2"
   resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
   integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
@@ -4363,6 +4511,17 @@ [email protected], http-errors@~1.7.2:
     statuses ">= 1.5.0 < 2"
     toidentifier "1.0.0"
 
+http-errors@~1.7.2:
+  version "1.7.3"
+  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
+  integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
+  dependencies:
+    depd "~1.1.2"
+    inherits "2.0.4"
+    setprototypeof "1.1.1"
+    statuses ">= 1.5.0 < 2"
+    toidentifier "1.0.0"
+
 http-proxy@^1.13.0:
   version "1.18.0"
   resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a"
@@ -4388,7 +4547,7 @@ iconfont-webpack-plugin@^4.2.1:
     svgicons2svgfont "9.1.1"
     ttf2woff "2.0.1"
 
[email protected], iconv-lite@^0.4.24:
[email protected], iconv-lite@^0.4.24, iconv-lite@^0.4.4:
   version "0.4.24"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
   integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -4417,6 +4576,13 @@ iferr@^0.1.5:
   resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
   integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
 
+ignore-walk@^3.0.1:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37"
+  integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==
+  dependencies:
+    minimatch "^3.0.4"
+
 ignore@^3.3.5:
   version "3.3.10"
   resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
@@ -4509,9 +4675,9 @@ imagemin@^5.3.1:
     replace-ext "^1.0.0"
 
 immutability-helper@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/immutability-helper/-/immutability-helper-3.0.1.tgz#4f609c5afbf8d78cb297970e8af2fba8b0eda1d6"
-  integrity sha512-U92ROQQt7XkIwrdqCByUI118TQM1hXdKnRQpvKeA0HRyGSnJipu9IWHe4UD8zCN00O8UnQjQzPCgZ1CC3yBzHA==
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/immutability-helper/-/immutability-helper-3.0.2.tgz#e9187158b47c93368a92e84c31714c4b3dff30b0"
+  integrity sha512-fcrJ26wpvUcuGRpoGY4hyQ/JOeR1HAunMmE3C0XYXSe6plAGtgTlB2S4BzueBANCPrDJ7AByL1yrIRLIlVfwpA==
   dependencies:
     invariant "^2.2.4"
 
@@ -4606,7 +4772,7 @@ inflight@^1.0.4:
     once "^1.3.0"
     wrappy "1"
 
-inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
+inherits@2, [email protected], inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -4621,7 +4787,7 @@ [email protected]:
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
   integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
 
-ini@^1.3.4, ini@^1.3.5:
+ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
   version "1.3.5"
   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
   integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
@@ -4726,11 +4892,6 @@ is-accessor-descriptor@^1.0.0:
   dependencies:
     kind-of "^6.0.0"
 
-is-arguments@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3"
-  integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==
-
 is-arrayish@^0.2.1:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
@@ -4760,7 +4921,7 @@ is-buffer@^1.1.0, is-buffer@^1.1.5:
   resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
   integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
 
-is-buffer@^2.0.2:
+is-buffer@^2.0.2, is-buffer@^2.0.3:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623"
   integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==
@@ -4858,6 +5019,13 @@ is-finite@^1.0.0:
   resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3"
   integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==
 
+is-fullwidth-code-point@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+  integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
+  dependencies:
+    number-is-nan "^1.0.0"
+
 is-fullwidth-code-point@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
@@ -4938,7 +5106,7 @@ is-promise@^2.1.0:
   resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
   integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
 
-is-regex@^1.0.4, is-regex@^1.0.5:
+is-regex@^1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae"
   integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==
@@ -5043,7 +5211,12 @@ isurl@^1.0.0-alpha5:
     has-to-string-tag-x "^1.2.0"
     is-object "^1.0.1"
 
-jasmine-core@^3.3, jasmine-core@~3.3.0:
+jasmine-core@^3.3:
+  version "3.5.0"
+  resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.5.0.tgz#132c23e645af96d85c8bca13c8758b18429fc1e4"
+  integrity sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA==
+
+jasmine-core@~3.3.0:
   version "3.3.0"
   resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.3.0.tgz#dea1cdc634bc93c7e0d4ad27185df30fa971b10e"
   integrity sha512-3/xSmG/d35hf80BEN66Y6g9Ca5l/Isdeg/j6zvbTYlTzeKinzmaTM4p9am5kYqOmE05D7s1t8FGjzdSnbUbceA==
@@ -5057,9 +5230,9 @@ jest-worker@^24.9.0:
     supports-color "^6.1.0"
 
 jest-worker@^25.1.0:
-  version "25.1.0"
-  resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.1.0.tgz#75d038bad6fdf58eba0d2ec1835856c497e3907a"
-  integrity sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==
+  version "25.2.6"
+  resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.2.6.tgz#d1292625326794ce187c38f51109faced3846c58"
+  integrity sha512-FJn9XDUSxcOR4cwDzRfL1z56rUofNTFs539FGASpd50RHdb6EVkhxQqktodW2mI49l+W3H+tFJDotCHUQF6dmA==
   dependencies:
     merge-stream "^2.0.0"
     supports-color "^7.0.0"
@@ -5089,16 +5262,16 @@ js-string-escape@^1.0.0:
   resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef"
   integrity sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=
 
-"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
-  integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
-
-js-tokens@^4.0.0:
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
   integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
 
+js-tokens@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
+  integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
+
 js-yaml@^3.12.0, js-yaml@^3.13.1:
   version "3.13.1"
   resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
@@ -5164,9 +5337,9 @@ json5@^1.0.1:
     minimist "^1.2.0"
 
 json5@^2.1.0:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e"
-  integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"
+  integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==
   dependencies:
     minimist "^1.2.5"
 
@@ -5213,9 +5386,9 @@ karma-chrome-launcher@^2.2.0:
     which "^1.2.1"
 
 karma-jasmine-html-reporter@^1.4.0:
-  version "1.5.2"
-  resolved "https://registry.yarnpkg.com/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.2.tgz#a846b703dbe5c8d803481e68636eb93346dc5966"
-  integrity sha512-ILBPsXqQ3eomq+oaQsM311/jxsypw5/d0LnZXj26XkfThwq7jZ55A2CFSKJVA5VekbbOGvMyv7d3juZj0SeTxA==
+  version "1.5.3"
+  resolved "https://registry.yarnpkg.com/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.3.tgz#c724078436ed7b7d17a47e79164af36eed2d2713"
+  integrity sha512-ci0VrjuCaFj+9d1tYlTE3KIPUCp0rz874zWWU3JgCMqGIyw5ke+BXWFPOAGAqUdCJcrMwneyvp1zFXA74MiPUA==
 
 karma-jasmine@~2.0.1:
   version "2.0.1"
@@ -5388,6 +5561,14 @@ [email protected], loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.0.
     emojis-list "^3.0.0"
     json5 "^1.0.1"
 
+locate-path@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+  integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
+  dependencies:
+    p-locate "^2.0.0"
+    path-exists "^3.0.0"
+
 locate-path@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
@@ -5524,11 +5705,6 @@ make-dir@^3.0.2:
   dependencies:
     semver "^6.0.0"
 
-mamacro@^0.0.3:
-  version "0.0.3"
-  resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4"
-  integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==
-
 map-age-cleaner@^0.1.1:
   version "0.1.3"
   resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
@@ -5554,9 +5730,9 @@ map-visit@^1.0.0:
     object-visit "^1.0.0"
 
 marked@^0.8.0:
-  version "0.8.1"
-  resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.1.tgz#a233f39572fab15ede53a3c3be8a139bff86d2dd"
-  integrity sha512-tZfJS8uE0zpo7xpTffwFwYRfW9AzNcdo04Qcjs+C9+oCy8MSRD2reD5iDVtYx8mtLaqsGughw/YLlcwNxAHA1g==
+  version "0.8.2"
+  resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.2.tgz#4faad28d26ede351a7a1aaa5fec67915c869e355"
+  integrity sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==
 
 md5.js@^1.3.4:
   version "1.3.5"
@@ -5572,6 +5748,11 @@ [email protected]:
   resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
   integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
 
[email protected]:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978"
+  integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==
+
 [email protected]:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -5759,6 +5940,14 @@ minipass-pipeline@^1.2.2:
   dependencies:
     minipass "^3.0.0"
 
+minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
+  version "2.9.0"
+  resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
+  integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
+  dependencies:
+    safe-buffer "^5.1.2"
+    yallist "^3.0.0"
+
 minipass@^3.0.0, minipass@^3.1.1:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5"
@@ -5766,6 +5955,13 @@ minipass@^3.0.0, minipass@^3.1.1:
   dependencies:
     yallist "^4.0.0"
 
+minizlib@^1.2.1:
+  version "1.3.3"
+  resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
+  integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
+  dependencies:
+    minipass "^2.9.0"
+
 mississippi@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
@@ -5790,10 +5986,15 @@ mixin-deep@^1.2.0:
     for-in "^1.0.2"
     is-extendable "^1.0.1"
 
-mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1:
-  version "0.5.3"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.3.tgz#5a514b7179259287952881e94410ec5465659f8c"
-  integrity sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==
+mkdirp-classic@^0.5.2:
+  version "0.5.2"
+  resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz#54c441ce4c96cd7790e10b41a87aa51068ecab2b"
+  integrity sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g==
+
+mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1:
+  version "0.5.5"
+  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
+  integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
   dependencies:
     minimist "^1.2.5"
 
@@ -5917,6 +6118,15 @@ neatequal@^1.0.0:
   dependencies:
     varstream "^0.3.2"
 
+needle@^2.2.1:
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.1.tgz#14af48732463d7475696f937626b1b993247a56a"
+  integrity sha512-x/gi6ijr4B7fwl6WYL9FwlCvRQKGlUNvnceho8wxkwXqN8jvVmmmATTmZPRRG7b/yC1eode26C2HO9jl78Du9g==
+  dependencies:
+    debug "^3.2.6"
+    iconv-lite "^0.4.4"
+    sax "^1.2.4"
+
 [email protected]:
   version "0.6.2"
   resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
@@ -5961,12 +6171,34 @@ node-libs-browser@^2.2.1:
     util "^0.11.0"
     vm-browserify "^1.0.1"
 
-node-releases@^1.1.52:
-  version "1.1.52"
-  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.52.tgz#bcffee3e0a758e92e44ecfaecd0a47554b0bcba9"
-  integrity sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ==
+node-pre-gyp@*:
+  version "0.14.0"
+  resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83"
+  integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==
   dependencies:
-    semver "^6.3.0"
+    detect-libc "^1.0.2"
+    mkdirp "^0.5.1"
+    needle "^2.2.1"
+    nopt "^4.0.1"
+    npm-packlist "^1.1.6"
+    npmlog "^4.0.2"
+    rc "^1.2.7"
+    rimraf "^2.6.1"
+    semver "^5.3.0"
+    tar "^4.4.2"
+
+node-releases@^1.1.53:
+  version "1.1.53"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4"
+  integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==
+
+nopt@^4.0.1:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48"
+  integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==
+  dependencies:
+    abbrev "1"
+    osenv "^0.1.4"
 
 normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
   version "2.5.0"
@@ -6009,6 +6241,13 @@ normalize-url@^3.0.0:
   resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
   integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
 
+npm-bundled@^1.0.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b"
+  integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==
+  dependencies:
+    npm-normalize-package-bin "^1.0.1"
+
 npm-conf@^1.1.0:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9"
@@ -6017,6 +6256,20 @@ npm-conf@^1.1.0:
     config-chain "^1.1.11"
     pify "^3.0.0"
 
+npm-normalize-package-bin@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
+  integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
+
+npm-packlist@^1.1.6:
+  version "1.4.8"
+  resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e"
+  integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==
+  dependencies:
+    ignore-walk "^3.0.1"
+    npm-bundled "^1.0.1"
+    npm-normalize-package-bin "^1.0.1"
+
 npm-run-path@^2.0.0:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -6024,6 +6277,16 @@ npm-run-path@^2.0.0:
   dependencies:
     path-key "^2.0.0"
 
+npmlog@^4.0.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
+  integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
+  dependencies:
+    are-we-there-yet "~1.1.2"
+    console-control-strings "~1.1.0"
+    gauge "~2.7.3"
+    set-blocking "~2.0.0"
+
 nth-check@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
@@ -6041,6 +6304,11 @@ num2fraction@^1.2.2:
   resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
   integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
 
+number-is-nan@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+  integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
+
 object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
@@ -6065,11 +6333,6 @@ object-inspect@^1.7.0:
   resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67"
   integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==
 
-object-is@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4"
-  integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==
-
 object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
@@ -6192,6 +6455,11 @@ os-filter-obj@^2.0.0:
   dependencies:
     arch "^2.1.0"
 
+os-homedir@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+  integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
+
 os-locale@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
@@ -6206,11 +6474,19 @@ os-shim@^0.1.3:
   resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917"
   integrity sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=
 
-os-tmpdir@~1.0.2:
+os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
   integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
 
+osenv@^0.1.4:
+  version "0.1.5"
+  resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
+  integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
+  dependencies:
+    os-homedir "^1.0.0"
+    os-tmpdir "^1.0.0"
+
 outpipe@^1.1.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/outpipe/-/outpipe-1.1.1.tgz#50cf8616365e87e031e29a5ec9339a3da4725fa2"
@@ -6262,13 +6538,27 @@ p-is-promise@^2.0.0:
   resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e"
   integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==
 
+p-limit@^1.1.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+  integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
+  dependencies:
+    p-try "^1.0.0"
+
 p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1, p-limit@^2.2.2:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e"
-  integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+  integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
   dependencies:
     p-try "^2.0.0"
 
+p-locate@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+  integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
+  dependencies:
+    p-limit "^1.1.0"
+
 p-locate@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
@@ -6321,6 +6611,11 @@ p-timeout@^2.0.1:
   dependencies:
     p-finally "^1.0.0"
 
+p-try@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+  integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
+
 p-try@^2.0.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
@@ -6500,9 +6795,9 @@ pend@~1.2.0:
   integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
 
 picomatch@^2.0.4, picomatch@^2.0.7:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a"
-  integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==
+  version "2.2.2"
+  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
+  integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
 
 pify@^2.0.0, pify@^2.2.0, pify@^2.3.0:
   version "2.3.0"
@@ -6545,12 +6840,12 @@ pkg-dir@^4.1.0:
   dependencies:
     find-up "^4.0.0"
 
-pkg-up@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5"
-  integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==
+pkg-up@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
+  integrity sha1-yBmscoBZpGHKscOImivjxJoATX8=
   dependencies:
-    find-up "^3.0.0"
+    find-up "^2.1.0"
 
 pngquant-bin@^5.0.0:
   version "5.0.2"
@@ -6892,12 +7187,12 @@ postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^
   resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
   integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
 
-postcss-value-parser@^4.0.2:
+postcss-value-parser@^4.0.2, postcss-value-parser@^4.0.3:
   version "4.0.3"
   resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz#651ff4593aa9eda8d5d0d66593a2417aeaeb325d"
   integrity sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==
 
[email protected], postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.5, postcss@^7.0.6:
[email protected], postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.27, postcss@^7.0.5, postcss@^7.0.6:
   version "7.0.27"
   resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.27.tgz#cc67cdc6b0daa375105b7c424a85567345fc54d9"
   integrity sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==
@@ -7098,6 +7393,16 @@ raw-loader@^1.0.0:
     loader-utils "^1.1.0"
     schema-utils "^1.0.0"
 
+rc@^1.2.7:
+  version "1.2.8"
+  resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+  integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
+  dependencies:
+    deep-extend "^0.6.0"
+    ini "~1.3.0"
+    minimist "^1.2.0"
+    strip-json-comments "~2.0.1"
+
 read-only-stream@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0"
@@ -7122,7 +7427,7 @@ read-pkg@^1.0.0:
     normalize-package-data "^2.3.2"
     path-type "^1.0.0"
 
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
   version "2.3.7"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
   integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
@@ -7145,6 +7450,15 @@ readable-stream@^1.0.33:
     isarray "0.0.1"
     string_decoder "~0.10.x"
 
+readable-stream@^3.0.6:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+  integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+  dependencies:
+    inherits "^2.0.3"
+    string_decoder "^1.1.1"
+    util-deprecate "^1.0.1"
+
 readdirp@^2.2.1:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
@@ -7216,14 +7530,6 @@ regex-not@^1.0.0, regex-not@^1.0.2:
     extend-shallow "^3.0.2"
     safe-regex "^1.1.0"
 
-regexp.prototype.flags@^1.2.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75"
-  integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==
-  dependencies:
-    define-properties "^1.1.3"
-    es-abstract "^1.17.0-next.1"
-
 regexpp@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
@@ -7405,7 +7711,7 @@ [email protected]:
   dependencies:
     glob "^7.1.3"
 
-rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.3, rimraf@^2.7.1:
+rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1:
   version "2.7.1"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
   integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
@@ -7453,18 +7759,18 @@ run-queue@^1.0.0, run-queue@^1.0.3:
     aproba "^1.1.1"
 
 rxjs@^6.4.0:
-  version "6.5.4"
-  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c"
-  integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==
+  version "6.5.5"
+  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec"
+  integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==
   dependencies:
     tslib "^1.9.0"
 
[email protected], safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
[email protected], safe-buffer@~5.1.0, safe-buffer@~5.1.1:
   version "5.1.2"
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
   integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
 
-safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.2.0:
+safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
   version "5.2.0"
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
   integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
@@ -7604,7 +7910,7 @@ [email protected]:
     parseurl "~1.3.3"
     send "0.17.1"
 
-set-blocking@^2.0.0:
+set-blocking@^2.0.0, set-blocking@~2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
   integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
@@ -7687,9 +7993,9 @@ shim-loader@^1.0.1:
     webpack-sources "^0.2.3"
 
 signal-exit@^3.0.0, signal-exit@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
-  integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
+  integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
 
 simple-concat@^1.0.0:
   version "1.0.0"
@@ -8007,6 +8313,16 @@ stream-http@^2.0.0, stream-http@^2.7.2:
     to-arraybuffer "^1.0.0"
     xtend "^4.0.0"
 
+stream-http@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.1.0.tgz#22fb33fe9b4056b4eccf58bd8f400c4b993ffe57"
+  integrity sha512-cuB6RgO7BqC4FBYzmnvhob5Do3wIdIsXAgGycHJnW+981gHqoYcYz9lqjJrk8WXRddbwPuqPYRl+bag6mYv4lw==
+  dependencies:
+    builtin-status-codes "^3.0.0"
+    inherits "^2.0.1"
+    readable-stream "^3.0.6"
+    xtend "^4.0.0"
+
 stream-shift@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
@@ -8036,7 +8352,16 @@ strict-uri-encode@^1.0.0:
   resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
   integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
 
-string-width@^2.1.0:
+string-width@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+  integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
+  dependencies:
+    code-point-at "^1.0.0"
+    is-fullwidth-code-point "^1.0.0"
+    strip-ansi "^3.0.0"
+
+"string-width@^1.0.2 || 2", string-width@^2.1.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
   integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
@@ -8063,21 +8388,39 @@ string.prototype.codepointat@^0.2.0:
   resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc"
   integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==
 
+string.prototype.trimend@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz#ee497fd29768646d84be2c9b819e292439614373"
+  integrity sha512-EEJnGqa/xNfIg05SxiPSqRS7S9qwDhYts1TSLR1BQfYUfPe1stofgGKvwERK9+9yf+PpfBMlpBaCHucXGPQfUA==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.17.5"
+
 string.prototype.trimleft@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74"
-  integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc"
+  integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==
   dependencies:
     define-properties "^1.1.3"
-    function-bind "^1.1.1"
+    es-abstract "^1.17.5"
+    string.prototype.trimstart "^1.0.0"
 
 string.prototype.trimright@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9"
-  integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3"
+  integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==
   dependencies:
     define-properties "^1.1.3"
-    function-bind "^1.1.1"
+    es-abstract "^1.17.5"
+    string.prototype.trimend "^1.0.0"
+
+string.prototype.trimstart@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.0.tgz#afe596a7ce9de905496919406c9734845f01a2f2"
+  integrity sha512-iCP8g01NFYiiBOnwG1Xc3WZLyoo+RuBymwIlWncShXDDJYWN6DbnM3odslBJdgCdRlq94B5s63NWAZlcn2CS4w==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.17.5"
 
 string_decoder@^1.0.0, string_decoder@^1.1.1:
   version "1.3.0"
@@ -8098,7 +8441,7 @@ string_decoder@~1.1.1:
   dependencies:
     safe-buffer "~5.1.0"
 
-strip-ansi@^3.0.0:
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
   integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
@@ -8145,7 +8488,7 @@ strip-indent@^1.0.1:
   dependencies:
     get-stdin "^4.0.1"
 
-strip-json-comments@^2.0.1:
+strip-json-comments@^2.0.1, strip-json-comments@~2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
   integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
@@ -8308,6 +8651,19 @@ tar-stream@^1.5.2:
     to-buffer "^1.1.1"
     xtend "^4.0.0"
 
+tar@^4.4.2:
+  version "4.4.13"
+  resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
+  integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
+  dependencies:
+    chownr "^1.1.1"
+    fs-minipass "^1.2.5"
+    minipass "^2.8.6"
+    minizlib "^1.2.1"
+    mkdirp "^0.5.0"
+    safe-buffer "^5.1.2"
+    yallist "^3.0.3"
+
 temp-dir@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"
@@ -8372,9 +8728,9 @@ terser-webpack-plugin@^2.2.2:
     webpack-sources "^1.4.3"
 
 terser@^4.1.2, terser@^4.4.3, terser@^4.6.2:
-  version "4.6.7"
-  resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.7.tgz#478d7f9394ec1907f0e488c5f6a6a9a2bad55e72"
-  integrity sha512-fmr7M1f7DBly5cX2+rFDvmGBAaaZyPrHYK4mMdHEDAdNTqXSZgSOfqsfGq2HqPGT/1V0foZZuCZFx8CHKgAk3g==
+  version "4.6.10"
+  resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.10.tgz#90f5bd069ff456ddbc9503b18e52f9c493d3b7c2"
+  integrity sha512-qbF/3UOo11Hggsbsqm2hPa6+L4w7bkr+09FNseEe8xrcVD3APGLFqE+Oz1ZKAxjYnFsj80rLOfgAtJ0LNJjtTA==
   dependencies:
     commander "^2.20.0"
     source-map "~0.6.1"
@@ -8575,9 +8931,9 @@ umd@^3.0.0:
   integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==
 
 unbzip2-stream@^1.0.9:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a"
-  integrity sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.0.tgz#097ca7b18b5b71e6c8bc8e514a0f1884a12d6eb1"
+  integrity sha512-kVx7CDAsdBSWVf404Mw7oI9i09w5/mTT/Ruk+RWa64PLYKvsAucLLFHvQtnvjeADM4ZizxrvG5SHnF4Te4T2Cg==
   dependencies:
     buffer "^5.2.1"
     through "^2.3.8"
@@ -8594,9 +8950,9 @@ undeclared-identifiers@^1.1.2:
     xtend "^4.0.1"
 
 underscore@>=1.7.0, underscore@>=1.8.3, underscore@^1.8.0, underscore@^1.8.3, underscore@^1.9.1:
-  version "1.9.2"
-  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.2.tgz#0c8d6f536d6f378a5af264a72f7bec50feb7cf2f"
-  integrity sha512-D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ==
+  version "1.10.2"
+  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.10.2.tgz#73d6aa3668f3188e4adb0f1943bd12cfd7efaaaf"
+  integrity sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==
 
 unicode-canonical-property-names-ecmascript@^1.0.4:
   version "1.0.4"
@@ -8744,7 +9100,7 @@ [email protected]:
     lru-cache "4.1.x"
     tmp "0.0.x"
 
-util-deprecate@~1.0.1:
+util-deprecate@^1.0.1, util-deprecate@~1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
   integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
@@ -8844,17 +9200,17 @@ watchify@~3.11.1:
     xtend "^4.0.0"
 
 watchpack@^1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
-  integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==
+  version "1.6.1"
+  resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2"
+  integrity sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==
   dependencies:
-    chokidar "^2.0.2"
+    chokidar "^2.1.8"
     graceful-fs "^4.1.2"
     neo-async "^2.5.0"
 
 "webcabin-docker@git+https://github.com/EnterpriseDB/wcDocker/#7a14f50a7197fe3824d706c85485a49fa9166804":
   version "2.2.4-dev"
-  resolved "git+https://github.com/EnterpriseDB/wcDocker.git#7a14f50a7197fe3824d706c85485a49fa9166804"
+  resolved "git+https://github.com/EnterpriseDB/wcDocker/#7a14f50a7197fe3824d706c85485a49fa9166804"
   dependencies:
     FileSaver "^0.10.0"
     font-awesome "^4.7.0"
@@ -8938,14 +9294,14 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-
     source-map "~0.6.1"
 
 webpack@^4.41.2:
-  version "4.42.0"
-  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.0.tgz#b901635dd6179391d90740a63c93f76f39883eb8"
-  integrity sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/helper-module-context" "1.8.5"
-    "@webassemblyjs/wasm-edit" "1.8.5"
-    "@webassemblyjs/wasm-parser" "1.8.5"
+  version "4.42.1"
+  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.1.tgz#ae707baf091f5ca3ef9c38b884287cfe8f1983ef"
+  integrity sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg==
+  dependencies:
+    "@webassemblyjs/ast" "1.9.0"
+    "@webassemblyjs/helper-module-context" "1.9.0"
+    "@webassemblyjs/wasm-edit" "1.9.0"
+    "@webassemblyjs/wasm-parser" "1.9.0"
     acorn "^6.2.1"
     ajv "^6.10.2"
     ajv-keywords "^3.4.1"
@@ -8957,7 +9313,7 @@ webpack@^4.41.2:
     loader-utils "^1.2.3"
     memory-fs "^0.4.1"
     micromatch "^3.1.10"
-    mkdirp "^0.5.1"
+    mkdirp "^0.5.3"
     neo-async "^2.6.1"
     node-libs-browser "^2.2.1"
     schema-utils "^1.0.0"
@@ -8978,6 +9334,13 @@ which@^1.2.1, which@^1.2.14, which@^1.2.9, which@^1.3.1:
   dependencies:
     isexe "^2.0.0"
 
+wide-align@^1.1.0:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
+  integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
+  dependencies:
+    string-width "^1.0.2 || 2"
+
 wkx@^0.4.6:
   version "0.4.8"
   resolved "https://registry.yarnpkg.com/wkx/-/wkx-0.4.8.tgz#a092cf088d112683fdc7182fd31493b2c5820003"
@@ -9064,7 +9427,7 @@ yallist@^2.1.2:
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
   integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
 
-yallist@^3.0.2:
+yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
   integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==


^ permalink  raw  reply  [nested|flat] 12+ messages in thread

* Re: [pgAdmin][RM2172] Search Objects Functionality
@ 2020-04-06 12:33  Akshay Joshi <[email protected]>
  parent: Aditya Toshniwal <[email protected]>
  0 siblings, 0 replies; 12+ messages in thread

From: Akshay Joshi @ 2020-04-06 12:33 UTC (permalink / raw)
  To: Aditya Toshniwal <[email protected]>; +Cc: pgadmin-hackers; Khushboo Vashi <[email protected]>

Thanks, patch applied. Fixed some minor issues.


On Mon, Apr 6, 2020 at 3:52 PM Aditya Toshniwal <
[email protected]> wrote:

> Hi Hackers,
>
> Please find the attached rebased patch.
>
> On Mon, Apr 6, 2020 at 3:22 PM Khushboo Vashi <
> [email protected]> wrote:
>
>> Hi Aditya,
>>
>> Please resend the rebased patch, it does not apply.
>>
>> Thanks,
>> Khushboo
>>
>> On Fri, Apr 3, 2020 at 2:44 PM Aditya Toshniwal <
>> [email protected]> wrote:
>>
>>> Hi Hackers,
>>>
>>> Attached is the updated patch.
>>> With this,
>>> 1) I've displayed the rows count detail at the bottom of the dialog.
>>> This will help in both cases, when there are rows and when there are none.
>>> 2) As discussed, a user can now apply object types dropdown filter on
>>> already loaded data.
>>> 3) I've not made changes for the multilevel partition icon because it
>>> would be too much to do for an icon. We're already showing the type name in
>>> the grid. Adding extra SQL joins and making the query slower for the icon
>>> is not desirable.
>>> 4) Fixed some gettext issues as mentioned in the review.
>>>
>>> Please review.
>>>
>>>
>>> On Thu, Apr 2, 2020 at 5:54 PM Aditya Toshniwal <
>>> [email protected]> wrote:
>>>
>>>> Hi Khushboo,
>>>>
>>>> On Thu, Apr 2, 2020 at 4:49 PM Khushboo Vashi <
>>>> [email protected]> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Thu, Apr 2, 2020 at 4:30 PM Aditya Toshniwal <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi Khushboo,
>>>>>>
>>>>>> Thank you for reviewing.
>>>>>>
>>>>>>
>>>>>> On Thu, Apr 2, 2020 at 4:09 PM Khushboo Vashi <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi Aditya,
>>>>>>>
>>>>>>> Review comments:
>>>>>>>
>>>>>>> *UI:*
>>>>>>>
>>>>>>> 1. When no object is found, the default message should be given,
>>>>>>> currently no message displayed.
>>>>>>> 2. Can we have a tooltip on the row "Double click to locate the
>>>>>>> object in the browser" ?
>>>>>>> 3. Full stop is missing in the message column objects are disabled
>>>>>>> in the browser. You can enable them in the preferences dialog ( :D )
>>>>>>> and also, we should start the statement with the capital letter.
>>>>>>> 4. If possible, use the multilevel partition table symbol same as
>>>>>>> the browser tree.
>>>>>>> 5. gettext is missing from the search grid header.
>>>>>>>
>>>>>> I'll fix all above.
>>>>>>
>>>>>>> 6. Suggestion: The search button should be at the end (after type
>>>>>>> combobox).  The current position of the controls suggest that search for
>>>>>>> the objects and then filter it out but that's not the case.
>>>>>>>
>>>>>> I've actually kept the most frequently used controls together. The
>>>>>> probability of using the types filter is less and a user would generally go
>>>>>> for full search. This is how even we generally do. We search first and then
>>>>>> apply filter if required
>>>>>>
>>>>> Right, so type based search on slickgrid data would be useful.
>>>>>
>>>> 👍
>>>>
>>>>> After changing the type, we have to click on the search button.
>>>>>>> In the current positioning, we should fetch all the records from the
>>>>>>> backend and then filter those out depending on the type at the client side
>>>>>>> only, so that will reduce the server requests and slickgrid is efficient it
>>>>>>> do so.
>>>>>>>
>>>>>> I'll look into this. My only concern is the data may be outdated, but
>>>>>> I agree to filter in slickgrid on type change. The user can hit search
>>>>>> again if required.
>>>>>>
>>>>>
>>>>>>> *Backend:*
>>>>>>>
>>>>>>> 1. We do have the list of blueprint, so we can use that list instead
>>>>>>> of taking the hard coe list in the init method of SearchObjectsHelper
>>>>>>> class.
>>>>>>>
>>>>>> The reason is, we do not support all objects for search objects. Only
>>>>>> objects under a database are supported. The probability of node type change
>>>>>> is very less.
>>>>>>
>>>>> True but we can maintain the skip list (which would be less) and we do
>>>>> have bluprint start with NODE, so it will be easier to fetch.
>>>>>
>>>> I would prefer the "in" list rather than "skip" list. Each time a new
>>>> node is added to pgAdmin, we will have to update the skip list in
>>>> search objects. With the "in" list, search objects has better control.
>>>>
>>>>> 2. While searching the object, we create an object of SearchObjectsHelper
>>>>>>> on each request. We can create it once while initializing and utilize it on
>>>>>>> every search.
>>>>>>>
>>>>>> The intention is to keep SearchObjectsHelper stateless. The object
>>>>>> is created based on the request data and it is easier to maintain
>>>>>> independently.
>>>>>>
>>>>>>>
>>>>>>> Note: The functionality is working fine.
>>>>>>>
>>>>>> Great. Thanks.
>>>>>>
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Khushboo
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Apr 2, 2020 at 9:31 AM Khushboo Vashi <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Apr 1, 2020 at 6:00 PM Akshay Joshi <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hi Khushboo,
>>>>>>>>>
>>>>>>>>> Can you please review it.
>>>>>>>>>
>>>>>>>> I am on it.
>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Mar 30, 2020 at 2:39 PM Aditya Toshniwal <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Hackers,
>>>>>>>>>>
>>>>>>>>>> Attached is the patch to implement search objects functionality
>>>>>>>>>> in pgadmin.
>>>>>>>>>> The feature will allow a user to search for any object in a
>>>>>>>>>> database.
>>>>>>>>>> Highlights of the feature:
>>>>>>>>>> 1) Search any object with user input text with at least 3
>>>>>>>>>> characters.
>>>>>>>>>> 2) Search can be done on a specific object type by selecting from
>>>>>>>>>> the types dropdown.
>>>>>>>>>> 3) The search results grid will show object name, object type and
>>>>>>>>>> the object path on the browser tree. On double clicking the record, it will
>>>>>>>>>> locate that object on the browser tree. The columns object name and type
>>>>>>>>>> are sortable.
>>>>>>>>>> 4) The object nodes which are disabled (hidden) using preferences
>>>>>>>>>> will not be visible in the types dropdown. However, in the case of all
>>>>>>>>>> types, the search records will be visible for those types greyed out.
>>>>>>>>>> 5) You can also access search objects dialog using the button on
>>>>>>>>>> the browser toolbar.
>>>>>>>>>>
>>>>>>>>>> Python and JS test cases added. Docs updated.
>>>>>>>>>> Please review.
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Thanks and Regards,
>>>>>>>>>> Aditya Toshniwal
>>>>>>>>>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India |
>>>>>>>>>> Pune
>>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> *Thanks & Regards*
>>>>>>>>> *Akshay Joshi*
>>>>>>>>>
>>>>>>>>> *Sr. Software Architect*
>>>>>>>>> *EnterpriseDB Software India Private Limited*
>>>>>>>>> *Mobile: +91 976-788-8246*
>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>> --
>>>>>> Thanks and Regards,
>>>>>> Aditya Toshniwal
>>>>>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>
>>>>>
>>>>
>>>> --
>>>> Thanks and Regards,
>>>> Aditya Toshniwal
>>>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>>>> "Don't Complain about Heat, Plant a TREE"
>>>>
>>>
>>>
>>> --
>>> Thanks and Regards,
>>> Aditya Toshniwal
>>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
>>> "Don't Complain about Heat, Plant a TREE"
>>>
>>
>
> --
> Thanks and Regards,
> Aditya Toshniwal
> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
> "Don't Complain about Heat, Plant a TREE"
>


-- 
*Thanks & Regards*
*Akshay Joshi*

*Sr. Software Architect*
*EnterpriseDB Software India Private Limited*
*Mobile: +91 976-788-8246*


^ permalink  raw  reply  [nested|flat] 12+ messages in thread


end of thread, other threads:[~2020-04-06 12:33 UTC | newest]

Thread overview: 12+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2020-03-30 09:09 [pgAdmin][RM2172] Search Objects Functionality Aditya Toshniwal <[email protected]>
2020-04-01 12:28 ` Akshay Joshi <[email protected]>
2020-04-01 12:30 ` Akshay Joshi <[email protected]>
2020-04-02 04:01   ` Khushboo Vashi <[email protected]>
2020-04-02 10:39     ` Khushboo Vashi <[email protected]>
2020-04-02 10:59       ` Aditya Toshniwal <[email protected]>
2020-04-02 11:19         ` Khushboo Vashi <[email protected]>
2020-04-02 12:24           ` Aditya Toshniwal <[email protected]>
2020-04-03 09:13             ` Aditya Toshniwal <[email protected]>
2020-04-06 09:52               ` Khushboo Vashi <[email protected]>
2020-04-06 10:21                 ` Aditya Toshniwal <[email protected]>
2020-04-06 12:33                   ` Akshay Joshi <[email protected]>

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox